diff --git a/translations/hu/1-Introduction/1-intro-to-ML/README.md b/translations/hu/1-Introduction/1-intro-to-ML/README.md
new file mode 100644
index 00000000..4c742ea9
--- /dev/null
+++ b/translations/hu/1-Introduction/1-intro-to-ML/README.md
@@ -0,0 +1,159 @@
+
+# Bevezetés a gépi tanulásba
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/6mSx_KJxcHI "Gépi tanulás kezdőknek - Bevezetés a gépi tanulásba")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja ezt a leckét.
+
+Üdvözlünk ezen a kezdőknek szóló klasszikus gépi tanulás kurzuson! Akár teljesen új vagy a témában, akár tapasztalt ML szakemberként szeretnéd felfrissíteni tudásodat, örülünk, hogy csatlakoztál hozzánk! Célunk, hogy barátságos kiindulópontot biztosítsunk a gépi tanulás tanulmányozásához, és szívesen fogadjuk, értékeljük, valamint beépítjük [visszajelzéseidet](https://github.com/microsoft/ML-For-Beginners/discussions).
+
+[](https://youtu.be/h0e2HAPTGF4 "Bevezetés a gépi tanulásba")
+
+> 🎥 Kattints a fenti képre egy videóért: MIT John Guttag bemutatja a gépi tanulást
+
+---
+## Első lépések a gépi tanulásban
+
+Mielőtt elkezdenéd ezt a tananyagot, győződj meg róla, hogy számítógéped készen áll a notebookok helyi futtatására.
+
+- **Állítsd be a gépedet ezekkel a videókkal**. Használd az alábbi linkeket, hogy megtanuld [hogyan telepítsd a Python-t](https://youtu.be/CXZYvNRIAKM) a rendszeredre, és [hogyan állítsd be egy szövegszerkesztőt](https://youtu.be/EU8eayHWoZg) a fejlesztéshez.
+- **Tanuld meg a Python alapjait**. Ajánlott, hogy legyen alapvető ismereted a [Pythonról](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), egy programozási nyelvről, amely hasznos az adatkutatók számára, és amelyet ebben a kurzusban használunk.
+- **Tanuld meg a Node.js-t és a JavaScriptet**. A kurzus során néhány alkalommal használjuk a JavaScriptet webalkalmazások készítéséhez, ezért szükséged lesz [node](https://nodejs.org) és [npm](https://www.npmjs.com/) telepítésére, valamint [Visual Studio Code](https://code.visualstudio.com/) használatára Python és JavaScript fejlesztéshez.
+- **Hozz létre egy GitHub fiókot**. Mivel itt találtál ránk a [GitHubon](https://github.com), lehet, hogy már van fiókod, de ha nincs, hozz létre egyet, majd forkolj meg ezt a tananyagot, hogy saját magad használhasd. (Ne felejts el csillagot adni nekünk 😊)
+- **Ismerkedj meg a Scikit-learnnel**. Ismerd meg a [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) könyvtárat, amelyet ezekben a leckékben hivatkozunk.
+
+---
+## Mi az a gépi tanulás?
+
+A 'gépi tanulás' kifejezés napjaink egyik legnépszerűbb és leggyakrabban használt fogalma. Nem kizárt, hogy legalább egyszer hallottad már ezt a kifejezést, ha valamilyen szinten ismered a technológiát, függetlenül attól, hogy milyen területen dolgozol. A gépi tanulás mechanikája azonban a legtöbb ember számára rejtély. Egy gépi tanulás kezdő számára a téma néha túlterhelőnek tűnhet. Ezért fontos megérteni, hogy valójában mi is a gépi tanulás, és lépésről lépésre, gyakorlati példákon keresztül tanulni róla.
+
+---
+## A hype görbe
+
+
+
+> A Google Trends mutatja a 'gépi tanulás' kifejezés legutóbbi hype görbéjét
+
+---
+## Egy rejtélyes univerzum
+
+Egy lenyűgöző rejtélyekkel teli univerzumban élünk. Nagy tudósok, mint Stephen Hawking, Albert Einstein és sokan mások, életüket annak szentelték, hogy értelmes információkat találjanak, amelyek feltárják a körülöttünk lévő világ rejtélyeit. Ez az emberi tanulás feltétele: egy emberi gyermek új dolgokat tanul, és évről évre felfedezi világának szerkezetét, ahogy felnőtté válik.
+
+---
+## A gyermek agya
+
+Egy gyermek agya és érzékei érzékelik környezetük tényeit, és fokozatosan megtanulják az élet rejtett mintázatait, amelyek segítenek logikai szabályokat alkotni a tanult minták azonosításához. Az emberi agy tanulási folyamata teszi az embereket a világ legkifinomultabb élőlényévé. Azáltal, hogy folyamatosan tanulunk, felfedezzük a rejtett mintákat, majd innoválunk ezek alapján, képesek vagyunk egyre jobbak lenni életünk során. Ez a tanulási képesség és fejlődési kapacitás összefüggésben áll egy [agy plaszticitásának](https://www.simplypsychology.org/brain-plasticity.html) nevezett fogalommal. Felületesen nézve motivációs hasonlóságokat vonhatunk az emberi agy tanulási folyamata és a gépi tanulás fogalmai között.
+
+---
+## Az emberi agy
+
+Az [emberi agy](https://www.livescience.com/29365-human-brain.html) érzékeli a valós világ dolgait, feldolgozza az érzékelt információkat, racionális döntéseket hoz, és bizonyos körülmények alapján cselekszik. Ezt nevezzük intelligens viselkedésnek. Amikor egy intelligens viselkedési folyamatot programozunk egy gépbe, azt mesterséges intelligenciának (AI) nevezzük.
+
+---
+## Néhány terminológia
+
+Bár a fogalmak összekeverhetők, a gépi tanulás (ML) a mesterséges intelligencia fontos részhalmaza. **Az ML arra összpontosít, hogy speciális algoritmusokat használjon értelmes információk feltárására és rejtett minták megtalálására az érzékelt adatokból, hogy támogassa a racionális döntéshozatali folyamatot**.
+
+---
+## AI, ML, Mélytanulás
+
+
+
+> Egy diagram, amely bemutatja az AI, ML, mélytanulás és adatkutatás közötti kapcsolatokat. Infografika [Jen Looper](https://twitter.com/jenlooper) által, amelyet [ez a grafika](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) inspirált.
+
+---
+## Lefedendő fogalmak
+
+Ebben a tananyagban csak a gépi tanulás alapvető fogalmait fogjuk lefedni, amelyeket egy kezdőnek ismernie kell. Elsősorban a 'klasszikus gépi tanulást' tárgyaljuk, főként a Scikit-learn használatával, amely egy kiváló könyvtár, amit sok diák használ az alapok elsajátításához. Ahhoz, hogy megértsük a mesterséges intelligencia vagy mélytanulás szélesebb körű fogalmait, elengedhetetlen a gépi tanulás erős alapvető ismerete, és ezt szeretnénk itt biztosítani.
+
+---
+## Ebben a kurzusban megtanulod:
+
+- a gépi tanulás alapfogalmait
+- az ML történetét
+- az ML és az igazságosság kapcsolatát
+- regressziós ML technikákat
+- osztályozási ML technikákat
+- klaszterezési ML technikákat
+- természetes nyelvfeldolgozási ML technikákat
+- időbeli előrejelzési ML technikákat
+- megerősítéses tanulást
+- az ML valós alkalmazásait
+
+---
+## Amit nem fogunk lefedni
+
+- mélytanulás
+- neurális hálózatok
+- mesterséges intelligencia
+
+A jobb tanulási élmény érdekében elkerüljük a neurális hálózatok, a 'mélytanulás' - többrétegű modellépítés neurális hálózatokkal - és az AI komplexitásait, amelyeket egy másik tananyagban fogunk tárgyalni. Emellett egy közelgő adatkutatási tananyagot is kínálunk, amely erre a nagyobb területre összpontosít.
+
+---
+## Miért érdemes gépi tanulást tanulni?
+
+A gépi tanulás rendszerszempontból úgy definiálható, mint automatizált rendszerek létrehozása, amelyek képesek rejtett mintákat tanulni az adatokból, hogy segítsenek intelligens döntések meghozatalában.
+
+Ez a motiváció lazán inspirálódik abból, ahogyan az emberi agy bizonyos dolgokat tanul az érzékelt adatok alapján.
+
+✅ Gondolkodj el egy percre azon, hogy egy vállalkozás miért választaná a gépi tanulási stratégiákat egy keményen kódolt szabályalapú motor létrehozása helyett.
+
+---
+## A gépi tanulás alkalmazásai
+
+A gépi tanulás alkalmazásai ma már szinte mindenhol jelen vannak, és olyan elterjedtek, mint az adatok, amelyek társadalmainkban áramlanak, okostelefonjaink, csatlakoztatott eszközeink és más rendszereink által generálva. Figyelembe véve a legmodernebb gépi tanulási algoritmusok hatalmas potenciálját, a kutatók vizsgálják azok képességét, hogy multidimenziós és multidiszciplináris valós problémákat oldjanak meg nagy pozitív eredményekkel.
+
+---
+## Alkalmazott ML példák
+
+**A gépi tanulást számos módon használhatod**:
+
+- Betegség valószínűségének előrejelzésére egy beteg kórtörténete vagy jelentései alapján.
+- Időjárási adatok felhasználásával időjárási események előrejelzésére.
+- Szöveg érzelmi tartalmának megértésére.
+- Hamis hírek és propaganda terjedésének megállítására.
+
+A pénzügyek, közgazdaságtan, földtudomány, űrkutatás, biomedikai mérnökség, kognitív tudomány és még a humán tudományok területei is alkalmazzák a gépi tanulást, hogy megoldják saját területük nehéz, adatfeldolgozás-igényes problémáit.
+
+---
+## Összegzés
+
+A gépi tanulás automatizálja a mintázat-felfedezés folyamatát azáltal, hogy értelmes betekintéseket talál a valós vagy generált adatokból. Bizonyította értékét az üzleti, egészségügyi és pénzügyi alkalmazásokban, többek között.
+
+A közeljövőben a gépi tanulás alapjainak megértése elengedhetetlen lesz minden területen dolgozó emberek számára, tekintettel annak széles körű elterjedésére.
+
+---
+# 🚀 Kihívás
+
+Rajzolj papíron vagy egy online alkalmazás, például [Excalidraw](https://excalidraw.com/) segítségével egy vázlatot arról, hogyan érted az AI, ML, mélytanulás és adatkutatás közötti különbségeket. Adj hozzá néhány ötletet arról, hogy milyen problémák megoldására alkalmasak ezek a technikák.
+
+# [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+# Áttekintés és önálló tanulás
+
+Ha többet szeretnél megtudni arról, hogyan dolgozhatsz ML algoritmusokkal a felhőben, kövesd ezt a [tanulási útvonalat](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
+
+Vegyél részt egy [tanulási útvonalon](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott), amely az ML alapjairól szól.
+
+---
+# Feladat
+
+[Indulj el](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/1-Introduction/1-intro-to-ML/assignment.md b/translations/hu/1-Introduction/1-intro-to-ML/assignment.md
new file mode 100644
index 00000000..631e5f24
--- /dev/null
+++ b/translations/hu/1-Introduction/1-intro-to-ML/assignment.md
@@ -0,0 +1,23 @@
+
+# Kezdj neki és állítsd be
+
+## Útmutató
+
+Ebben a nem értékelt feladatban frissítsd fel a Python tudásodat, és állítsd be a környezetedet úgy, hogy notebookokat tudj futtatni.
+
+Kövesd ezt a [Python tanulási útvonalat](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), majd állítsd be a rendszereidet az alábbi bevezető videók segítségével:
+
+https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/1-Introduction/2-history-of-ML/README.md b/translations/hu/1-Introduction/2-history-of-ML/README.md
new file mode 100644
index 00000000..905180f0
--- /dev/null
+++ b/translations/hu/1-Introduction/2-history-of-ML/README.md
@@ -0,0 +1,165 @@
+
+# A gépi tanulás története
+
+
+> Sketchnote készítette: [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/N6wxM4wZ7V0 "Gépi tanulás kezdőknek - A gépi tanulás története")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja ezt a leckét.
+
+Ebben a leckében végigjárjuk a gépi tanulás és mesterséges intelligencia történetének főbb mérföldköveit.
+
+A mesterséges intelligencia (MI) mint terület története szorosan összefonódik a gépi tanulás történetével, mivel a gépi tanulás alapját képező algoritmusok és számítástechnikai fejlődések hozzájárultak az MI fejlődéséhez. Érdemes megjegyezni, hogy bár ezek a területek mint különálló kutatási irányok az 1950-es években kezdtek körvonalazódni, fontos [algoritmikus, statisztikai, matematikai, számítástechnikai és technikai felfedezések](https://wikipedia.org/wiki/Timeline_of_machine_learning) már korábban is történtek, és átfedték ezt az időszakot. Valójában az emberek már [évszázadok óta](https://wikipedia.org/wiki/History_of_artificial_intelligence) foglalkoznak ezekkel a kérdésekkel: ez a cikk a "gondolkodó gép" ötletének történelmi szellemi alapjait tárgyalja.
+
+---
+## Figyelemre méltó felfedezések
+
+- 1763, 1812 [Bayes-tétel](https://wikipedia.org/wiki/Bayes%27_theorem) és elődei. Ez a tétel és alkalmazásai az események bekövetkezésének valószínűségét írják le korábbi ismeretek alapján.
+- 1805 [Legkisebb négyzetek módszere](https://wikipedia.org/wiki/Least_squares) Adrien-Marie Legendre francia matematikustól. Ez az elmélet, amelyet a regresszióról szóló egységünkben tanulni fogsz, segít az adatok illesztésében.
+- 1913 [Markov-láncok](https://wikipedia.org/wiki/Markov_chain), amelyeket Andrey Markov orosz matematikusról neveztek el, egy eseménysorozatot írnak le, amely az előző állapoton alapul.
+- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron), egy lineáris osztályozó típusa, amelyet Frank Rosenblatt amerikai pszichológus talált fel, és amely a mélytanulás fejlődésének alapját képezi.
+
+---
+
+- 1967 [Legközelebbi szomszéd](https://wikipedia.org/wiki/Nearest_neighbor) algoritmus, amelyet eredetileg útvonalak feltérképezésére terveztek. Gépi tanulásban mintázatok felismerésére használják.
+- 1970 [Visszaterjesztés](https://wikipedia.org/wiki/Backpropagation), amelyet [előrecsatolt neurális hálók](https://wikipedia.org/wiki/Feedforward_neural_network) tanítására használnak.
+- 1982 [Rekurzív neurális hálók](https://wikipedia.org/wiki/Recurrent_neural_network), amelyek az előrecsatolt neurális hálókból származnak, és időbeli gráfokat hoznak létre.
+
+✅ Végezz egy kis kutatást. Mely más dátumok emelkednek ki a gépi tanulás és MI történetében?
+
+---
+## 1950: Gondolkodó gépek
+
+Alan Turing, egy igazán figyelemre méltó személy, akit [2019-ben a közönség](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) a 20. század legnagyobb tudósának választott, segített lefektetni a "gondolkodó gép" koncepciójának alapjait. Turing a kétkedőkkel és saját empirikus bizonyítékok iránti igényével küzdött, részben azáltal, hogy megalkotta a [Turing-tesztet](https://www.bbc.com/news/technology-18475646), amelyet a NLP leckéinkben fogsz megvizsgálni.
+
+---
+## 1956: Dartmouth nyári kutatási projekt
+
+"A Dartmouth nyári kutatási projekt a mesterséges intelligenciáról egy alapvető esemény volt a mesterséges intelligencia mint terület számára," és itt alkották meg a 'mesterséges intelligencia' kifejezést ([forrás](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
+
+> A tanulás vagy az intelligencia bármely más jellemzője elvileg olyan pontosan leírható, hogy egy gép képes legyen szimulálni azt.
+
+---
+
+A vezető kutató, John McCarthy matematikaprofesszor remélte, hogy "a tanulás vagy az intelligencia bármely más jellemzője elvileg olyan pontosan leírható, hogy egy gép képes legyen szimulálni azt." A résztvevők között volt egy másik kiemelkedő személyiség, Marvin Minsky.
+
+A workshopot annak tulajdonítják, hogy számos vitát kezdeményezett és ösztönzött, beleértve "a szimbolikus módszerek felemelkedését, a korlátozott területekre összpontosító rendszereket (korai szakértői rendszerek), valamint a deduktív rendszerek és az induktív rendszerek közötti különbségeket." ([forrás](https://wikipedia.org/wiki/Dartmouth_workshop)).
+
+---
+## 1956 - 1974: "Az aranyévek"
+
+Az 1950-es évektől a '70-es évek közepéig nagy optimizmus uralkodott abban a reményben, hogy az MI számos problémát megoldhat. 1967-ben Marvin Minsky magabiztosan kijelentette, hogy "Egy generáción belül ... az 'mesterséges intelligencia' létrehozásának problémája lényegében megoldódik." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
+
+A természetes nyelvfeldolgozás kutatása virágzott, a keresés finomodott és hatékonyabbá vált, és létrejött a 'mikrovilágok' koncepciója, ahol egyszerű feladatokat lehetett elvégezni egyszerű nyelvi utasításokkal.
+
+---
+
+A kutatást jól finanszírozták kormányzati ügynökségek, előrelépések történtek a számítástechnikában és algoritmusokban, és intelligens gépek prototípusait építették. Néhány ilyen gép:
+
+* [Shakey robot](https://wikipedia.org/wiki/Shakey_the_robot), amely képes volt manőverezni és 'intelligensen' dönteni a feladatok elvégzéséről.
+
+ 
+ > Shakey 1972-ben
+
+---
+
+* Eliza, egy korai 'beszélgetőbot', képes volt emberekkel beszélgetni és primitív 'terapeutaként' működni. Az NLP leckékben többet fogsz tanulni Elizáról.
+
+ 
+ > Eliza egy verziója, egy chatbot
+
+---
+
+* "Blocks world" egy mikrovilág példája volt, ahol blokkokat lehetett egymásra rakni és rendezni, és kísérleteket lehetett végezni a gépek döntéshozatalának tanításával. Az olyan könyvtárakkal, mint [SHRDLU](https://wikipedia.org/wiki/SHRDLU), végzett fejlesztések elősegítették a nyelvfeldolgozás fejlődését.
+
+ [](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world SHRDLU-val")
+
+ > 🎥 Kattints a fenti képre egy videóért: Blocks world SHRDLU-val
+
+---
+## 1974 - 1980: "AI tél"
+
+Az 1970-es évek közepére nyilvánvalóvá vált, hogy az 'intelligens gépek' létrehozásának bonyolultságát alábecsülték, és az ígéreteket, tekintettel a rendelkezésre álló számítástechnikai kapacitásra, túlértékelték. A finanszírozás megszűnt, és a terület iránti bizalom csökkent. Néhány probléma, amely befolyásolta a bizalmat:
+
+---
+- **Korlátok**. A számítástechnikai kapacitás túl korlátozott volt.
+- **Kombinatorikus robbanás**. Az edzéshez szükséges paraméterek száma exponenciálisan nőtt, ahogy egyre többet vártak el a számítógépektől, anélkül, hogy a számítástechnikai kapacitás és képesség párhuzamosan fejlődött volna.
+- **Adathiány**. Az adatok hiánya akadályozta az algoritmusok tesztelését, fejlesztését és finomítását.
+- **A megfelelő kérdéseket tesszük fel?**. Az éppen feltett kérdéseket is elkezdték megkérdőjelezni. A kutatók kritikákat kaptak a megközelítéseikkel kapcsolatban:
+ - A Turing-teszteket megkérdőjelezték többek között a 'kínai szoba elmélet' révén, amely azt állította, hogy "egy digitális számítógép programozása látszólag megértést mutathat, de nem képes valódi megértést produkálni." ([forrás](https://plato.stanford.edu/entries/chinese-room/))
+ - Az olyan mesterséges intelligenciák, mint a "terapeuta" ELIZA társadalomba való bevezetésének etikáját megkérdőjelezték.
+
+---
+
+Ezzel egy időben különböző MI iskolák kezdtek kialakulni. Egy dichotómia jött létre ["scruffy" vs. "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies) gyakorlatok között. _Scruffy_ laborok órákig finomították a programokat, amíg el nem érték a kívánt eredményeket. _Neat_ laborok "a logikára és a formális problémamegoldásra" összpontosítottak. ELIZA és SHRDLU jól ismert _scruffy_ rendszerek voltak. Az 1980-as években, amikor igény mutatkozott a gépi tanulási rendszerek reprodukálhatóságára, a _neat_ megközelítés fokozatosan előtérbe került, mivel eredményei jobban magyarázhatók.
+
+---
+## 1980-as évek: Szakértői rendszerek
+
+Ahogy a terület fejlődött, egyre világosabbá vált az üzleti haszna, és az 1980-as években elterjedtek a 'szakértői rendszerek'. "A szakértői rendszerek az első igazán sikeres mesterséges intelligencia (MI) szoftverformák közé tartoztak." ([forrás](https://wikipedia.org/wiki/Expert_system)).
+
+Ez a rendszer valójában _hibrid_, részben egy szabálymotorból áll, amely meghatározza az üzleti követelményeket, és egy következtetési motorból, amely a szabályrendszert használja új tények levonására.
+
+Ebben az időszakban a neurális hálók iránti figyelem is növekedett.
+
+---
+## 1987 - 1993: AI 'lehűlés'
+
+A specializált szakértői rendszerek hardverének elterjedése sajnos túlságosan specializálttá vált. A személyi számítógépek térnyerése versenyre kelt ezekkel a nagy, specializált, központosított rendszerekkel. Elkezdődött a számítástechnika demokratizálása, amely végül utat nyitott a modern big data robbanásának.
+
+---
+## 1993 - 2011
+
+Ez az időszak új korszakot hozott a gépi tanulás és MI számára, hogy megoldja azokat a problémákat, amelyeket korábban az adatok és számítástechnikai kapacitás hiánya okozott. Az adatok mennyisége gyorsan növekedni kezdett és szélesebb körben elérhetővé vált, jó és rossz értelemben egyaránt, különösen a 2007 körüli okostelefon megjelenésével. A számítástechnikai kapacitás exponenciálisan bővült, és az algoritmusok is fejlődtek. A terület kezdett éretté válni, ahogy a múlt szabad szellemű napjai egy valódi tudományággá kristályosodtak.
+
+---
+## Most
+
+Ma a gépi tanulás és MI szinte minden részét érinti az életünknek. Ez a korszak gondos megértést igényel az algoritmusok emberi életre gyakorolt kockázatairól és potenciális hatásairól. Ahogy Brad Smith, a Microsoft egyik vezetője kijelentette: "Az információs technológia olyan kérdéseket vet fel, amelyek alapvető emberi jogi védelmek, például a magánélet és a véleménynyilvánítás szabadsága szívéhez vezetnek. Ezek a kérdések fokozzák a felelősséget a technológiai cégek számára, amelyek ezeket a termékeket létrehozzák. Véleményünk szerint ezek átgondolt kormányzati szabályozást és normák kidolgozását is igénylik az elfogadható felhasználások körül" ([forrás](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
+
+---
+
+Még nem tudjuk, mit tartogat a jövő, de fontos megérteni ezeket a számítógépes rendszereket, valamint a szoftvereket és algoritmusokat, amelyeket futtatnak. Reméljük, hogy ez a tananyag segít jobban megérteni, hogy saját magad dönthess.
+
+[](https://www.youtube.com/watch?v=mTtDfKgLm54 "A mélytanulás története")
+> 🎥 Kattints a fenti képre egy videóért: Yann LeCun a mélytanulás történetéről beszél ebben az előadásban
+
+---
+## 🚀Kihívás
+
+Merülj el az egyik történelmi pillanatban, és tudj meg többet az emberekről, akik mögötte állnak. Érdekes személyiségek vannak, és egyetlen tudományos felfedezés sem született kulturális vákuumban. Mit fedezel fel?
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+## Áttekintés és önálló tanulás
+
+Íme néhány néznivaló és hallgatnivaló:
+
+[Ez a podcast, amelyben Amy Boyd az MI fejlődéséről beszél](http://runasradio.com/Shows/Show/739)
+
+[](https://www.youtube.com/watch?v=EJt3_bFYKss "Az MI története Amy Boyd által")
+
+---
+
+## Feladat
+
+[Hozz létre egy idővonalat](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/1-Introduction/2-history-of-ML/assignment.md b/translations/hu/1-Introduction/2-history-of-ML/assignment.md
new file mode 100644
index 00000000..d6cc83ed
--- /dev/null
+++ b/translations/hu/1-Introduction/2-history-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Készíts egy idővonalat
+
+## Útmutató
+
+Használva [ezt a repót](https://github.com/Digital-Humanities-Toolkit/timeline-builder), hozz létre egy idővonalat az algoritmusok, matematika, statisztika, mesterséges intelligencia (AI) vagy gépi tanulás (ML) történetének valamely aspektusáról, vagy ezek kombinációjáról. Koncentrálhatsz egy személyre, egy ötletre, vagy egy hosszabb gondolkodási időszakra. Ügyelj arra, hogy multimédiás elemeket is hozzáadj.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szoruló |
+| --------- | ----------------------------------------------- | -------------------------------------- | ------------------------------------------------------------- |
+| | Egy közzétett idővonal GitHub oldalként van bemutatva | A kód hiányos és nincs közzétéve | Az idővonal hiányos, nem jól kutatott és nincs közzétéve |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális, emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/1-Introduction/3-fairness/README.md b/translations/hu/1-Introduction/3-fairness/README.md
new file mode 100644
index 00000000..f2cda822
--- /dev/null
+++ b/translations/hu/1-Introduction/3-fairness/README.md
@@ -0,0 +1,143 @@
+
+# Gépi tanulási megoldások építése felelős AI-val
+
+
+> Sketchnote készítette: [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Bevezetés
+
+Ebben a tananyagban elkezdjük felfedezni, hogyan hat a gépi tanulás a mindennapi életünkre. Már most is rendszerek és modellek vesznek részt napi döntéshozatali feladatokban, például egészségügyi diagnózisokban, hitelkérelmek jóváhagyásában vagy csalások észlelésében. Ezért fontos, hogy ezek a modellek megbízható eredményeket nyújtsanak. Ahogy bármely szoftveralkalmazás, az AI rendszerek is elmaradhatnak az elvárásoktól, vagy nemkívánatos eredményt hozhatnak. Ezért elengedhetetlen, hogy megértsük és magyarázni tudjuk egy AI modell viselkedését.
+
+Képzeljük el, mi történik, ha az adatok, amelyeket ezeknek a modelleknek az építéséhez használunk, bizonyos demográfiai csoportokat nem tartalmaznak, például faji, nemi, politikai nézetek, vallás, vagy aránytalanul képviselik ezeket. Mi történik, ha a modell kimenete egyes demográfiai csoportokat előnyben részesít? Mi a következmény az alkalmazásra nézve? Továbbá, mi történik, ha a modell káros hatást gyakorol, és árt az embereknek? Ki felelős az AI rendszerek viselkedéséért? Ezeket a kérdéseket fogjuk megvizsgálni ebben a tananyagban.
+
+Ebben a leckében:
+
+- Felhívjuk a figyelmet a gépi tanulásban való méltányosság fontosságára és a méltányossággal kapcsolatos károkra.
+- Megismerkedünk azzal a gyakorlattal, hogy a szélsőséges eseteket és szokatlan forgatókönyveket vizsgáljuk a megbízhatóság és biztonság érdekében.
+- Megértjük, miért fontos mindenkit felhatalmazni inkluzív rendszerek tervezésével.
+- Felfedezzük, milyen létfontosságú a személyes adatok és az emberek biztonságának védelme.
+- Megértjük, miért fontos az "üvegdoboz" megközelítés az AI modellek viselkedésének magyarázatában.
+- Tudatosítjuk, hogy az elszámoltathatóság elengedhetetlen az AI rendszerekbe vetett bizalom kiépítéséhez.
+
+## Előfeltétel
+
+Előfeltételként kérjük, végezze el a "Felelős AI alapelvei" tanulási útvonalat, és nézze meg az alábbi videót a témáról:
+
+Tudjon meg többet a felelős AI-ról ezen a [tanulási útvonalon](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott)
+
+[](https://youtu.be/dnC8-uUZXSc "Microsoft megközelítése a felelős AI-hoz")
+
+> 🎥 Kattintson a fenti képre a videóért: Microsoft megközelítése a felelős AI-hoz
+
+## Méltányosság
+
+Az AI rendszereknek mindenkit méltányosan kell kezelniük, és el kell kerülniük, hogy hasonló csoportokat különböző módon érintsenek. Például, amikor az AI rendszerek orvosi kezelési tanácsokat, hitelkérelmeket vagy foglalkoztatási ajánlásokat nyújtanak, ugyanazokat az ajánlásokat kell tenniük mindenki számára, akik hasonló tünetekkel, pénzügyi helyzettel vagy szakmai képesítéssel rendelkeznek. Mindannyian örökölt előítéleteket hordozunk magunkban, amelyek befolyásolják döntéseinket és cselekedeteinket. Ezek az előítéletek megjelenhetnek az adatokban, amelyeket az AI rendszerek képzéséhez használunk. Az ilyen manipuláció néha akaratlanul történik. Gyakran nehéz tudatosan felismerni, mikor vezetünk be előítéletet az adatokba.
+
+**„Méltánytalanság”** olyan negatív hatásokat vagy „károkat” foglal magában, amelyek egy csoportot érintenek, például faji, nemi, életkori vagy fogyatékossági státusz alapján. A méltányossággal kapcsolatos főbb károk a következők:
+
+- **Elosztás**, ha például egy nem vagy etnikum előnyben részesül egy másikkal szemben.
+- **Szolgáltatás minősége**. Ha az adatokat egy konkrét forgatókönyvre képezzük, de a valóság sokkal összetettebb, az gyenge teljesítményű szolgáltatáshoz vezet. Például egy kézmosó adagoló, amely nem érzékeli a sötét bőrű embereket. [Referencia](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773)
+- **Becsmérlés**. Valami vagy valaki igazságtalan kritizálása és címkézése. Például egy képfelismerő technológia hírhedten gorillának címkézte a sötét bőrű emberek képeit.
+- **Túl- vagy alulreprezentáció**. Az a gondolat, hogy egy bizonyos csoportot nem látunk egy bizonyos szakmában, és minden szolgáltatás vagy funkció, amely ezt tovább erősíti, hozzájárul a kárhoz.
+- **Sztereotipizálás**. Egy adott csoportot előre meghatározott attribútumokkal társítani. Például egy angol és török közötti nyelvi fordítórendszer pontatlanságokat mutathat a nemekhez kapcsolódó sztereotip asszociációk miatt.
+
+
+> Fordítás törökre
+
+
+> Fordítás vissza angolra
+
+Az AI rendszerek tervezése és tesztelése során biztosítanunk kell, hogy az AI méltányos legyen, és ne legyen programozva előítéletes vagy diszkriminatív döntések meghozatalára, amelyeket az emberek számára is tiltanak. Az AI és gépi tanulás méltányosságának garantálása továbbra is összetett társadalmi-technikai kihívás.
+
+### Megbízhatóság és biztonság
+
+Az AI rendszereknek megbízhatónak, biztonságosnak és következetesnek kell lenniük normál és váratlan körülmények között. Fontos tudni, hogyan viselkednek az AI rendszerek különböző helyzetekben, különösen szélsőséges esetekben. Az AI megoldások építésekor jelentős figyelmet kell fordítani arra, hogyan kezeljük az AI megoldások által tapasztalt különféle körülményeket. Például egy önvezető autónak az emberek biztonságát kell elsődleges prioritásként kezelnie. Ennek eredményeként az autót működtető AI-nak figyelembe kell vennie az összes lehetséges forgatókönyvet, amelyet az autó találhat, például éjszaka, viharok vagy hóviharok, gyerekek, akik átszaladnak az úton, háziállatok, útépítések stb. Az AI rendszer megbízható és biztonságos kezelése széles körülmények között tükrözi az adatkutató vagy AI fejlesztő által a rendszer tervezése vagy tesztelése során figyelembe vett előrelátás szintjét.
+
+> [🎥 Kattintson ide a videóért: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
+
+### Inkluzivitás
+
+Az AI rendszereket úgy kell megtervezni, hogy mindenkit bevonjanak és felhatalmazzanak. Az AI rendszerek tervezése és megvalósítása során az adatkutatók és AI fejlesztők azonosítják és kezelik a rendszerben lévő potenciális akadályokat, amelyek akaratlanul kizárhatnak embereket. Például világszerte 1 milliárd ember él fogyatékossággal. Az AI fejlődésével könnyebben hozzáférhetnek információkhoz és lehetőségekhez a mindennapi életükben. Az akadályok kezelésével lehetőséget teremtünk az innovációra és az AI termékek fejlesztésére, amelyek jobb élményeket nyújtanak mindenki számára.
+
+> [🎥 Kattintson ide a videóért: inkluzivitás az AI-ban](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
+
+### Biztonság és adatvédelem
+
+Az AI rendszereknek biztonságosnak kell lenniük, és tiszteletben kell tartaniuk az emberek magánéletét. Az emberek kevésbé bíznak azokban a rendszerekben, amelyek veszélyeztetik a magánéletüket, információikat vagy életüket. A gépi tanulási modellek képzésekor az adatokra támaszkodunk a legjobb eredmények elérése érdekében. Ennek során figyelembe kell venni az adatok eredetét és integritását. Például, az adatok felhasználói beküldésűek vagy nyilvánosan elérhetők voltak? Továbbá, az adatokkal való munka során elengedhetetlen olyan AI rendszerek fejlesztése, amelyek képesek megvédeni a bizalmas információkat és ellenállni a támadásoknak. Ahogy az AI egyre elterjedtebbé válik, a magánélet védelme és a fontos személyes és üzleti információk biztonságának megőrzése egyre kritikusabbá és összetettebbé válik. Az adatvédelem és adatbiztonság kérdései különösen nagy figyelmet igényelnek az AI esetében, mivel az adatokhoz való hozzáférés elengedhetetlen az AI rendszerek számára, hogy pontos és megalapozott előrejelzéseket és döntéseket hozzanak az emberekről.
+
+> [🎥 Kattintson ide a videóért: biztonság az AI-ban](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Az iparág jelentős előrelépéseket tett az adatvédelem és biztonság terén, amelyet jelentősen ösztönöztek olyan szabályozások, mint a GDPR (Általános Adatvédelmi Rendelet).
+- Az AI rendszerekkel azonban el kell ismernünk a feszültséget a személyes adatok szükségessége és a magánélet védelme között.
+- Ahogy az internethez kapcsolt számítógépek születésével, az AI-val kapcsolatos biztonsági problémák száma is jelentősen megnőtt.
+- Ugyanakkor az AI-t a biztonság javítására is használjuk. Például a legtöbb modern víruskereső szkennert AI-alapú heurisztikák vezérlik.
+- Biztosítanunk kell, hogy az adatkutatási folyamataink harmonikusan illeszkedjenek a legújabb adatvédelmi és biztonsági gyakorlatokhoz.
+
+### Átláthatóság
+
+Az AI rendszereknek érthetőnek kell lenniük. Az átláthatóság kulcsfontosságú része az AI rendszerek és azok összetevőinek viselkedésének magyarázata. Az AI rendszerek megértésének javítása megköveteli, hogy az érintettek megértsék, hogyan és miért működnek, hogy azonosítani tudják a lehetséges teljesítményproblémákat, biztonsági és adatvédelmi aggályokat, előítéleteket, kizáró gyakorlatokat vagy nem szándékos eredményeket. Úgy gondoljuk, hogy azoknak, akik AI rendszereket használnak, őszintének és nyíltnak kell lenniük arról, hogy mikor, miért és hogyan döntenek azok alkalmazása mellett. Valamint a rendszerek korlátairól. Például, ha egy bank AI rendszert használ a fogyasztói hiteldöntések támogatására, fontos megvizsgálni az eredményeket, és megérteni, hogy mely adatok befolyásolják a rendszer ajánlásait. A kormányok elkezdték szabályozni az AI-t az iparágakban, így az adatkutatóknak és szervezeteknek magyarázatot kell adniuk arra, hogy az AI rendszer megfelel-e a szabályozási követelményeknek, különösen, ha nem kívánatos eredmény születik.
+
+> [🎥 Kattintson ide a videóért: átláthatóság az AI-ban](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Mivel az AI rendszerek nagyon összetettek, nehéz megérteni, hogyan működnek és értelmezni az eredményeket.
+- Ez a megértés hiánya befolyásolja, hogyan kezelik, üzemeltetik és dokumentálják ezeket a rendszereket.
+- Ez a megértés hiánya még fontosabb módon befolyásolja azokat a döntéseket, amelyeket ezeknek a rendszereknek az eredményei alapján hoznak.
+
+### Elszámoltathatóság
+
+Azoknak, akik AI rendszereket terveznek és telepítenek, felelősséget kell vállalniuk rendszereik működéséért. Az elszámoltathatóság szükségessége különösen fontos az érzékeny technológiák, például az arcfelismerés esetében. Az utóbbi időben egyre nagyobb igény mutatkozik az arcfelismerő technológia iránt, különösen a bűnüldöző szervezetek részéről, akik látják a technológia lehetőségeit például eltűnt gyermekek megtalálásában. Azonban ezek a technológiák potenciálisan veszélyeztethetik az állampolgárok alapvető szabadságjogait, például az egyének folyamatos megfigyelésének lehetővé tételével. Ezért az adatkutatóknak és szervezeteknek felelősséget kell vállalniuk AI rendszerük egyénekre vagy társadalomra gyakorolt hatásáért.
+
+[](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Microsoft megközelítése a felelős AI-hoz")
+
+> 🎥 Kattintson a fenti képre a videóért: Figyelmeztetés a tömeges megfigyelés veszélyeire arcfelismeréssel
+
+Végső soron az egyik legnagyobb kérdés generációnk számára, mint az első generáció, amely AI-t hoz a társadalomba, az, hogyan biztosíthatjuk, hogy a számítógépek továbbra is elszámoltathatók maradjanak az emberek számára, és hogyan biztosíthatjuk, hogy a számítógépeket tervező emberek elszámoltathatók maradjanak mindenki más számára.
+
+## Hatásvizsgálat
+
+Mielőtt gépi tanulási modellt képeznénk, fontos hatásvizsgálatot végezni, hogy megértsük az AI rendszer célját; mi a tervezett felhasználás; hol lesz telepítve; és kik fognak interakcióba lépni a rendszerrel. Ezek segítenek a rendszer értékelését végzőknek vagy tesztelőknek, hogy tudják, milyen tényezőket kell figyelembe venniük a lehetséges kockázatok és várható következmények azonosításakor.
+
+A hatásvizsgálat során az alábbi területekre kell összpontosítani:
+
+* **Kedvezőtlen hatás az egyénekre**. Fontos tudatában lenni minden korlátozásnak vagy követelménynek, nem támogatott használatnak vagy ismert korlátozásnak, amelyek akadályozhatják a rendszer teljesítményét, hogy biztosítsuk, hogy a rendszer ne okozzon kárt az egyéneknek.
+* **Adatigények**. Az adatok felhasználásának módj
+Nézd meg ezt a workshopot, hogy mélyebben elmerülj a témákban:
+
+- A felelős mesterséges intelligencia nyomában: Elvek gyakorlati alkalmazása Besmira Nushi, Mehrnoosh Sameki és Amit Sharma előadásában
+
+[](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: Nyílt forráskódú keretrendszer a felelős mesterséges intelligencia építéséhez")
+
+> 🎥 Kattints a fenti képre a videóért: RAI Toolbox: Nyílt forráskódú keretrendszer a felelős mesterséges intelligencia építéséhez Besmira Nushi, Mehrnoosh Sameki és Amit Sharma előadásában
+
+Olvasd el továbbá:
+
+- Microsoft RAI erőforrásközpontja: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Microsoft FATE kutatócsoportja: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+RAI Toolbox:
+
+- [Responsible AI Toolbox GitHub repository](https://github.com/microsoft/responsible-ai-toolbox)
+
+Olvass az Azure Machine Learning eszközeiről, amelyek a méltányosság biztosítását szolgálják:
+
+- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott)
+
+## Feladat
+
+[Ismerd meg a RAI Toolboxot](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/1-Introduction/3-fairness/assignment.md b/translations/hu/1-Introduction/3-fairness/assignment.md
new file mode 100644
index 00000000..2530c332
--- /dev/null
+++ b/translations/hu/1-Introduction/3-fairness/assignment.md
@@ -0,0 +1,25 @@
+
+# Fedezd fel a Responsible AI Toolbox-t
+
+## Útmutató
+
+Ebben a leckében megismerkedtél a Responsible AI Toolbox-szal, egy "nyílt forráskódú, közösség által vezérelt projekttel, amely segíti az adatkutatókat az AI rendszerek elemzésében és fejlesztésében." Ehhez a feladathoz fedezz fel a RAI Toolbox egyik [notebookját](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb), és számolj be az eredményeidről egy dolgozatban vagy prezentációban.
+
+## Értékelési szempontok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre szorul |
+| --------- | ------- | --------- | ------------------- |
+| | Egy dolgozat vagy PowerPoint prezentáció bemutatja a Fairlearn rendszereit, a futtatott notebookot, és az abból levont következtetéseket | Egy dolgozat bemutatásra kerül, de következtetések nélkül | Nem kerül bemutatásra dolgozat |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/1-Introduction/4-techniques-of-ML/README.md b/translations/hu/1-Introduction/4-techniques-of-ML/README.md
new file mode 100644
index 00000000..e1d4d19c
--- /dev/null
+++ b/translations/hu/1-Introduction/4-techniques-of-ML/README.md
@@ -0,0 +1,132 @@
+
+# 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:
+
+- 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”.
+
+## [Előzetes 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.
+
+## Bevezetés
+
+Magas szinten nézve a gépi tanulási (ML) folyamatok létrehozása 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.
+
+## 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.
+
+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.
+
+✅ 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.
+
+## Modellépítés előtti feladatok
+
+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.
+
+### 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:
+
+- **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.
+
+✅ 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!
+
+### 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 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.
+
+### Jellemző változó kiválasztása
+
+🎓 **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))
+
+### Adatok vizualizálása
+
+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).
+
+### Adatállomány felosztása
+
+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.
+
+- **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).
+
+## 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.
+
+### Tanítási módszer kiválasztása
+
+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.
+
+### Modell tanítása
+
+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”).
+
+### Modell értékelése
+
+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.
+
+🎓 **Modell illesztése**
+
+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.
+
+🎓 **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.
+
+
+> Infografika: [Jen Looper](https://twitter.com/jenlooper)
+
+## Paraméterek finomhangolása
+
+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).
+
+## 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.
+
+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.
+
+---
+
+## 🚀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?
+
+## [Utólagos 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).
+
+## Feladat
+
+[Interjú egy adatkutatóval](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
diff --git a/translations/hu/1-Introduction/4-techniques-of-ML/assignment.md b/translations/hu/1-Introduction/4-techniques-of-ML/assignment.md
new file mode 100644
index 00000000..299c8972
--- /dev/null
+++ b/translations/hu/1-Introduction/4-techniques-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Beszélgetés egy adatelemzővel
+
+## Útmutató
+
+A cégedben, egy felhasználói csoportban, vagy barátaid és diáktársaid között beszélgess valakivel, aki hivatásszerűen adatelemzőként dolgozik. Írj egy rövid (500 szavas) esszét a napi tevékenységeikről. Szakértők, vagy inkább "full stack" módon dolgoznak?
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------- | --------------------- |
+| | A megfelelő hosszúságú esszé, forrásokkal ellátva, .doc fájl formátumban | Az esszé rosszul hivatkozott vagy rövidebb a szükséges hosszúságnál | Nincs esszé benyújtva |
+
+---
+
+**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. Fontos 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
diff --git a/translations/hu/1-Introduction/README.md b/translations/hu/1-Introduction/README.md
new file mode 100644
index 00000000..779445a4
--- /dev/null
+++ b/translations/hu/1-Introduction/README.md
@@ -0,0 +1,36 @@
+
+# Bevezetés a gépi tanulásba
+
+A tananyag ezen részében megismerkedsz a gépi tanulás alapfogalmaival, azzal, hogy mi is ez, valamint annak történetével és a kutatók által alkalmazott technikákkal. Fedezzük fel együtt a gépi tanulás új világát!
+
+
+> Fotó: Bill Oxford az Unsplash oldalán
+
+### Leckék
+
+1. [Bevezetés a gépi tanulásba](1-intro-to-ML/README.md)
+1. [A gépi tanulás és mesterséges intelligencia története](2-history-of-ML/README.md)
+1. [Méltányosság és gépi tanulás](3-fairness/README.md)
+1. [A gépi tanulás technikái](4-techniques-of-ML/README.md)
+### Köszönetnyilvánítás
+
+"A gépi tanulás bevezetése" című anyagot ♥️-vel írta egy csapat, amelynek tagjai: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) és [Jen Looper](https://twitter.com/jenlooper)
+
+"A gépi tanulás története" című anyagot ♥️-vel írta [Jen Looper](https://twitter.com/jenlooper) és [Amy Boyd](https://twitter.com/AmyKateNicho)
+
+"Méltányosság és gépi tanulás" című anyagot ♥️-vel írta [Tomomi Imura](https://twitter.com/girliemac)
+
+"A gépi tanulás technikái" című anyagot ♥️-vel írta [Jen Looper](https://twitter.com/jenlooper) és [Chris Noring](https://twitter.com/softchris)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/2-Regression/1-Tools/README.md b/translations/hu/2-Regression/1-Tools/README.md
new file mode 100644
index 00000000..39d73000
--- /dev/null
+++ b/translations/hu/2-Regression/1-Tools/README.md
@@ -0,0 +1,227 @@
+
+# Kezdjük el a Python és a Scikit-learn használatát regressziós modellekhez
+
+
+
+> Vázlatrajz: [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Ez a lecke R nyelven is elérhető!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
+
+## Bevezetés
+
+Ebben a négy leckében megtanulhatod, hogyan építs regressziós modelleket. Rövidesen megbeszéljük, hogy mire használhatók ezek. De mielőtt bármibe belekezdenél, győződj meg róla, hogy a megfelelő eszközök rendelkezésre állnak a folyamat elindításához!
+
+Ebben a leckében megtanulod:
+
+- Hogyan konfiguráld a számítógéped helyi gépi tanulási feladatokhoz.
+- Hogyan dolgozz Jupyter notebookokkal.
+- Hogyan használd a Scikit-learn könyvtárat, beleértve annak telepítését.
+- Hogyan fedezd fel a lineáris regressziót egy gyakorlati feladaton keresztül.
+
+## Telepítések és konfigurációk
+
+[](https://youtu.be/-DfeD2k2Kj0 "ML kezdőknek - Eszközök beállítása gépi tanulási modellek építéséhez")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja, hogyan konfiguráld a számítógéped a gépi tanuláshoz.
+
+1. **Telepítsd a Python-t**. Győződj meg róla, hogy a [Python](https://www.python.org/downloads/) telepítve van a számítógépeden. A Python-t számos adatfeldolgozási és gépi tanulási feladathoz fogod használni. A legtöbb számítógépes rendszer már tartalmaz Python telepítést. Hasznosak lehetnek a [Python Coding Pack-ek](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) is, amelyek megkönnyítik a beállítást néhány felhasználó számára.
+
+ A Python bizonyos használati módjai azonban eltérő verziókat igényelhetnek. Ezért hasznos lehet egy [virtuális környezetben](https://docs.python.org/3/library/venv.html) dolgozni.
+
+2. **Telepítsd a Visual Studio Code-ot**. Győződj meg róla, hogy a Visual Studio Code telepítve van a számítógépedre. Kövesd ezeket az utasításokat a [Visual Studio Code telepítéséhez](https://code.visualstudio.com/). Ebben a kurzusban a Python-t a Visual Studio Code-ban fogod használni, ezért érdemes lehet felfrissíteni a tudásodat arról, hogyan [konfiguráld a Visual Studio Code-ot](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) Python fejlesztéshez.
+
+ > Ismerkedj meg a Python-nal ezeknek a [Learn moduloknak](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott) a segítségével.
+ >
+ > [](https://youtu.be/yyQM70vi7V8 "Python beállítása a Visual Studio Code-ban")
+ >
+ > 🎥 Kattints a fenti képre egy videóért: Python használata a VS Code-ban.
+
+3. **Telepítsd a Scikit-learn-t**, a [következő utasítások](https://scikit-learn.org/stable/install.html) alapján. Mivel Python 3-at kell használnod, ajánlott egy virtuális környezet használata. Ha M1 Mac-en telepíted ezt a könyvtárat, különleges utasításokat találsz a fenti oldalon.
+
+4. **Telepítsd a Jupyter Notebook-ot**. Telepítsd a [Jupyter csomagot](https://pypi.org/project/jupyter/).
+
+## A gépi tanulási fejlesztési környezeted
+
+A Python kód fejlesztéséhez és gépi tanulási modellek létrehozásához **notebookokat** fogsz használni. Ez a fájltípus az adatkutatók körében gyakori eszköz, és `.ipynb` kiterjesztéssel azonosítható.
+
+A notebookok interaktív környezetet biztosítanak, amely lehetővé teszi a fejlesztő számára, hogy kódot írjon, jegyzeteket készítsen, és dokumentációt írjon a kód köré, ami különösen hasznos kísérleti vagy kutatási projektek esetén.
+
+[](https://youtu.be/7E-jC8FLA2E "ML kezdőknek - Jupyter Notebookok beállítása regressziós modellek építéséhez")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja ezt a gyakorlatot.
+
+### Gyakorlat - dolgozz egy notebookkal
+
+Ebben a mappában megtalálod a _notebook.ipynb_ fájlt.
+
+1. Nyisd meg a _notebook.ipynb_ fájlt a Visual Studio Code-ban.
+
+ Egy Jupyter szerver indul el Python 3+ környezettel. A notebookban olyan részeket találsz, amelyek `futtathatók`, azaz kódrészletek. Egy kódrészletet a lejátszás gombra hasonlító ikon kiválasztásával futtathatsz.
+
+2. Válaszd ki az `md` ikont, és adj hozzá egy kis markdown szöveget, például a következőt: **# Üdvözöllek a notebookodban**.
+
+ Ezután adj hozzá egy kis Python kódot.
+
+3. Írd be a következő kódot: **print('hello notebook')**.
+4. Kattints a nyílra a kód futtatásához.
+
+ A következő kimenetet kell látnod:
+
+ ```output
+ hello notebook
+ ```
+
+
+
+A kódot megjegyzésekkel egészítheted ki, hogy önmagad számára dokumentáld a notebookot.
+
+✅ Gondolkodj el egy percre azon, hogy mennyire különbözik egy webfejlesztő munkakörnyezete egy adatkutatóétól.
+
+## Scikit-learn használatának elsajátítása
+
+Most, hogy a Python be van állítva a helyi környezetedben, és kényelmesen használod a Jupyter notebookokat, ismerkedj meg a Scikit-learn-nel (ejtsd: `száj` mint a `science`). A Scikit-learn egy [kiterjedt API-t](https://scikit-learn.org/stable/modules/classes.html#api-ref) biztosít, amely segít a gépi tanulási feladatok elvégzésében.
+
+A [weboldaluk](https://scikit-learn.org/stable/getting_started.html) szerint: "A Scikit-learn egy nyílt forráskódú gépi tanulási könyvtár, amely támogatja a felügyelt és felügyelet nélküli tanulást. Emellett különféle eszközöket biztosít a modellillesztéshez, adat-előfeldolgozáshoz, modellkiválasztáshoz és értékeléshez, valamint számos egyéb segédprogramhoz."
+
+Ebben a kurzusban a Scikit-learn-t és más eszközöket fogsz használni gépi tanulási modellek építéséhez, hogy úgynevezett 'hagyományos gépi tanulási' feladatokat végezz. Szándékosan kerültük a neurális hálózatokat és a mélytanulást, mivel ezek jobban lefedhetők a hamarosan megjelenő 'AI kezdőknek' tananyagunkban.
+
+A Scikit-learn egyszerűvé teszi a modellek építését és értékelését. Elsősorban numerikus adatok használatára összpontosít, és számos előre elkészített adathalmazt tartalmaz tanulási célokra. Emellett előre elkészített modelleket is tartalmaz, amelyeket a diákok kipróbálhatnak. Fedezzük fel a folyamatot, amely során előre csomagolt adatokat töltünk be, és egy beépített becslőt használunk az első ML modellünkhöz a Scikit-learn segítségével.
+
+## Gyakorlat - az első Scikit-learn notebookod
+
+> Ez az oktatóanyag a Scikit-learn weboldalán található [lineáris regressziós példa](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) alapján készült.
+
+[](https://youtu.be/2xkXL5EUpS0 "ML kezdőknek - Az első lineáris regressziós projekted Python-ban")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja ezt a gyakorlatot.
+
+A leckéhez tartozó _notebook.ipynb_ fájlban töröld ki az összes cellát a 'szemetes' ikonra kattintva.
+
+Ebben a részben egy kis, a Scikit-learn-be beépített diabétesz adathalmazzal fogsz dolgozni tanulási célokra. Képzeld el, hogy egy kezelést szeretnél tesztelni cukorbetegek számára. A gépi tanulási modellek segíthetnek meghatározni, hogy mely betegek reagálnának jobban a kezelésre, a változók kombinációi alapján. Még egy nagyon alapvető regressziós modell is, ha vizualizáljuk, információt nyújthat a változókról, amelyek segíthetnek a klinikai vizsgálatok megszervezésében.
+
+✅ Számos regressziós módszer létezik, és hogy melyiket választod, az attól függ, milyen kérdésre keresel választ. Ha például egy adott korú személy várható magasságát szeretnéd megjósolni, lineáris regressziót használnál, mivel egy **numerikus értéket** keresel. Ha viszont azt szeretnéd megtudni, hogy egy konyha típusa vegánnak tekinthető-e vagy sem, akkor egy **kategória-hozzárendelést** keresel, így logisztikus regressziót használnál. Később többet megtudhatsz a logisztikus regresszióról. Gondolkodj el azon, hogy milyen kérdéseket tehetsz fel az adatokkal kapcsolatban, és melyik módszer lenne megfelelőbb.
+
+Kezdjünk neki ennek a feladatnak.
+
+### Könyvtárak importálása
+
+Ehhez a feladathoz néhány könyvtárat fogunk importálni:
+
+- **matplotlib**. Ez egy hasznos [grafikonkészítő eszköz](https://matplotlib.org/), amelyet vonaldiagramok készítésére fogunk használni.
+- **numpy**. A [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) egy hasznos könyvtár numerikus adatok kezelésére Python-ban.
+- **sklearn**. Ez a [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) könyvtár.
+
+Importálj néhány könyvtárat a feladatok elvégzéséhez.
+
+1. Add hozzá az importokat az alábbi kód beírásával:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import numpy as np
+ from sklearn import datasets, linear_model, model_selection
+ ```
+
+ A fenti kódban importálod a `matplotlib`-et, a `numpy`-t, valamint a `datasets`, `linear_model` és `model_selection` modulokat a `sklearn`-ből. A `model_selection` a teszt- és tanulóhalmazok szétválasztására szolgál.
+
+### A diabétesz adathalmaz
+
+A beépített [diabétesz adathalmaz](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) 442 diabéteszhez kapcsolódó mintát tartalmaz, 10 jellemző változóval, amelyek közül néhány:
+
+- age: életkor években
+- bmi: testtömegindex
+- bp: átlagos vérnyomás
+- s1 tc: T-sejtek (egy típusú fehérvérsejtek)
+
+✅ Ez az adathalmaz tartalmazza a 'nem' fogalmát, mint a diabétesz kutatás szempontjából fontos jellemző változót. Számos orvosi adathalmaz tartalmaz ilyen típusú bináris osztályozást. Gondolkodj el azon, hogy az ilyen kategorizálások hogyan zárhatnak ki bizonyos népességcsoportokat a kezelésekből.
+
+Most töltsd be az X és y adatokat.
+
+> 🎓 Ne feledd, hogy ez felügyelt tanulás, és szükségünk van egy megnevezett 'y' célváltozóra.
+
+Egy új kódcellában töltsd be a diabétesz adathalmazt a `load_diabetes()` hívásával. A `return_X_y=True` bemenet jelzi, hogy az `X` egy adatmátrix lesz, az `y` pedig a regressziós cél.
+
+1. Adj hozzá néhány print parancsot, hogy megjelenítsd az adatmátrix alakját és az első elemét:
+
+ ```python
+ X, y = datasets.load_diabetes(return_X_y=True)
+ print(X.shape)
+ print(X[0])
+ ```
+
+ Amit válaszként kapsz, az egy tuple. Amit csinálsz, az az, hogy a tuple első két értékét hozzárendeled az `X`-hez és az `y`-hoz. Tudj meg többet a [tuple-ökről](https://wikipedia.org/wiki/Tuple).
+
+ Láthatod, hogy ezek az adatok 442 elemet tartalmaznak, amelyek 10 elemből álló tömbökbe vannak rendezve:
+
+ ```text
+ (442, 10)
+ [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076
+ -0.04340085 -0.00259226 0.01990842 -0.01764613]
+ ```
+
+ ✅ Gondolkodj el az adatok és a regressziós cél közötti kapcsolaton. A lineáris regresszió az X jellemző és az y célváltozó közötti kapcsolatot jósolja meg. Megtalálod a [célváltozót](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) a diabétesz adathalmaz dokumentációjában? Mit mutat ez az adathalmaz a célváltozó alapján?
+
+2. Ezután válassz ki egy részt ebből az adathalmazból, hogy ábrázolhasd, például az adathalmaz 3. oszlopát. Ezt a `:` operátorral teheted meg, hogy kiválaszd az összes sort, majd az index (2) segítségével kiválaszd a 3. oszlopot. Az adatokat 2D tömbbé is átalakíthatod - ahogy az ábrázoláshoz szükséges - a `reshape(n_rows, n_columns)` használatával. Ha az egyik paraméter -1, a megfelelő dimenzió automatikusan kiszámításra kerül.
+
+ ```python
+ X = X[:, 2]
+ X = X.reshape((-1,1))
+ ```
+
+ ✅ Bármikor nyomtasd ki az adatokat, hogy ellenőrizd az alakjukat.
+
+3. Most, hogy az adatok készen állnak az ábrázolásra, megnézheted, hogy egy gép segíthet-e logikus határvonalat húzni az adathalmaz számai között. Ehhez szét kell választanod az adatokat (X) és a célváltozót (y) teszt- és tanulóhalmazokra. A Scikit-learn egyszerű módot kínál erre; az adataidat egy adott ponton oszthatod szét.
+
+ ```python
+ X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
+ ```
+
+4. Most készen állsz a modell betanítására! Töltsd be a lineáris regressziós modellt, és tanítsd be az X és y tanulóhalmazokkal a `model.fit()` használatával:
+
+ ```python
+ model = linear_model.LinearRegression()
+ model.fit(X_train, y_train)
+ ```
+
+ ✅ A `model.fit()` egy olyan függvény, amelyet sok ML könyvtárban, például a TensorFlow-ban is láthatsz.
+
+5. Ezután hozz létre egy előrejelzést a tesztadatok alapján a `predict()` függvény használatával. Ezt fogod használni a vonal meghúzásához az adathalmaz csoportjai között.
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+6. Most itt az ideje, hogy megjelenítsd az adatokat egy diagramon. A Matplotlib
+✅ Gondolkodj el egy kicsit azon, mi történik itt. Egy egyenes vonal halad át sok apró adatponton, de pontosan mit csinál? Látod, hogyan tudnád ezt a vonalat felhasználni arra, hogy megjósold, hol helyezkedne el egy új, még nem látott adatpont a grafikon y tengelyéhez viszonyítva? Próbáld meg szavakba önteni ennek a modellnek a gyakorlati hasznát.
+
+Gratulálok, elkészítetted az első lineáris regressziós modelledet, készítettél vele egy előrejelzést, és megjelenítetted egy grafikonon!
+
+---
+## 🚀Kihívás
+
+Ábrázolj egy másik változót ebből az adatállományból. Tipp: szerkeszd ezt a sort: `X = X[:,2]`. Ennek az adatállománynak a célértéke alapján mit tudsz felfedezni a cukorbetegség betegségként való előrehaladásáról?
+## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Ebben a bemutatóban egyszerű lineáris regresszióval dolgoztál, nem pedig univariáns vagy többszörös lineáris regresszióval. Olvass egy kicsit ezeknek a módszereknek a különbségeiről, vagy nézd meg [ezt a videót](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef).
+
+Olvass többet a regresszió fogalmáról, és gondolkodj el azon, milyen típusú kérdésekre lehet választ adni ezzel a technikával. Vegyél részt [ebben a bemutatóban](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott), hogy elmélyítsd a tudásodat.
+
+## Feladat
+
+[Egy másik adatállomány](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos 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
diff --git a/translations/hu/2-Regression/1-Tools/assignment.md b/translations/hu/2-Regression/1-Tools/assignment.md
new file mode 100644
index 00000000..21a70e65
--- /dev/null
+++ b/translations/hu/2-Regression/1-Tools/assignment.md
@@ -0,0 +1,27 @@
+
+# Regresszió Scikit-learn segítségével
+
+## Útmutató
+
+Tekintsd meg a [Linnerud adatállományt](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) a Scikit-learn-ben. Ez az adatállomány több [célváltozót](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset) tartalmaz: „Három edzés (adat) és három fiziológiai (cél) változót tartalmaz, amelyeket húsz középkorú férfitól gyűjtöttek egy fitneszklubban.”
+
+Saját szavaiddal írd le, hogyan lehet létrehozni egy regressziós modellt, amely ábrázolja a derékméret és az elvégzett felülések közötti kapcsolatot. Végezd el ugyanezt az adatállomány többi adatpontjára is.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- |
+| Leíró bekezdés beküldése | Jól megírt bekezdés került beküldésre | Néhány mondat került beküldésre | Nem került beküldésre leírás |
+
+---
+
+**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
diff --git a/translations/hu/2-Regression/1-Tools/solution/Julia/README.md b/translations/hu/2-Regression/1-Tools/solution/Julia/README.md
new file mode 100644
index 00000000..aca87046
--- /dev/null
+++ b/translations/hu/2-Regression/1-Tools/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/2-Regression/2-Data/README.md b/translations/hu/2-Regression/2-Data/README.md
new file mode 100644
index 00000000..f1ba1f69
--- /dev/null
+++ b/translations/hu/2-Regression/2-Data/README.md
@@ -0,0 +1,226 @@
+
+# Készítsünk regressziós modellt Scikit-learn segítségével: adatok előkészítése és vizualizálása
+
+
+
+Infografika: [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/2-Data/solution/R/lesson_2.html)
+
+## Bevezetés
+
+Most, hogy rendelkezésedre állnak azok az eszközök, amelyekkel elkezdheted a gépi tanulási modellek építését Scikit-learn segítségével, készen állsz arra, hogy kérdéseket tegyél fel az adataiddal kapcsolatban. Amikor adatokkal dolgozol és gépi tanulási megoldásokat alkalmazol, nagyon fontos, hogy megtanuld, hogyan tegyél fel megfelelő kérdéseket, hogy kiaknázhasd az adathalmazodban rejlő lehetőségeket.
+
+Ebben a leckében megtanulod:
+
+- Hogyan készítsd elő az adataidat a modellépítéshez.
+- Hogyan használd a Matplotlibet adatvizualizációhoz.
+
+## Hogyan tegyél fel megfelelő kérdést az adataiddal kapcsolatban?
+
+Az a kérdés, amelyre választ szeretnél kapni, meghatározza, hogy milyen típusú gépi tanulási algoritmusokat fogsz használni. A kapott válasz minősége pedig nagymértékben függ az adataid természetétől.
+
+Nézd meg a [leckéhez biztosított adatokat](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv). Ezt a .csv fájlt megnyithatod VS Code-ban. Egy gyors átnézés azonnal megmutatja, hogy vannak hiányzó értékek, valamint szöveges és numerikus adatok keveréke. Van egy furcsa oszlop is, amelyet "Package"-nek hívnak, ahol az adatok között szerepelnek például "sacks", "bins" és más értékek. Az adatok valójában elég zűrösek.
+
+[](https://youtu.be/5qGjczWTrDQ "ML kezdőknek - Hogyan elemezzünk és tisztítsunk egy adathalmazt")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja az adatok előkészítését ehhez a leckéhez.
+
+Valójában nem túl gyakori, hogy egy adathalmaz teljesen készen áll arra, hogy gépi tanulási modellt készítsünk belőle. Ebben a leckében megtanulod, hogyan készíts elő egy nyers adathalmazt standard Python könyvtárak segítségével. Emellett különböző technikákat is megismerhetsz az adatok vizualizálására.
+
+## Esettanulmány: "a tökpiac"
+
+Ebben a mappában találsz egy .csv fájlt a gyökér `data` mappában, amelynek neve [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv). Ez a fájl 1757 sor adatot tartalmaz a tökpiacról, városok szerint csoportosítva. Ez nyers adat, amelyet az [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) oldalról származtatott az Egyesült Államok Mezőgazdasági Minisztériuma.
+
+### Adatok előkészítése
+
+Ezek az adatok közkincsnek számítanak. Az USDA weboldaláról külön fájlokban, városonként letölthetők. Az adatok túlzott szétaprózódásának elkerülése érdekében az összes városi adatot egy táblázatba fűztük össze, így már egy kicsit _előkészítettük_ az adatokat. Most nézzük meg közelebbről az adatokat.
+
+### A tökadatok - korai következtetések
+
+Mit veszel észre ezekkel az adatokkal kapcsolatban? Már láttad, hogy van szövegek, számok, hiányzó értékek és furcsa értékek keveréke, amelyeket értelmezni kell.
+
+Milyen kérdést tehetsz fel ezekkel az adatokkal kapcsolatban regressziós technikát alkalmazva? Például: "Előrejelezni egy tök árát egy adott hónapban." Ha újra megnézed az adatokat, láthatod, hogy néhány változtatást kell végrehajtanod, hogy létrehozd a feladathoz szükséges adatstruktúrát.
+
+## Gyakorlat - elemezd a tökadatokat
+
+Használjuk a [Pandas](https://pandas.pydata.org/) könyvtárat (a név a `Python Data Analysis` rövidítése), amely nagyon hasznos az adatok formázásához, hogy elemezzük és előkészítsük a tökadatokat.
+
+### Először ellenőrizd a hiányzó dátumokat
+
+Először lépéseket kell tenned a hiányzó dátumok ellenőrzésére:
+
+1. Konvertáld a dátumokat hónap formátumba (ezek amerikai dátumok, tehát a formátum `MM/DD/YYYY`).
+2. Hozz létre egy új oszlopot, amely csak a hónapot tartalmazza.
+
+Nyisd meg a _notebook.ipynb_ fájlt a Visual Studio Code-ban, és importáld a táblázatot egy új Pandas dataframe-be.
+
+1. Használd a `head()` függvényt az első öt sor megtekintéséhez.
+
+ ```python
+ import pandas as pd
+ pumpkins = pd.read_csv('../data/US-pumpkins.csv')
+ pumpkins.head()
+ ```
+
+ ✅ Milyen függvényt használnál az utolsó öt sor megtekintéséhez?
+
+1. Ellenőrizd, hogy van-e hiányzó adat az aktuális dataframe-ben:
+
+ ```python
+ pumpkins.isnull().sum()
+ ```
+
+ Van hiányzó adat, de lehet, hogy ez nem számít a feladat szempontjából.
+
+1. Hogy könnyebben dolgozhass a dataframe-mel, válaszd ki csak azokat az oszlopokat, amelyekre szükséged van, a `loc` függvény segítségével, amely az eredeti dataframe-ből egy sorokból (első paraméter) és oszlopokból (második paraméter) álló csoportot von ki. Az alábbi esetben a `:` kifejezés azt jelenti, hogy "minden sor".
+
+ ```python
+ columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
+ pumpkins = pumpkins.loc[:, columns_to_select]
+ ```
+
+### Másodszor, határozd meg a tök átlagárát
+
+Gondold át, hogyan határozhatod meg egy tök átlagárát egy adott hónapban. Mely oszlopokat választanád ehhez a feladathoz? Tipp: három oszlopra lesz szükséged.
+
+Megoldás: vedd az `Low Price` és `High Price` oszlopok átlagát, hogy kitöltsd az új Price oszlopot, és konvertáld a Date oszlopot úgy, hogy csak a hónapot mutassa. Szerencsére az előző ellenőrzés szerint nincs hiányzó adat a dátumok vagy árak esetében.
+
+1. Az átlag kiszámításához add hozzá a következő kódot:
+
+ ```python
+ price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
+
+ month = pd.DatetimeIndex(pumpkins['Date']).month
+
+ ```
+
+ ✅ Nyugodtan nyomtass ki bármilyen adatot, amit ellenőrizni szeretnél a `print(month)` segítségével.
+
+2. Most másold át az átalakított adatokat egy új Pandas dataframe-be:
+
+ ```python
+ new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
+ ```
+
+ Ha kinyomtatod a dataframe-et, egy tiszta, rendezett adathalmazt fogsz látni, amelyre építheted az új regressziós modelledet.
+
+### De várj! Valami furcsa van itt
+
+Ha megnézed a `Package` oszlopot, a tökök sokféle konfigurációban kerülnek értékesítésre. Néhányat "1 1/9 bushel" mértékegységben, néhányat "1/2 bushel" mértékegységben, néhányat darabonként, néhányat fontonként, és néhányat nagy dobozokban, amelyek szélessége változó.
+
+> Úgy tűnik, hogy a tökök súlyának következetes mérése nagyon nehéz
+
+Ha beleásod magad az eredeti adatokba, érdekes, hogy bármi, aminek `Unit of Sale` értéke 'EACH' vagy 'PER BIN', szintén a `Package` típus szerint van megadva, például hüvelykben, binben vagy darabonként. Úgy tűnik, hogy a tökök súlyának következetes mérése nagyon nehéz, ezért szűrjük őket úgy, hogy csak azokat a tököket válasszuk ki, amelyek `Package` oszlopában szerepel a 'bushel' szó.
+
+1. Adj hozzá egy szűrőt a fájl tetejére, az eredeti .csv importálása alá:
+
+ ```python
+ pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
+ ```
+
+ Ha most kinyomtatod az adatokat, láthatod, hogy csak azokat a körülbelül 415 sort kapod, amelyek bushelben mért tököket tartalmaznak.
+
+### De várj! Még egy dolgot meg kell tenni
+
+Észrevetted, hogy a bushel mennyisége soronként változik? Normalizálnod kell az árképzést, hogy bushelre vetítve mutasd az árakat, tehát végezz némi matematikát az árak standardizálásához.
+
+1. Add hozzá ezeket a sorokat a new_pumpkins dataframe létrehozó blokk után:
+
+ ```python
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9)
+
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2)
+ ```
+
+✅ A [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308) szerint a bushel súlya a termék típusától függ, mivel ez egy térfogatmérés. "Egy bushel paradicsom például 56 fontot kell, hogy nyomjon... A levelek és zöldek több helyet foglalnak kevesebb súllyal, így egy bushel spenót csak 20 font." Ez mind elég bonyolult! Ne foglalkozzunk a bushel-font átváltással, hanem inkább bushelre vetítve árazzunk. Mindez a bushel tökök tanulmányozása azonban megmutatja, mennyire fontos megérteni az adatok természetét!
+
+Most már elemezheted az árképzést egységenként a bushel mértékegység alapján. Ha még egyszer kinyomtatod az adatokat, láthatod, hogyan lett standardizálva.
+
+✅ Észrevetted, hogy a fél bushelben árult tökök nagyon drágák? Ki tudod találni, miért? Tipp: a kis tökök sokkal drágábbak, mint a nagyok, valószínűleg azért, mert sokkal több van belőlük bushelben, tekintve az egy nagy üreges tök által elfoglalt kihasználatlan helyet.
+
+## Vizualizációs stratégiák
+
+Az adatelemzők egyik feladata, hogy bemutassák az adatok minőségét és természetét, amelyekkel dolgoznak. Ehhez gyakran készítenek érdekes vizualizációkat, például diagramokat, grafikonokat és táblázatokat, amelyek az adatok különböző aspektusait mutatják be. Ily módon vizuálisan képesek megmutatni az összefüggéseket és hiányosságokat, amelyeket egyébként nehéz lenne feltárni.
+
+[](https://youtu.be/SbUkxH6IJo0 "ML kezdőknek - Hogyan vizualizáljuk az adatokat Matplotlib segítségével")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja az adatok vizualizálását ehhez a leckéhez.
+
+A vizualizációk segíthetnek meghatározni, hogy mely gépi tanulási technika a legmegfelelőbb az adatokhoz. Például egy olyan szórásdiagram, amely látszólag egy vonalat követ, azt jelzi, hogy az adatok jó jelöltek lehetnek egy lineáris regressziós feladathoz.
+
+Egy adatvizualizációs könyvtár, amely jól működik Jupyter notebookokban, a [Matplotlib](https://matplotlib.org/) (amelyet az előző leckében is láttál).
+
+> Szerezz több tapasztalatot az adatvizualizációval [ezekben az oktatóanyagokban](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott).
+
+## Gyakorlat - kísérletezz a Matplotlibgel
+
+Próbálj meg néhány alapvető diagramot készíteni, hogy megjelenítsd az új dataframe-et, amelyet éppen létrehoztál. Mit mutatna egy alapvető vonaldiagram?
+
+1. Importáld a Matplotlibet a fájl tetején, a Pandas importálása alatt:
+
+ ```python
+ import matplotlib.pyplot as plt
+ ```
+
+1. Futtasd újra az egész notebookot a frissítéshez.
+1. A notebook alján adj hozzá egy cellát, hogy dobozdiagramot készíts:
+
+ ```python
+ price = new_pumpkins.Price
+ month = new_pumpkins.Month
+ plt.scatter(price, month)
+ plt.show()
+ ```
+
+ 
+
+ Hasznos ez a diagram? Meglepett valami vele kapcsolatban?
+
+ Ez nem különösebben hasznos, mivel csak az adataidat mutatja pontok szórásaként egy adott hónapban.
+
+### Tedd hasznossá
+
+Ahhoz, hogy a diagramok hasznos adatokat mutassanak, általában valahogyan csoportosítani kell az adatokat. Próbáljunk meg létrehozni egy diagramot, ahol az y tengely a hónapokat mutatja, és az adatok az eloszlást szemléltetik.
+
+1. Adj hozzá egy cellát, hogy csoportosított oszlopdiagramot készíts:
+
+ ```python
+ new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
+ plt.ylabel("Pumpkin Price")
+ ```
+
+ 
+
+ Ez egy hasznosabb adatvizualizáció! Úgy tűnik, hogy a tökök legmagasabb ára szeptemberben és októberben van. Ez megfelel az elvárásaidnak? Miért vagy miért nem?
+
+---
+
+## 🚀Kihívás
+
+Fedezd fel a Matplotlib által kínált különböző vizualizációs típusokat. Mely típusok a legmegfelelőbbek regressziós problémákhoz?
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Nézd meg az adatvizualizáció különböző módjait. Készíts listát a rendelkezésre álló könyvtárakról, és jegyezd fel, hogy melyek a legjobbak adott típusú feladatokhoz, például 2D vizualizációkhoz vagy 3D vizualizációkhoz. Mit fedezel fel?
+
+## Feladat
+
+[Adatvizualizáció felfedezése](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos 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
diff --git a/translations/hu/2-Regression/2-Data/assignment.md b/translations/hu/2-Regression/2-Data/assignment.md
new file mode 100644
index 00000000..248829ea
--- /dev/null
+++ b/translations/hu/2-Regression/2-Data/assignment.md
@@ -0,0 +1,23 @@
+
+# Vizualizációk felfedezése
+
+Számos különböző könyvtár érhető el az adatok vizualizálásához. Készíts néhány vizualizációt a leckében található Pumpkin adatok felhasználásával egy mintafüzetben matplotlib és seaborn segítségével. Melyik könyvtár használata egyszerűbb?
+
+## Értékelési szempontok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre szorul |
+| --------- | ------- | --------- | ------------------- |
+| | Egy füzetet adtak be, amely két felfedezést/vizualizációt tartalmaz | Egy füzetet adtak be, amely egy felfedezést/vizualizációt tartalmaz | Nem adtak be füzetet |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/2-Regression/2-Data/solution/Julia/README.md b/translations/hu/2-Regression/2-Data/solution/Julia/README.md
new file mode 100644
index 00000000..be12de1d
--- /dev/null
+++ b/translations/hu/2-Regression/2-Data/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ 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
new file mode 100644
index 00000000..071ded13
--- /dev/null
+++ b/translations/hu/2-Regression/3-Linear/README.md
@@ -0,0 +1,371 @@
+
+# Készítsünk regressziós modellt Scikit-learn segítségével: négyféle regresszió
+
+
+> Infografika: [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)
+### Bevezetés
+
+Eddig megismerkedtél azzal, hogy mi is az a regresszió, például a tökárak adatain keresztül, amelyeket ebben a leckében fogunk használni. A Matplotlib segítségével vizualizáltad is az adatokat.
+
+Most készen állsz arra, hogy mélyebben belemerülj a gépi tanulás regressziós technikáiba. Bár a vizualizáció segít az adatok megértésében, a gépi tanulás valódi ereje a _modellek tanításában_ rejlik. A modelleket történelmi adatokon tanítjuk, hogy automatikusan felismerjék az adatok közötti összefüggéseket, és lehetővé tegyék az előrejelzést olyan új adatokra, amelyeket a modell korábban nem látott.
+
+Ebben a leckében többet fogsz megtudni kétféle regresszióról: _egyszerű lineáris regresszióról_ és _polinomiális regresszióról_, valamint az ezek mögött álló matematikáról. Ezek a modellek lehetővé teszik számunkra, hogy különböző bemeneti adatok alapján előre jelezzük a tökárakat.
+
+[](https://youtu.be/CRxFT8oTDMg "Gépi tanulás kezdőknek - A lineáris regresszió megértése")
+
+> 🎥 Kattints a fenti képre egy rövid videós összefoglalóért a lineáris regresszióról.
+
+> Ebben a tananyagban minimális matematikai ismereteket feltételezünk, és igyekszünk hozzáférhetővé tenni a különböző területekről érkező diákok számára. Figyelj a jegyzetekre, 🧮 matematikai hívásokra, diagramokra és más tanulási eszközökre, amelyek segítik a megértést.
+
+### Előfeltétel
+
+Mostanra már ismerned kell a tökadatok szerkezetét, amelyeket vizsgálunk. Ezek az adatok előre betöltve és megtisztítva találhatók meg ennek a leckének a _notebook.ipynb_ fájljában. A fájlban a tökárak bushelre vetítve jelennek meg egy új adatkeretben. Győződj meg róla, hogy ezeket a notebookokat futtatni tudod a Visual Studio Code kerneljeiben.
+
+### Felkészülés
+
+Emlékeztetőül: ezeket az adatokat azért töltöd be, hogy kérdéseket tegyél fel velük kapcsolatban.
+
+- Mikor érdemes tököt vásárolni?
+- Milyen árat várhatok egy doboz miniatűr tök esetében?
+- Érdemes fél bushel kosárban vagy 1 1/9 bushel dobozban vásárolni őket?
+Folytassuk az adatok vizsgálatát.
+
+Az előző leckében létrehoztál egy Pandas adatkeretet, és feltöltötted az eredeti adatkészlet egy részével, standardizálva az árakat bushelre vetítve. Ezzel azonban csak körülbelül 400 adatpontot tudtál összegyűjteni, és csak az őszi hónapokra vonatkozóan.
+
+Nézd meg az adatokat, amelyeket előre betöltöttünk ennek a leckének a notebookjában. Az adatok előre betöltve vannak, és egy kezdeti szórásdiagramot is készítettünk, amely hónap adatokat mutat. Talán egy kicsit részletesebb képet kaphatunk az adatok természetéről, ha tovább tisztítjuk őket.
+
+## Egy lineáris regressziós vonal
+
+Ahogy az 1. leckében megtanultad, a lineáris regresszió célja, hogy egy vonalat rajzoljunk, amely:
+
+- **Megmutatja a változók közötti kapcsolatot**. Megmutatja a változók közötti összefüggést.
+- **Előrejelzéseket készít**. Pontos előrejelzéseket készít arról, hogy egy új adatpont hol helyezkedne el a vonalhoz képest.
+
+A **Legkisebb négyzetek regressziója** általában ezt a fajta vonalat rajzolja. A "legkisebb négyzetek" kifejezés azt jelenti, hogy a regressziós vonal körüli összes adatpontot négyzetre emeljük, majd összeadjuk. Ideális esetben ez az összeg a lehető legkisebb, mivel alacsony hibaszámot, vagyis `legkisebb négyzeteket` szeretnénk.
+
+Ezt azért tesszük, mert olyan vonalat szeretnénk modellezni, amelynek a legkisebb kumulatív távolsága van az összes adatponttól. Az értékeket négyzetre emeljük, mielőtt összeadnánk őket, mivel az irány helyett a nagyságuk érdekel minket.
+
+> **🧮 Mutasd a matematikát**
+>
+> Ez a vonal, amelyet _legjobb illeszkedés vonalának_ nevezünk, [egy egyenlettel](https://en.wikipedia.org/wiki/Simple_linear_regression) fejezhető ki:
+>
+> ```
+> Y = a + bX
+> ```
+>
+> `X` az 'magyarázó változó'. `Y` a 'függő változó'. A vonal meredeksége `b`, és `a` az y-metszet, amely arra utal, hogy `Y` értéke mennyi, amikor `X = 0`.
+>
+>
+>
+> Először számítsd ki a meredekséget `b`. Infografika: [Jen Looper](https://twitter.com/jenlooper)
+>
+> Más szavakkal, és utalva a tökadatok eredeti kérdésére: "jósoljuk meg a tök árát bushelre vetítve hónap szerint", `X` az árra, `Y` pedig az eladási hónapra utalna.
+>
+>
+>
+> Számítsd ki `Y` értékét. Ha körülbelül 4 dollárt fizetsz, akkor április van! Infografika: [Jen Looper](https://twitter.com/jenlooper)
+>
+> Az egyenlet kiszámításához szükséges matematika megmutatja a vonal meredekségét, amely az y-metszettől is függ, vagyis attól, hogy `Y` hol helyezkedik el, amikor `X = 0`.
+>
+> Megfigyelheted az értékek kiszámításának módszerét a [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) weboldalon. Látogasd meg a [Legkisebb négyzetek kalkulátort](https://www.mathsisfun.com/data/least-squares-calculator.html), hogy láthasd, hogyan befolyásolják a számok értékei a vonalat.
+
+## Korreláció
+
+Egy másik fontos fogalom a **Korrelációs együttható** az adott X és Y változók között. Egy szórásdiagram segítségével gyorsan vizualizálhatod ezt az együtthatót. Ha az adatpontok szépen egy vonalban helyezkednek el, akkor magas korrelációról beszélünk, de ha az adatpontok szétszórtan helyezkednek el X és Y között, akkor alacsony korrelációról van szó.
+
+Egy jó lineáris regressziós modell olyan, amelynek magas (1-hez közelebb álló, mint 0-hoz) Korrelációs együtthatója van a Legkisebb négyzetek regressziós módszerével és egy regressziós vonallal.
+
+✅ Futtasd a leckéhez tartozó notebookot, és nézd meg a Hónap és Ár szórásdiagramot. Az adatok, amelyek a Hónap és Ár közötti kapcsolatot mutatják a tökeladások esetében, vizuális értelmezésed szerint magas vagy alacsony korrelációval rendelkeznek? Változik ez, ha finomabb mértéket használsz a `Hónap` helyett, például *az év napját* (azaz az év eleje óta eltelt napok száma)?
+
+Az alábbi kódban feltételezzük, hogy megtisztítottuk az adatokat, és egy `new_pumpkins` nevű adatkeretet kaptunk, amely hasonló az alábbihoz:
+
+ID | Hónap | ÉvNapja | Fajta | Város | Csomagolás | Alacsony ár | Magas ár | Ár
+---|-------|---------|-------|-------|------------|-------------|----------|-----
+70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonok | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonok | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonok | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonok | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonok | 15.0 | 15.0 | 13.636364
+
+> Az adatok tisztításához szükséges kód megtalálható a [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) fájlban. Ugyanazokat a tisztítási lépéseket hajtottuk végre, mint az előző leckében, és kiszámítottuk az `ÉvNapja` oszlopot az alábbi kifejezés segítségével:
+
+```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, meg tudjuk-e jósolni, melyik tökcsomagolás kínálja a legjobb árakat. Valaki, aki tököt vásárol egy ünnepi tökfolt számára, szeretné optimalizálni a tökcsomagok 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")
+
+> 🎥 Kattints a fenti képre egy rövid videós összefoglalóért a korrelációról.
+
+Az előző leckéből valószínűleg láttad, hogy az átlagár különböző hónapokra így néz ki:
+
+
+
+Ez arra utal, hogy lehet némi korreláció, és megpróbálhatunk egy lineáris regressziós modellt tanítani, hogy megjósoljuk a `Hónap` és `Ár`, vagy az `ÉvNapja` és `Ár` közötti kapcsolatot. Íme egy szórásdiagram, amely az utóbbi kapcsolatot mutatja:
+
+
+
+Nézzük meg, van-e korreláció a `corr` függvény segítségével:
+
+```python
+print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
+print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
+```
+
+Úgy tűnik, hogy a korreláció elég kicsi, -0.15 a `Hónap` és -0.17 az `ÉvNapja` esetében, de lehet, hogy van egy másik fontos kapcsolat. Úgy tűnik, hogy az árak különböző csoportjai a tökfajtákhoz kapcsolódnak. Ennek a hipotézisnek a megerősítéséhez ábrázoljuk minden tökkategóriát különböző színnel. Az `ax` paraméter átadásával a `scatter` ábrázolási függvénynek az összes pontot ugyanazon a grafikonon ábrázolhatjuk:
+
+```python
+ax=None
+colors = ['red','blue','green','yellow']
+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 az árakra, mint az eladási dátum. Ezt egy oszlopdiagramon is láthatjuk:
+
+```python
+new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
+```
+
+
+
+Most koncentráljunk egyetlen tökfajtára, a '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ámítjuk az `Ár` és az `ÉvNapja` közötti korrelációt a `corr` függvény segítségével, körülbelül `-0.27` értéket kapunk - ami azt jelenti, hogy érdemes egy prediktív modellt tanítani.
+
+> Mielőtt lineáris regressziós modellt tanítanánk, fontos megbizonyosodni arról, hogy az adataink tiszták. A lineáris regresszió nem működik jól hiányzó értékekkel, ezért érdemes megszabadulni az üres celláktól:
+
+```python
+pie_pumpkins.dropna(inplace=True)
+pie_pumpkins.info()
+```
+
+Egy másik megközelítés az lenne, hogy az üres értékeket az adott oszlop átlagértékeivel 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 segítségével")
+
+> 🎥 Kattints a fenti képre egy rövid videós összefoglalóért a lineáris és polinomiális regresszióról.
+
+A lineáris regressziós modellünk tanításához a **Scikit-learn** könyvtárat fogjuk használni.
+
+```python
+from sklearn.linear_model import LinearRegression
+from sklearn.metrics import mean_squared_error
+from sklearn.model_selection import train_test_split
+```
+
+Először szétválasztjuk a bemeneti értékeket (jellemzők) és a várt kimenetet (címke) 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 adatokat `reshape`-el kellett átalakítanunk, hogy a Lineáris Regresszió csomag helyesen értelmezze. A Lineáris Regresszió 2D-tömböt vár bemenetként, ahol a tömb minden sora a bemeneti jellemzők vektorának felel meg. Ebben az esetben, mivel csak egy bemenetünk van, egy N×1 alakú tömbre van szükségünk, ahol N az adatkészlet mérete.
+
+Ezután az adatokat szét kell osztanunk tanító és teszt adatkészletekre, hogy a modellünket validálni tudjuk a tanítás után:
+
+```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 tényleges Lineáris Regressziós modell tanítása mindössze két kódsort igényel. Meghatározzuk a `LinearRegression` objektumot, és az adatainkra illesztjük a `fit` metódus segítségével:
+
+```python
+lin_reg = LinearRegression()
+lin_reg.fit(X_train,y_train)
+```
+
+A `LinearRegression` objektum a `fit`-elés után tartalmazza a regresszió összes együtthatóját, amelyeket a `.coef_` tulajdonságon keresztül érhetünk el. Ebben az esetben csak egy együttható van, amelynek értéke
+Hibánk körülbelül 2 pontnál van, ami ~17%. Nem túl jó. Egy másik mutató a modell minőségére a **determinizációs együttható**, amelyet így lehet kiszámítani:
+
+```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 úgy működik, mint a *legrosszabb lineáris előrejelző*, 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. Esetünkben az együttható körülbelül 0.06, ami elég alacsony.
+
+A tesztadatokat a regressziós vonallal együtt is ábrázolhatjuk, hogy jobban lássuk, hogyan működik a regresszió a mi esetünkben:
+
+```python
+plt.scatter(X_test,y_test)
+plt.plot(X_test,pred)
+```
+
+
+
+## Polinomiális regresszió
+
+A lineáris regresszió egy másik típusa a polinomiális regresszió. Bár néha van lineáris kapcsolat a változók között – például minél nagyobb a tök térfogata, annál magasabb az ára –, néha ezek a kapcsolatok nem ábrázolhatók síkként vagy egyenes vonalként.
+
+✅ Itt van [néhány példa](https://online.stat.psu.edu/stat501/lesson/9/9.8) olyan adatokra, amelyekhez polinomiális regressziót lehet használni.
+
+Nézd meg újra a dátum és az ár közötti kapcsolatot. Úgy tűnik, hogy ezt a szórásdiagramot feltétlenül egy egyenes vonallal kellene elemezni? Nem ingadozhatnak az árak? Ebben az esetben megpróbálhatod a polinomiális regressziót.
+
+✅ 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örbe vonalat hoz létre, amely jobban illeszkedik a nemlineáris adatokhoz. Esetünkben, ha egy négyzetes `DayOfYear` változót is hozzáadunk a bemeneti adatokhoz, akkor egy parabola görbével tudjuk illeszteni az adatainkat, amelynek minimuma az év egy bizonyos pontján lesz.
+
+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 az adatfeldolgozás különböző lépéseinek összekapcsolását. A **pipeline** egy **becslők** láncolata. Esetünkben egy olyan pipeline-t hozunk létre, amely először polinomiális jellemzőket ad a modellhez, majd elvégzi a regressziót:
+
+```python
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.pipeline import make_pipeline
+
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+
+pipeline.fit(X_train,y_train)
+```
+
+A `PolynomialFeatures(2)` használata azt jelenti, hogy a bemeneti adatokból minden másodfokú polinomot beillesztünk. Esetünkben ez csak a `DayOfYear`2-t jelenti, de ha két bemeneti változónk van, X és Y, akkor ez hozzáadja X2-t, XY-t és Y2-t. Magasabb fokú polinomokat is használhatunk, ha szeretnénk.
+
+A pipeline-t ugyanúgy használhatjuk, mint az eredeti `LinearRegression` objektumot, azaz `fit`-elhetjük a pipeline-t, majd a `predict` segítségével megkaphatjuk az előrejelzési eredményeket. Íme a grafikon, amely a tesztadatokat és az approximációs görbét mutatja:
+
+
+
+A polinomiális regresszió használatával kissé alacsonyabb MSE-t és magasabb determinizációs együtthatót érhetünk el, de nem jelentősen. Figyelembe kell vennünk más jellemzőket is!
+
+> Láthatod, hogy a tökök legalacsonyabb árai valahol Halloween környékén figyelhetők meg. Hogyan magyaráznád ezt?
+
+🎃 Gratulálok, most létrehoztál egy modellt, amely segíthet a pite tökök árának előrejelzésében. Valószínűleg ugyanezt az eljárást megismételheted az összes tökfajtára, de ez elég fárasztó lenne. Most tanuljuk meg, hogyan vegyük figyelembe a tökfajtákat a modellünkben!
+
+## Kategorikus jellemzők
+
+Az ideális világban szeretnénk képesek lenni előre jelezni az árakat különböző tökfajtákra ugyanazzal a modellel. Azonban a `Variety` oszlop kissé eltér az olyan oszlopoktól, mint a `Month`, mert nem numerikus értékeket tartalmaz. Az ilyen oszlopokat **kategorikus** oszlopoknak nevezzük.
+
+[](https://youtu.be/DYGliioIAE0 "ML kezdőknek - Kategorikus jellemzők előrejelzése lineáris regresszióval")
+
+> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a kategorikus jellemzők használatáról.
+
+Itt láthatod, hogyan függ az átlagár a fajtától:
+
+
+
+Ahhoz, hogy figyelembe vegyük a fajtát, először numerikus formára kell átalakítanunk, vagyis **kódolnunk** kell. Többféle módon tehetjük ezt meg:
+
+* Az egyszerű **numerikus kódolás** egy táblázatot készít a különböző fajtákról, majd a fajta nevét egy indexszel helyettesíti a táblázatban. Ez nem a legjobb ötlet a lineáris regresszióhoz, mert a lineáris regresszió az index tényleges numerikus értékét veszi figyelembe, és hozzáadja az eredményhez, megszorozva egy együtthatóval. Esetünkben az indexszám és az ár közötti kapcsolat egyértelműen nem lineáris, még akkor sem, ha biztosítjuk, hogy az indexek valamilyen specifikus sorrendben legyenek.
+* A **one-hot kódolás** a `Variety` oszlopot 4 különböző oszlopra cseréli, egyet minden fajtához. Minden oszlop `1`-et tartalmaz, ha az adott sor egy adott fajtához tartozik, és `0`-t, ha nem. Ez azt jelenti, hogy a lineáris regresszióban négy együttható lesz, egy-egy minden tökfajtához, amely felelős az adott fajta "kezdő árának" (vagy inkább "további árának").
+
+Az alábbi kód megmutatja, hogyan kódolhatjuk one-hot módszerrel a fajtát:
+
+```python
+pd.get_dummies(new_pumpkins['Variety'])
+```
+
+ ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
+----|-----------|-----------|--------------------------|----------
+70 | 0 | 0 | 0 | 1
+71 | 0 | 0 | 0 | 1
+... | ... | ... | ... | ...
+1738 | 0 | 1 | 0 | 0
+1739 | 0 | 1 | 0 | 0
+1740 | 0 | 1 | 0 | 0
+1741 | 0 | 1 | 0 | 0
+1742 | 0 | 1 | 0 | 0
+
+Ahhoz, hogy lineáris regressziót tanítsunk one-hot kódolt fajta bemeneti adatokkal, csak helyesen kell inicializálnunk az `X` és `y` adatokat:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety'])
+y = new_pumpkins['Price']
+```
+
+A többi kód ugyanaz, mint amit korábban használtunk a lineáris regresszió tanításához. Ha kipróbálod, látni fogod, hogy az átlagos négyzetes hiba körülbelül ugyanaz, de sokkal magasabb determinizációs együtthatót kapunk (~77%). Ahhoz, hogy még pontosabb előrejelzéseket kapjunk, több kategorikus jellemzőt is figyelembe vehetünk, valamint numerikus jellemzőket, mint például a `Month` vagy a `DayOfYear`. Egy nagy jellemzőtömb létrehozásához használhatjuk a `join`-t:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+```
+
+Itt figyelembe vesszük a `City` és a `Package` típusát is, ami 2.84-es MSE-t (10%) és 0.94-es determinizációs együtthatót eredményez!
+
+## Mindent összefoglalva
+
+A legjobb modell létrehozásához használhatjuk a fenti példából származó kombinált (one-hot kódolt kategorikus + numerikus) adatokat polinomiális regresszióval együtt. Íme a teljes kód a kényelmed érdekében:
+
+```python
+# set up training data
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+
+# make train-test split
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+# setup and train the pipeline
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+pipeline.fit(X_train,y_train)
+
+# predict results for test data
+pred = pipeline.predict(X_test)
+
+# calculate MSE and determination
+mse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+Ez közel 97%-os determinizációs együtthatót és MSE=2.23 (~8%-os előrejelzési hiba) eredményez.
+
+| Modell | MSE | Determinizáció |
+|-------|-----|---------------|
+| `DayOfYear` Lineáris | 2.77 (17.2%) | 0.07 |
+| `DayOfYear` Polinomiális | 2.73 (17.0%) | 0.08 |
+| `Variety` Lineáris | 5.24 (19.7%) | 0.77 |
+| Minden jellemző Lineáris | 2.84 (10.5%) | 0.94 |
+| Minden jellemző Polinomiális | 2.23 (8.25%) | 0.97 |
+
+🏆 Szép munka! Egyetlen leckében négy regressziós modellt hoztál létre, és a modell minőségét 97%-ra javítottad. A regresszióról szóló utolsó részben a logisztikus regresszióval fogsz megismerkedni, amely kategóriák meghatározására szolgál.
+
+---
+## 🚀Kihívás
+
+Tesztelj több különböző változót ebben a notebookban, hogy lásd, hogyan függ össze a korreláció a modell pontosságával.
+
+## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Ebben a leckében a lineáris regresszióról tanultunk. Vannak más fontos regressziós technikák is. Olvass a Stepwise, Ridge, Lasso és Elasticnet technikákról. Egy jó kurzus, amelyet érdemes tanulmányozni, a [Stanford Statistical Learning kurzus](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
+
+## Feladat
+
+[Építs egy modellt](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
diff --git a/translations/hu/2-Regression/3-Linear/assignment.md b/translations/hu/2-Regression/3-Linear/assignment.md
new file mode 100644
index 00000000..9a098c85
--- /dev/null
+++ b/translations/hu/2-Regression/3-Linear/assignment.md
@@ -0,0 +1,25 @@
+
+# Hozz létre egy regressziós modellt
+
+## Útmutató
+
+Ebben a leckében bemutattuk, hogyan lehet modellt építeni Lineáris és Polinomiális regresszió segítségével. Ezen ismeretek alapján keress egy adatállományt, vagy használd a Scikit-learn beépített készleteinek egyikét, hogy létrehozz egy új modellt. Magyarázd el a jegyzetfüzetedben, miért választottad az adott technikát, és mutasd be a modelled pontosságát. Ha nem pontos, magyarázd el, miért.
+
+## Értékelési szempontok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre szorul |
+| --------- | ----------------------------------------------------------- | -------------------------- | ------------------------------- |
+| | teljes jegyzetfüzetet mutat be jól dokumentált megoldással | a megoldás hiányos | a megoldás hibás vagy problémás |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/2-Regression/3-Linear/solution/Julia/README.md b/translations/hu/2-Regression/3-Linear/solution/Julia/README.md
new file mode 100644
index 00000000..f40184d5
--- /dev/null
+++ b/translations/hu/2-Regression/3-Linear/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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 az ebből a fordításbó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/4-Logistic/README.md b/translations/hu/2-Regression/4-Logistic/README.md
new file mode 100644
index 00000000..428bf4d3
--- /dev/null
+++ b/translations/hu/2-Regression/4-Logistic/README.md
@@ -0,0 +1,405 @@
+
+# Logisztikus regresszió kategóriák előrejelzésére
+
+
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Ez a lecke elérhető R-ben is!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html)
+
+## Bevezetés
+
+Ebben az utolsó leckében a regresszióról, amely az egyik alapvető _klasszikus_ gépi tanulási technika, megvizsgáljuk a logisztikus regressziót. Ezt a technikát arra használhatjuk, hogy mintázatokat fedezzünk fel bináris kategóriák előrejelzésére. Ez a cukorka csokoládé vagy sem? Ez a betegség fertőző vagy sem? Ez az ügyfél választja-e ezt a terméket vagy sem?
+
+Ebben a leckében megtanulod:
+
+- Egy új könyvtár használatát az adatok vizualizálásához
+- Logisztikus regresszió technikáit
+
+✅ Mélyítsd el a logisztikus regresszióval kapcsolatos tudásodat ebben a [Learn modulban](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott)
+
+## Előfeltétel
+
+A tökadatokkal való munka során már elég jól megismerkedtünk ahhoz, hogy felismerjük, van egy bináris kategória, amellyel dolgozhatunk: `Color`.
+
+Építsünk egy logisztikus regressziós modellt, hogy előre jelezzük, adott változók alapján _milyen színű lesz egy adott tök_ (narancs 🎃 vagy fehér 👻).
+
+> Miért beszélünk bináris osztályozásról egy regresszióval kapcsolatos leckében? Csak nyelvi kényelmi okokból, mivel a logisztikus regresszió [valójában egy osztályozási módszer](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), bár lineáris alapú. Az adatok osztályozásának más módjairól a következő leckecsoportban tanulhatsz.
+
+## Fogalmazzuk meg a kérdést
+
+A mi céljaink érdekében ezt binárisként fogalmazzuk meg: 'Fehér' vagy 'Nem fehér'. Az adatainkban van egy 'csíkos' kategória is, de kevés előfordulása van, így nem fogjuk használni. Ez amúgy is eltűnik, amikor eltávolítjuk az adatállományból a null értékeket.
+
+> 🎃 Érdekesség: néha a fehér tököket 'szellem' tököknek hívjuk. Nem túl könnyű őket faragni, ezért nem olyan népszerűek, mint a narancssárgák, de nagyon jól néznek ki! Így a kérdésünket úgy is megfogalmazhatnánk: 'Szellem' vagy 'Nem szellem'. 👻
+
+## A logisztikus regresszióról
+
+A logisztikus regresszió néhány fontos szempontból különbözik a korábban tanult lineáris regressziótól.
+
+[](https://youtu.be/KpeCT6nEpBY "ML kezdőknek - A logisztikus regresszió megértése gépi tanulási osztályozáshoz")
+
+> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a logisztikus regresszióról.
+
+### Bináris osztályozás
+
+A logisztikus regresszió nem kínálja ugyanazokat a funkciókat, mint a lineáris regresszió. Az előbbi bináris kategóriáról ("fehér vagy nem fehér") ad előrejelzést, míg az utóbbi folyamatos értékeket képes előre jelezni, például a tök származási helye és betakarítási ideje alapján, _mennyivel fog emelkedni az ára_.
+
+
+> Infografika: [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+### Egyéb osztályozások
+
+A logisztikus regressziónak vannak más típusai is, például multinomiális és ordinális:
+
+- **Multinomiális**, amely több kategóriát foglal magában - "Narancs, Fehér és Csíkos".
+- **Ordinális**, amely rendezett kategóriákat foglal magában, hasznos, ha logikusan szeretnénk rendezni az eredményeket, például a tököket, amelyek egy véges számú méret szerint vannak rendezve (mini, kicsi, közepes, nagy, XL, XXL).
+
+
+
+### A változóknak NEM kell korrelálniuk
+
+Emlékszel, hogy a lineáris regresszió jobban működött, ha a változók korreláltak? A logisztikus regresszió ennek az ellenkezője - a változóknak nem kell egymáshoz igazodniuk. Ez jól működik az olyan adatokkal, amelyeknek viszonylag gyenge korrelációi vannak.
+
+### Sok tiszta adatra van szükség
+
+A logisztikus regresszió pontosabb eredményeket ad, ha több adatot használunk; a mi kis adatállományunk nem optimális erre a feladatra, ezért ezt tartsd szem előtt.
+
+[](https://youtu.be/B2X4H9vcXTs "ML kezdőknek - Adatok elemzése és előkészítése logisztikus regresszióhoz")
+
+✅ Gondold át, milyen típusú adatok alkalmasak jól a logisztikus regresszióhoz
+
+## Gyakorlat - adatok tisztítása
+
+Először tisztítsd meg az adatokat egy kicsit, távolítsd el a null értékeket, és válassz ki csak néhány oszlopot:
+
+1. Add hozzá a következő kódot:
+
+ ```python
+
+ columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
+ pumpkins = full_pumpkins.loc[:, columns_to_select]
+
+ pumpkins.dropna(inplace=True)
+ ```
+
+ Mindig megtekintheted az új adatkeretedet:
+
+ ```python
+ pumpkins.info
+ ```
+
+### Vizualizáció - kategóriális diagram
+
+Mostanra betöltötted a [kezdő notebookot](../../../../2-Regression/4-Logistic/notebook.ipynb) a tökadatokkal, és megtisztítottad úgy, hogy megmaradjon egy adatállomány néhány változóval, beleértve a `Color`-t. Vizualizáljuk az adatkeretet a notebookban egy másik könyvtár segítségével: [Seaborn](https://seaborn.pydata.org/index.html), amely a korábban használt Matplotlibre épül.
+
+A Seaborn néhány remek módot kínál az adatok vizualizálására. Például összehasonlíthatod az adatok eloszlását a `Variety` és `Color` kategóriák szerint egy kategóriális diagramon.
+
+1. Hozz létre egy ilyen diagramot a `catplot` függvény használatával, a tökadatainkat (`pumpkins`) használva, és színkódolást megadva az egyes tökkategóriákhoz (narancs vagy fehér):
+
+ ```python
+ import seaborn as sns
+
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+
+ sns.catplot(
+ data=pumpkins, y="Variety", hue="Color", kind="count",
+ palette=palette,
+ )
+ ```
+
+ 
+
+ Az adatok megfigyelésével láthatod, hogyan kapcsolódik a `Color` adat a `Variety`-hez.
+
+ ✅ Ezen kategóriális diagram alapján milyen érdekes vizsgálatokat tudsz elképzelni?
+
+### Adatok előfeldolgozása: jellemzők és címkék kódolása
+
+A tökadataink minden oszlopában szöveges értékek találhatók. A kategóriális adatokkal való munka intuitív az emberek számára, de nem a gépek számára. A gépi tanulási algoritmusok jól működnek számokkal. Ezért a kódolás nagyon fontos lépés az adatok előfeldolgozási fázisában, mivel lehetővé teszi, hogy a kategóriális adatokat numerikus adatokká alakítsuk, anélkül, hogy bármilyen információt elveszítenénk. A jó kódolás jó modell építéséhez vezet.
+
+A jellemzők kódolásához két fő típusú kódoló létezik:
+
+1. Ordinális kódoló: jól illeszkedik az ordinális változókhoz, amelyek kategóriális változók, ahol az adatok logikai sorrendet követnek, mint például az `Item Size` oszlop az adatállományunkban. Olyan leképezést hoz létre, amelyben minden kategóriát egy szám képvisel, amely az oszlopban lévő kategória sorrendje.
+
+ ```python
+ from sklearn.preprocessing import OrdinalEncoder
+
+ item_size_categories = [['sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo']]
+ ordinal_features = ['Item Size']
+ ordinal_encoder = OrdinalEncoder(categories=item_size_categories)
+ ```
+
+2. Kategóriális kódoló: jól illeszkedik a nominális változókhoz, amelyek kategóriális változók, ahol az adatok nem követnek logikai sorrendet, mint például az adatállományunkban az `Item Size`-től eltérő összes jellemző. Ez egy one-hot kódolás, ami azt jelenti, hogy minden kategóriát egy bináris oszlop képvisel: a kódolt változó értéke 1, ha a tök az adott `Variety`-hez tartozik, és 0, ha nem.
+
+ ```python
+ from sklearn.preprocessing import OneHotEncoder
+
+ categorical_features = ['City Name', 'Package', 'Variety', 'Origin']
+ categorical_encoder = OneHotEncoder(sparse_output=False)
+ ```
+
+Ezután a `ColumnTransformer`-t használjuk, hogy több kódolót egyetlen lépésben kombináljunk, és alkalmazzuk őket a megfelelő oszlopokra.
+
+```python
+ from sklearn.compose import ColumnTransformer
+
+ ct = ColumnTransformer(transformers=[
+ ('ord', ordinal_encoder, ordinal_features),
+ ('cat', categorical_encoder, categorical_features)
+ ])
+
+ ct.set_output(transform='pandas')
+ encoded_features = ct.fit_transform(pumpkins)
+```
+
+Másrészt a címke kódolásához a scikit-learn `LabelEncoder` osztályát használjuk, amely egy segédosztály, amely segít normalizálni a címkéket úgy, hogy csak 0 és n_classes-1 közötti értékeket tartalmazzanak (itt 0 és 1).
+
+```python
+ from sklearn.preprocessing import LabelEncoder
+
+ label_encoder = LabelEncoder()
+ encoded_label = label_encoder.fit_transform(pumpkins['Color'])
+```
+
+Miután kódoltuk a jellemzőket és a címkét, egy új adatkeretbe (`encoded_pumpkins`) egyesíthetjük őket.
+
+```python
+ encoded_pumpkins = encoded_features.assign(Color=encoded_label)
+```
+
+✅ Milyen előnyei vannak az ordinális kódoló használatának az `Item Size` oszlop esetében?
+
+### Változók közötti kapcsolatok elemzése
+
+Most, hogy előfeldolgoztuk az adatokat, elemezhetjük a jellemzők és a címke közötti kapcsolatokat, hogy megértsük, mennyire lesz képes a modell előre jelezni a címkét a jellemzők alapján. Az ilyen típusú elemzés legjobb módja az adatok ábrázolása. Ismét a Seaborn `catplot` függvényét fogjuk használni, hogy vizualizáljuk az `Item Size`, `Variety` és `Color` közötti kapcsolatokat egy kategóriális diagramon. Az adatok jobb ábrázolása érdekében az `Item Size` kódolt oszlopát és a nem kódolt `Variety` oszlopot fogjuk használni.
+
+```python
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+ pumpkins['Item Size'] = encoded_pumpkins['ord__Item Size']
+
+ g = sns.catplot(
+ data=pumpkins,
+ x="Item Size", y="Color", row='Variety',
+ kind="box", orient="h",
+ sharex=False, margin_titles=True,
+ height=1.8, aspect=4, palette=palette,
+ )
+ g.set(xlabel="Item Size", ylabel="").set(xlim=(0,6))
+ g.set_titles(row_template="{row_name}")
+```
+
+
+
+### Swarm diagram használata
+
+Mivel a `Color` egy bináris kategória (Fehér vagy Nem), 'egy [speciális megközelítést](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) igényel a vizualizációhoz'. Vannak más módok is, hogy vizualizáljuk ennek a kategóriának a kapcsolatát más változókkal.
+
+A változókat egymás mellett ábrázolhatod Seaborn diagramokkal.
+
+1. Próbálj ki egy 'swarm' diagramot az értékek eloszlásának megjelenítésére:
+
+ ```python
+ palette = {
+ 0: 'orange',
+ 1: 'wheat'
+ }
+ sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette)
+ ```
+
+ 
+
+**Figyelem**: a fenti kód figyelmeztetést generálhat, mivel a Seaborn nem tudja megfelelően ábrázolni ilyen mennyiségű adatpontot egy swarm diagramon. Egy lehetséges megoldás a marker méretének csökkentése a 'size' paraméter használatával. Azonban légy tudatában annak, hogy ez befolyásolja a diagram olvashatóságát.
+
+> **🧮 Mutasd a matematikát**
+>
+> A logisztikus regresszió a 'maximum likelihood' koncepcióján alapul, [szigmoid függvények](https://wikipedia.org/wiki/Sigmoid_function) használatával. Egy 'szigmoid függvény' egy grafikonon 'S' alakú görbének tűnik. Egy értéket vesz, és 0 és 1 közé térképezi. A görbéjét 'logisztikus görbének' is nevezik. A képlete így néz ki:
+>
+> 
+>
+> ahol a szigmoid középpontja az x 0 pontján található, L a görbe maximális értéke, és k a görbe meredeksége. Ha a függvény eredménye nagyobb, mint 0.5, az adott címkét a bináris választás '1' osztályába sorolják. Ha nem, akkor '0'-ként osztályozzák.
+
+## Építsd fel a modelledet
+
+Egy modell építése ezeknek a bináris osztályozásoknak a megtalálására meglepően egyszerű a Scikit-learn segítségével.
+
+[](https://youtu.be/MmZS2otPrQ8 "ML kezdőknek - Logisztikus regresszió az adatok osztályozásához")
+
+> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a lineáris regressziós modell építéséről
+
+1. Válaszd ki azokat a változókat, amelyeket az osztályozási modellben használni szeretnél, és oszd fel a tanulási és tesztkészleteket a `train_test_split()` hívásával:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])]
+ y = encoded_pumpkins['Color']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+ ```
+
+2. Most már betaníthatod a modelledet a `fit()` hívásával a tanulási adatokkal, és kiírhatod az eredményét:
+
+ ```python
+ from sklearn.metrics import f1_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('F1-score: ', f1_score(y_test, predictions))
+ ```
+
+ Nézd meg a modelled eredménytábláját. Nem rossz, tekintve, hogy csak körülbelül 1000 sor adatod van:
+
+ ```output
+ precision recall f1-score support
+
+ 0 0.94 0.98 0.96 166
+ 1 0.85 0.67 0.75 33
+
+ accuracy 0.92 199
+ macro avg 0.89 0.82 0.85 199
+ weighted avg 0.92 0.92 0.92 199
+
+ Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
+ 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0
+ 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+ 0 0 0 1 0 0 0 0 0 0 0 0 1 1]
+ F1-score: 0.7457627118644068
+ ```
+
+## Jobb megértés egy zavaró mátrix segítségével
+
+Bár az eredménytáblát [kifejezésekkel](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) is kiírhatod az előző elemek nyomtatásával, könnyebben megértheted a modelledet egy [zavaró mátrix](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) használatával, amely segít megérteni, hogyan teljesít a modell.
+
+> 🎓 A '[zavaró mátrix](https://wikipedia.org/wiki/Confusion_matrix)' (vagy 'hibamátrix') egy táblázat, amely kifejezi a modelled valódi vs. hamis pozitív és negatív értékeit, így mérve az előrejelzések pontosságát.
+
+1. A zavaró mátrix használatához hívd meg a `confusion_matrix()` függvényt:
+
+ ```python
+ from sklearn.metrics import confusion_matrix
+ confusion_matrix(y_test, predictions)
+ ```
+
+ Nézd meg a modelled zavaró mátrixát:
+
+ ```output
+ array([[162, 4],
+ [ 11, 22]])
+ ```
+
+A Scikit-learnben a zavaró mátrix sorai (0. tengely) a valós címkék, míg az oszlopai (1. tengely) az előrejelzett címkék.
+
+| | 0 | 1 |
+| :---: | :---: | :---: |
+| 0 | TN | FP |
+| 1 | FN | TP |
+
+Mi történik itt? Tegyük fel, hogy a modelledet arra kérik, hogy osztályozza a tököket két bináris kategória között: 'fehér' és 'nem fehér'.
+
+- Ha a modelled nem fehérként jósolja meg a tököt, és az valójában a 'nem fehér' kategóriába tartozik, akkor ezt valódi negatívnak nevezzük, amelyet a bal felső szám mut
+Hogyan kapcsolódik az összezavarodási mátrix a precizitáshoz és a visszahíváshoz? Ne feledd, a fentebb kinyomtatott osztályozási jelentés megmutatta a precizitást (0.85) és a visszahívást (0.67).
+
+Precizitás = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461
+
+Visszahívás = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666
+
+✅ K: Az összezavarodási mátrix alapján hogyan teljesített a modell? V: Nem rossz; van egy jó számú valódi negatív, de néhány hamis negatív is.
+
+Nézzük meg újra azokat a fogalmakat, amelyeket korábban láttunk, az összezavarodási mátrix TP/TN és FP/FN leképezésének segítségével:
+
+🎓 Precizitás: TP/(TP + FP) Azoknak a releváns példányoknak az aránya, amelyek a visszakeresett példányok között vannak (pl. mely címkék lettek jól címkézve).
+
+🎓 Visszahívás: TP/(TP + FN) Azoknak a releváns példányoknak az aránya, amelyek visszakeresésre kerültek, akár jól címkézve, akár nem.
+
+🎓 f1-pontszám: (2 * precizitás * visszahívás)/(precizitás + visszahívás) A precizitás és visszahívás súlyozott átlaga, ahol a legjobb érték 1, a legrosszabb pedig 0.
+
+🎓 Támogatás: Az egyes visszakeresett címkék előfordulásainak száma.
+
+🎓 Pontosság: (TP + TN)/(TP + TN + FP + FN) Azoknak a címkéknek a százaléka, amelyeket egy mintában pontosan előre jeleztek.
+
+🎓 Makro Átlag: Az egyes címkék súlyozatlan átlagos metrikáinak kiszámítása, figyelmen kívül hagyva a címkék egyensúlyhiányát.
+
+🎓 Súlyozott Átlag: Az egyes címkék átlagos metrikáinak kiszámítása, figyelembe véve a címkék egyensúlyhiányát, azokat a támogatásukkal (az egyes címkék valódi példányainak száma) súlyozva.
+
+✅ Gondolod, hogy melyik metrikát kell figyelned, ha csökkenteni szeretnéd a hamis negatívok számát?
+
+## Vizualizáljuk a modell ROC görbéjét
+
+[](https://youtu.be/GApO575jTA0 "ML kezdőknek - A logisztikus regresszió teljesítményének elemzése ROC görbékkel")
+
+> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a ROC görbékről
+
+Készítsünk még egy vizualizációt, hogy lássuk az úgynevezett 'ROC' görbét:
+
+```python
+from sklearn.metrics import roc_curve, roc_auc_score
+import matplotlib
+import matplotlib.pyplot as plt
+%matplotlib inline
+
+y_scores = model.predict_proba(X_test)
+fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1])
+
+fig = plt.figure(figsize=(6, 6))
+plt.plot([0, 1], [0, 1], 'k--')
+plt.plot(fpr, tpr)
+plt.xlabel('False Positive Rate')
+plt.ylabel('True Positive Rate')
+plt.title('ROC Curve')
+plt.show()
+```
+
+Használjuk a Matplotlibet a modell [Receiver Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) vagy ROC görbéjének ábrázolására. A ROC görbéket gyakran használják arra, hogy megtekintsék egy osztályozó kimenetét a valódi és hamis pozitívok szempontjából. "A ROC görbék jellemzően a valódi pozitív arányt ábrázolják az Y tengelyen, és a hamis pozitív arányt az X tengelyen." Ezért a görbe meredeksége és a középvonal és a görbe közötti tér számít: olyan görbét szeretnél, amely gyorsan felfelé és a vonal fölé halad. Ebben az esetben vannak kezdeti hamis pozitívok, majd a vonal megfelelően felfelé és fölé halad:
+
+
+
+Végül használjuk a Scikit-learn [`roc_auc_score` API-ját](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) az úgynevezett 'Görbe Alatti Terület' (AUC) tényleges kiszámításához:
+
+```python
+auc = roc_auc_score(y_test,y_scores[:,1])
+print(auc)
+```
+Az eredmény `0.9749908725812341`. Mivel az AUC 0 és 1 között mozog, magas pontszámot szeretnél, mivel egy modell, amely 100%-ban helyes előrejelzéseket ad, AUC értéke 1 lesz; ebben az esetben a modell _elég jó_.
+
+A jövőbeli osztályozási leckékben megtanulod, hogyan iterálj a modell pontszámainak javítása érdekében. De most gratulálok! Befejezted ezeket a regressziós leckéket!
+
+---
+## 🚀Kihívás
+
+Még sok mindent lehet kibontani a logisztikus regresszióval kapcsolatban! De a legjobb módja a tanulásnak az, ha kísérletezel. Keress egy adatállományt, amely alkalmas erre az elemzésre, és építs egy modellt vele. Mit tanulsz? Tipp: próbáld ki a [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) oldalt érdekes adatállományokért.
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Olvasd el [ennek a Stanford-i tanulmánynak](https://web.stanford.edu/~jurafsky/slp3/5.pdf) az első néhány oldalát a logisztikus regresszió gyakorlati alkalmazásairól. Gondolj olyan feladatokra, amelyek jobban illenek az egyik vagy másik típusú regressziós feladathoz, amelyeket eddig tanulmányoztunk. Mi működne a legjobban?
+
+## Feladat
+
+[Próbáld újra ezt a regressziót](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/2-Regression/4-Logistic/assignment.md b/translations/hu/2-Regression/4-Logistic/assignment.md
new file mode 100644
index 00000000..f069c110
--- /dev/null
+++ b/translations/hu/2-Regression/4-Logistic/assignment.md
@@ -0,0 +1,25 @@
+
+# Néhány regresszió újrapróbálása
+
+## Útmutató
+
+A leckében a tök adatainak egy részhalmazát használtad. Most térj vissza az eredeti adatokhoz, és próbáld meg az összeset, megtisztítva és standardizálva, felhasználni egy Logisztikus Regresszió modell felépítéséhez.
+
+## Értékelési szempontok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre szoruló |
+| --------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------- |
+| | Egy jegyzetfüzet van bemutatva jól magyarázott és jól teljesítő modellel | Egy jegyzetfüzet van bemutatva minimálisan teljesítő modellel | Egy jegyzetfüzet van bemutatva gyengén teljesítő modellel vagy nincs |
+
+---
+
+**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
diff --git a/translations/hu/2-Regression/4-Logistic/solution/Julia/README.md b/translations/hu/2-Regression/4-Logistic/solution/Julia/README.md
new file mode 100644
index 00000000..f4865002
--- /dev/null
+++ b/translations/hu/2-Regression/4-Logistic/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos 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
diff --git a/translations/hu/2-Regression/README.md b/translations/hu/2-Regression/README.md
new file mode 100644
index 00000000..7fb0dee9
--- /dev/null
+++ b/translations/hu/2-Regression/README.md
@@ -0,0 +1,54 @@
+
+# Regressziós modellek gépi tanuláshoz
+## Regionális téma: Regressziós modellek tökárakhoz Észak-Amerikában 🎃
+
+Észak-Amerikában a tököket gyakran ijesztő arcokká faragják Halloween alkalmából. Fedezzük fel ezeket a lenyűgöző zöldségeket!
+
+
+> Fotó: Beth Teutschmann az Unsplash oldalán
+
+## Amit megtanulsz
+
+[](https://youtu.be/5QnJtDad4iQ "Bevezető videó a regresszióhoz - Kattints a megtekintéshez!")
+> 🎥 Kattints a fenti képre egy rövid bevezető videóért ehhez a leckéhez
+
+Az ebben a részben található leckék a regresszió típusait tárgyalják a gépi tanulás kontextusában. A regressziós modellek segíthetnek meghatározni a _kapcsolatot_ a változók között. Ez a modell képes előre jelezni olyan értékeket, mint például hosszúság, hőmérséklet vagy életkor, így feltárva a változók közötti összefüggéseket az adatok elemzése során.
+
+Ebben a leckesorozatban megismerheted a lineáris és logisztikus regresszió közötti különbségeket, valamint azt, hogy mikor érdemes az egyiket a másik helyett használni.
+
+[](https://youtu.be/XA3OaoW86R8 "ML kezdőknek - Bevezetés a regressziós modellekbe gépi tanuláshoz")
+
+> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja a regressziós modelleket.
+
+Ebben a leckesorozatban felkészülsz a gépi tanulási feladatok megkezdésére, beleértve a Visual Studio Code konfigurálását notebookok kezelésére, amely a data scientist-ek által használt közös környezet. Megismered a Scikit-learn könyvtárat, amely a gépi tanuláshoz készült, és elkészíted az első modelljeidet, különös tekintettel a regressziós modellekre ebben a fejezetben.
+
+> Hasznos, kevés kódolást igénylő eszközök állnak rendelkezésre, amelyek segítenek a regressziós modellekkel való munka elsajátításában. Próbáld ki [Azure ML-t ehhez a feladathoz](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+### Leckék
+
+1. [Eszközök használata](1-Tools/README.md)
+2. [Adatok kezelése](2-Data/README.md)
+3. [Lineáris és polinomiális regresszió](3-Linear/README.md)
+4. [Logisztikus regresszió](4-Logistic/README.md)
+
+---
+### Köszönetnyilvánítás
+
+"ML regresszióval" szívvel ♥️ írta [Jen Looper](https://twitter.com/jenlooper)
+
+♥️ A kvíz közreműködői: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) és [Ornella Altunyan](https://twitter.com/ornelladotcom)
+
+A tök adatállományt [ez a Kaggle projekt](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) javasolta, és az adatok a [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) oldalról származnak, amelyet az Egyesült Államok Mezőgazdasági Minisztériuma terjeszt. Néhány pontot hozzáadtunk a szín alapján, hogy normalizáljuk az eloszlást. Ezek az adatok közkincsnek számítanak.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/3-Web-App/1-Web-App/README.md b/translations/hu/3-Web-App/1-Web-App/README.md
new file mode 100644
index 00000000..87734d51
--- /dev/null
+++ b/translations/hu/3-Web-App/1-Web-App/README.md
@@ -0,0 +1,359 @@
+
+# Építsünk egy webalkalmazást gépi tanulási modell használatához
+
+Ebben a leckében egy gépi tanulási modellt fogsz betanítani egy igazán különleges adathalmazon: _UFO-észlelések az elmúlt évszázadból_, amelyet a NUFORC adatbázisából származtatunk.
+
+A következőket fogod megtanulni:
+
+- Hogyan lehet egy betanított modellt "pickle"-elni
+- Hogyan lehet ezt a modellt egy Flask alkalmazásban használni
+
+Továbbra is notebookokat fogunk használni az adatok tisztítására és a modell betanítására, de egy lépéssel tovább mehetsz, ha felfedezed, hogyan lehet egy modellt "a vadonban" használni, azaz egy webalkalmazásban.
+
+Ehhez egy Flask alapú webalkalmazást kell építened.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Alkalmazás építése
+
+Számos módja van annak, hogy webalkalmazásokat építsünk gépi tanulási modellek használatához. A webes architektúra befolyásolhatja, hogyan kell a modellt betanítani. Képzeld el, hogy egy olyan vállalatnál dolgozol, ahol az adatkutatási csoport betanított egy modellt, amelyet neked kellene egy alkalmazásban használnod.
+
+### Szempontok
+
+Számos kérdést kell feltenned:
+
+- **Webalkalmazásról vagy mobilalkalmazásról van szó?** Ha mobilalkalmazást építesz, vagy az IoT kontextusában kell használnod a modellt, használhatod a [TensorFlow Lite](https://www.tensorflow.org/lite/) megoldást, és a modellt Android vagy iOS alkalmazásban használhatod.
+- **Hol fog a modell elhelyezkedni?** A felhőben vagy helyileg?
+- **Offline támogatás.** Az alkalmazásnak offline is működnie kell?
+- **Milyen technológiával lett a modell betanítva?** A választott technológia befolyásolhatja a szükséges eszközöket.
+ - **TensorFlow használata.** Ha például TensorFlow-val tanítasz modellt, az ökoszisztéma lehetőséget biztosít arra, hogy a modellt webalkalmazásban használhatóvá alakítsd a [TensorFlow.js](https://www.tensorflow.org/js/) segítségével.
+ - **PyTorch használata.** Ha például [PyTorch](https://pytorch.org/) könyvtárral építesz modellt, lehetőséged van azt [ONNX](https://onnx.ai/) (Open Neural Network Exchange) formátumba exportálni, amely JavaScript webalkalmazásokban használható az [Onnx Runtime](https://www.onnxruntime.ai/) segítségével. Ezt az opciót egy későbbi leckében fogjuk megvizsgálni egy Scikit-learn-nel betanított modell esetében.
+ - **Lobe.ai vagy Azure Custom Vision használata.** Ha egy ML SaaS (Software as a Service) rendszert, például a [Lobe.ai](https://lobe.ai/) vagy az [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) szolgáltatást használod modell betanítására, az ilyen típusú szoftverek lehetőséget biztosítanak a modell különböző platformokra történő exportálására, beleértve egy egyedi API létrehozását, amelyet a felhőben lehet lekérdezni az online alkalmazásod által.
+
+Lehetőséged van arra is, hogy egy teljes Flask webalkalmazást építs, amely képes lenne a modellt közvetlenül a böngészőben betanítani. Ez szintén megvalósítható a TensorFlow.js segítségével JavaScript környezetben.
+
+A mi esetünkben, mivel Python-alapú notebookokkal dolgozunk, nézzük meg, milyen lépéseket kell megtenned ahhoz, hogy egy betanított modellt exportálj egy Python-alapú webalkalmazás által olvasható formátumba.
+
+## Eszközök
+
+Ehhez a feladathoz két eszközre lesz szükséged: Flask és Pickle, amelyek mind Pythonon futnak.
+
+✅ Mi az a [Flask](https://palletsprojects.com/p/flask/)? A készítők "mikrokeretrendszerként" definiálják, a Flask biztosítja a webes keretrendszerek alapvető funkcióit Pythonban, valamint egy sablonmotor segítségével weboldalak építésére. Nézd meg [ezt a tanulási modult](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott), hogy gyakorold a Flask használatát.
+
+✅ Mi az a [Pickle](https://docs.python.org/3/library/pickle.html)? A Pickle 🥒 egy Python modul, amely egy Python objektumstruktúrát sorosít és visszafejt. Amikor egy modellt "pickle"-elsz, akkor annak struktúráját sorosítod vagy lapítod el, hogy a weben használható legyen. Vigyázz: a pickle önmagában nem biztonságos, ezért légy óvatos, ha egy fájl "un-pickle"-elésére kérnek. Egy pickle fájl kiterjesztése `.pkl`.
+
+## Gyakorlat - tisztítsd meg az adataidat
+
+Ebben a leckében 80 000 UFO-észlelés adatait fogod használni, amelyeket a [NUFORC](https://nuforc.org) (National UFO Reporting Center) gyűjtött össze. Ezek az adatok érdekes leírásokat tartalmaznak az UFO-észlelésekről, például:
+
+- **Hosszú példa leírás.** "Egy férfi egy fénysugárból lép elő, amely egy füves mezőre világít éjszaka, majd a Texas Instruments parkolójába fut."
+- **Rövid példa leírás.** "A fények üldöztek minket."
+
+A [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) táblázat oszlopokat tartalmaz az észlelés helyéről (`city`, `state`, `country`), az objektum `alakjáról`, valamint annak `szélességi` és `hosszúsági` koordinátáiról.
+
+A leckéhez tartozó üres [notebookban](../../../../3-Web-App/1-Web-App/notebook.ipynb):
+
+1. importáld a `pandas`, `matplotlib` és `numpy` könyvtárakat, ahogy az előző leckékben tetted, és importáld az ufos táblázatot. Megnézheted az adathalmaz egy mintáját:
+
+ ```python
+ import pandas as pd
+ import numpy as np
+
+ ufos = pd.read_csv('./data/ufos.csv')
+ ufos.head()
+ ```
+
+1. Alakítsd az ufos adatokat egy kisebb adatkeretté friss címekkel. Ellenőrizd az egyedi értékeket a `Country` mezőben.
+
+ ```python
+ ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})
+
+ ufos.Country.unique()
+ ```
+
+1. Most csökkentheted a feldolgozandó adatok mennyiségét azáltal, hogy eldobod a hiányzó értékeket, és csak az 1-60 másodperc közötti észleléseket importálod:
+
+ ```python
+ ufos.dropna(inplace=True)
+
+ ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)]
+
+ ufos.info()
+ ```
+
+1. Importáld a Scikit-learn `LabelEncoder` könyvtárát, hogy a szöveges országértékeket számokká alakítsd:
+
+ ✅ A LabelEncoder ábécé sorrendben kódolja az adatokat
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+
+ ufos['Country'] = LabelEncoder().fit_transform(ufos['Country'])
+
+ ufos.head()
+ ```
+
+ Az adataidnak így kell kinézniük:
+
+ ```output
+ Seconds Country Latitude Longitude
+ 2 20.0 3 53.200000 -2.916667
+ 3 20.0 4 28.978333 -96.645833
+ 14 30.0 4 35.823889 -80.253611
+ 23 60.0 4 45.582778 -122.352222
+ 24 3.0 3 51.783333 -0.783333
+ ```
+
+## Gyakorlat - építsd fel a modelledet
+
+Most felkészülhetsz a modell betanítására az adatok tanulási és tesztelési csoportra osztásával.
+
+1. Válaszd ki azt a három jellemzőt, amelyeken a modellt betanítod, mint X vektor, és az y vektor a `Country` lesz. A cél az, hogy a `Seconds`, `Latitude` és `Longitude` értékekből egy országazonosítót kapj vissza.
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ Selected_features = ['Seconds','Latitude','Longitude']
+
+ X = ufos[Selected_features]
+ y = ufos['Country']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+ ```
+
+1. Tanítsd be a modelledet logisztikus regresszióval:
+
+ ```python
+ from sklearn.metrics import accuracy_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('Accuracy: ', accuracy_score(y_test, predictions))
+ ```
+
+Az eredmény pontossága nem rossz **(kb. 95%)**, ami nem meglepő, mivel a `Country` és a `Latitude/Longitude` összefügg.
+
+A létrehozott modell nem túl forradalmi, mivel a `Latitude` és `Longitude` alapján könnyen kikövetkeztethető az `Country`, de jó gyakorlat arra, hogy nyers adatokból indulva tisztítsd, exportáld, majd egy webalkalmazásban használd a modellt.
+
+## Gyakorlat - "pickle"-eld a modelledet
+
+Most itt az ideje, hogy _pickle_-eld a modelledet! Ezt néhány sor kóddal megteheted. Miután _pickle_-elted, töltsd be a pickle fájlt, és teszteld egy mintaadat tömbbel, amely tartalmazza a másodpercek, szélességi és hosszúsági értékeket.
+
+```python
+import pickle
+model_filename = 'ufo-model.pkl'
+pickle.dump(model, open(model_filename,'wb'))
+
+model = pickle.load(open('ufo-model.pkl','rb'))
+print(model.predict([[50,44,-12]]))
+```
+
+A modell az **'3'** értéket adja vissza, amely az Egyesült Királyság országkódja. Hihetetlen! 👽
+
+## Gyakorlat - építs egy Flask alkalmazást
+
+Most építhetsz egy Flask alkalmazást, amely meghívja a modelledet, és hasonló eredményeket ad vissza, de vizuálisan vonzóbb módon.
+
+1. Kezdd azzal, hogy létrehozol egy **web-app** nevű mappát a _notebook.ipynb_ fájl mellé, ahol az _ufo-model.pkl_ fájl található.
+
+1. Ebben a mappában hozz létre három további mappát: **static**, benne egy **css** mappával, és **templates**. Most a következő fájlokkal és könyvtárakkal kell rendelkezned:
+
+ ```output
+ web-app/
+ static/
+ css/
+ templates/
+ notebook.ipynb
+ ufo-model.pkl
+ ```
+
+ ✅ Nézd meg a megoldás mappát a kész alkalmazás nézetéhez
+
+1. Az első fájl, amit létre kell hoznod a _web-app_ mappában, a **requirements.txt** fájl. Ez a fájl, hasonlóan a _package.json_-hoz egy JavaScript alkalmazásban, felsorolja az alkalmazás által igényelt függőségeket. A **requirements.txt** fájlba írd be a következő sorokat:
+
+ ```text
+ scikit-learn
+ pandas
+ numpy
+ flask
+ ```
+
+1. Most futtasd ezt a fájlt a _web-app_ mappába navigálva:
+
+ ```bash
+ cd web-app
+ ```
+
+1. A terminálban írd be a `pip install` parancsot, hogy telepítsd a _requirements.txt_-ben felsorolt könyvtárakat:
+
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+1. Most készen állsz arra, hogy három további fájlt hozz létre az alkalmazás befejezéséhez:
+
+ 1. Hozd létre az **app.py** fájlt a gyökérben.
+ 2. Hozd létre az **index.html** fájlt a _templates_ könyvtárban.
+ 3. Hozd létre a **styles.css** fájlt a _static/css_ könyvtárban.
+
+1. Töltsd ki a _styles.css_ fájlt néhány stílussal:
+
+ ```css
+ body {
+ width: 100%;
+ height: 100%;
+ font-family: 'Helvetica';
+ background: black;
+ color: #fff;
+ text-align: center;
+ letter-spacing: 1.4px;
+ font-size: 30px;
+ }
+
+ input {
+ min-width: 150px;
+ }
+
+ .grid {
+ width: 300px;
+ border: 1px solid #2d2d2d;
+ display: grid;
+ justify-content: center;
+ margin: 20px auto;
+ }
+
+ .box {
+ color: #fff;
+ background: #2d2d2d;
+ padding: 12px;
+ display: inline-block;
+ }
+ ```
+
+1. Ezután töltsd ki az _index.html_ fájlt:
+
+ ```html
+
+
+
+
+ 🛸 UFO Appearance Prediction! 👽
+
+
+
+
+
+
+
+
+
According to the number of seconds, latitude and longitude, which country is likely to have reported seeing a UFO?
+
+
+
+
{{ prediction_text }}
+
+
+
+
+
+
+
+ ```
+
+ Nézd meg a sablonozást ebben a fájlban. Figyeld meg a változók körüli 'mustache' szintaxist, amelyeket az alkalmazás biztosít, például az előrejelzési szöveget: `{{}}`. Van egy űrlap is, amely a `/predict` útvonalra küld egy előrejelzést.
+
+ Végül készen állsz arra, hogy megírd azt a Python fájlt, amely a modell fogyasztását és az előrejelzések megjelenítését vezérli:
+
+1. Az `app.py` fájlba írd be:
+
+ ```python
+ import numpy as np
+ from flask import Flask, request, render_template
+ import pickle
+
+ app = Flask(__name__)
+
+ model = pickle.load(open("./ufo-model.pkl", "rb"))
+
+
+ @app.route("/")
+ def home():
+ return render_template("index.html")
+
+
+ @app.route("/predict", methods=["POST"])
+ def predict():
+
+ int_features = [int(x) for x in request.form.values()]
+ final_features = [np.array(int_features)]
+ prediction = model.predict(final_features)
+
+ output = prediction[0]
+
+ countries = ["Australia", "Canada", "Germany", "UK", "US"]
+
+ return render_template(
+ "index.html", prediction_text="Likely country: {}".format(countries[output])
+ )
+
+
+ if __name__ == "__main__":
+ app.run(debug=True)
+ ```
+
+ > 💡 Tipp: Ha a Flask alkalmazás futtatása közben hozzáadod a [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) opciót, az alkalmazásban végrehajtott változtatások azonnal tükröződnek, anélkül hogy újra kellene indítanod a szervert. Vigyázz! Ne engedélyezd ezt az üzemmódot egy éles alkalmazásban.
+
+Ha futtatod a `python app.py` vagy `python3 app.py` parancsot, a webkiszolgáló helyileg elindul, és kitölthetsz egy rövid űrlapot, hogy választ kapj az UFO-észlelésekkel kapcsolatos égető kérdésedre!
+
+Mielőtt ezt megtennéd, nézd meg az `app.py` részeit:
+
+1. Először a függőségek betöltődnek, és az alkalmazás elindul.
+1. Ezután a modell importálódik.
+1. Ezután az index.html renderelődik a kezdő útvonalon.
+
+A `/predict` útvonalon több dolog történik, amikor az űrlapot elküldik:
+
+1. Az űrlap változói összegyűjtésre kerülnek, és numpy tömbbé konvertálódnak. Ezeket elküldik a modellnek, amely visszaad egy előrejelzést.
+2. Az országok, amelyeket meg akarunk jeleníteni, olvasható szöveggé alakulnak a megjósolt országkódból, és ez az érték visszaküldésre kerül az index.html-nek, hogy a sablonban megjelenjen.
+
+Egy modellt ilyen módon használni Flask és pickle segítségével viszonylag egyszerű. A legnehezebb dolog megérteni, hogy milyen formátumú adatokat kell a modellnek küldeni az előrejelzéshez. Ez teljes mértékben attól függ, hogyan lett a modell betanítva. Ennél a modellnél három adatpontot kell megadni az előrejelzéshez.
+
+Egy professzionális környezetben láthatod, hogy mennyire fontos a jó kommunikáció azok között, akik a modellt betanítják, és azok között, akik azt egy web- vagy mobilalkalmazásban használják. A mi esetünkben ez csak egy személy, te vagy!
+
+---
+
+## 🚀 Kihívás
+
+Ahelyett, hogy notebookban dolgoznál, és onnan importálnád a modellt a Flask alkalmazásba, próbáld meg a modellt közvetlenül a Flask alkalmazásban betanítani! Próbáld meg átalakítani a notebookban lévő Python kódot úgy, hogy az alkalmazásban, például egy `train` nevű útvonalon belül történjen a modell betanítása. Mik az előnyei és hátrányai ennek a módszernek?
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Számos módja van annak, hogy webalkalmazást építsünk gépi tanulási modellek használatához. Készíts egy listát azokról a módokról, ahogyan JavaScript vagy Python segítségével webalkalmazást építhetsz gépi tanulás alkalmazására. Gondolj az architektúrára: a modell az alkalmazásban maradjon, vagy a felhőben legyen? Ha az utóbbi, hogyan érnéd el? Rajzolj egy architekturális modellt egy alkalmazott ML webes megoldáshoz.
+
+## Feladat
+
+[Próbálj ki egy másik modellt](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/3-Web-App/1-Web-App/assignment.md b/translations/hu/3-Web-App/1-Web-App/assignment.md
new file mode 100644
index 00000000..c44ece7c
--- /dev/null
+++ b/translations/hu/3-Web-App/1-Web-App/assignment.md
@@ -0,0 +1,25 @@
+
+# Próbálj ki egy másik modellt
+
+## Útmutató
+
+Most, hogy elkészítettél egy webalkalmazást egy betanított regressziós modellel, használd az egyik modellt a korábbi regressziós leckéből, hogy újra elkészítsd ezt a webalkalmazást. Megtarthatod a stílust, vagy tervezheted másképp, hogy jobban illeszkedjen a tök adatokhoz. Ügyelj arra, hogy az inputokat módosítsd, hogy megfeleljenek a modelled tanítási módszerének.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| -------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -------------------------------------- |
+| | A webalkalmazás megfelelően működik és fel van töltve a felhőbe | A webalkalmazás hibákat tartalmaz vagy váratlan eredményeket produkál | A webalkalmazás nem működik megfelelően |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális, emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/3-Web-App/README.md b/translations/hu/3-Web-App/README.md
new file mode 100644
index 00000000..0e859d0a
--- /dev/null
+++ b/translations/hu/3-Web-App/README.md
@@ -0,0 +1,35 @@
+
+# Készíts egy webalkalmazást az ML modelled használatához
+
+A tananyag ezen részében egy alkalmazott gépi tanulási témával ismerkedhetsz meg: hogyan lehet a Scikit-learn modelledet fájlként elmenteni, amelyet egy webalkalmazásban használhatsz előrejelzések készítésére. Miután a modellt elmentetted, megtanulod, hogyan használd egy Flask-ben épített webalkalmazásban. Először létrehozol egy modellt egy olyan adathalmaz alapján, amely UFO-észlelésekről szól! Ezután építesz egy webalkalmazást, amely lehetővé teszi, hogy megadj egy másodpercértéket, valamint egy szélességi és hosszúsági koordinátát, hogy előre jelezd, melyik ország jelentett UFO-észlelést.
+
+
+
+Fotó: Michael Herren az Unsplash oldalán
+
+## Leckék
+
+1. [Webalkalmazás készítése](1-Web-App/README.md)
+
+## Köszönetnyilvánítás
+
+A "Webalkalmazás készítése" leckét ♥️-vel írta [Jen Looper](https://twitter.com/jenlooper).
+
+♥️ A kvízeket Rohan Raj írta.
+
+Az adathalmaz a [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings) oldalról származik.
+
+A webalkalmazás architektúráját részben [ez a cikk](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) és [ez a repo](https://github.com/abhinavsagar/machine-learning-deployment) javasolta, amelyet Abhinav Sagar készített.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/4-Classification/1-Introduction/README.md b/translations/hu/4-Classification/1-Introduction/README.md
new file mode 100644
index 00000000..c617b3ed
--- /dev/null
+++ b/translations/hu/4-Classification/1-Introduction/README.md
@@ -0,0 +1,313 @@
+
+# Bevezetés az osztályozásba
+
+Ebben a négy leckében a klasszikus gépi tanulás egyik alapvető területét, az _osztályozást_ fogod megismerni. Különböző osztályozási algoritmusokat fogunk alkalmazni egy adatállományon, amely Ázsia és India csodálatos konyháiról szól. Reméljük, éhes vagy!
+
+
+
+> Ünnepeld a pán-ázsiai konyhákat ezekben a leckékben! Kép: [Jen Looper](https://twitter.com/jenlooper)
+
+Az osztályozás a [felügyelt tanulás](https://wikipedia.org/wiki/Supervised_learning) egyik formája, amely sok hasonlóságot mutat a regressziós technikákkal. Ha a gépi tanulás lényege az, hogy adatállományok segítségével értékeket vagy neveket jósoljunk meg, akkor az osztályozás általában két csoportba sorolható: _bináris osztályozás_ és _többosztályos osztályozás_.
+
+[](https://youtu.be/eg8DJYwdMyg "Bevezetés az osztályozásba")
+
+> 🎥 Kattints a fenti képre egy videóért: MIT John Guttag bemutatja az osztályozást
+
+Emlékezz:
+
+- **Lineáris regresszió** segített megjósolni a változók közötti kapcsolatokat, és pontos előrejelzéseket készíteni arról, hogy egy új adatpont hol helyezkedne el a vonalhoz viszonyítva. Például meg tudtad jósolni, _milyen árú lesz egy tök szeptemberben vagy decemberben_.
+- **Logisztikus regresszió** segített felfedezni "bináris kategóriákat": ezen az árponton _ez a tök narancssárga vagy nem narancssárga_?
+
+Az osztályozás különböző algoritmusokat használ annak meghatározására, hogy egy adatpont milyen címkét vagy osztályt kapjon. Dolgozzunk ezzel a konyhai adatállománnyal, hogy megállapítsuk, egy összetevőcsoport alapján melyik konyha eredetéhez tartozik.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Ez a lecke elérhető R-ben is!](../../../../4-Classification/1-Introduction/solution/R/lesson_10.html)
+
+### Bevezetés
+
+Az osztályozás a gépi tanulás kutatójának és adatkutatójának egyik alapvető tevékenysége. Az egyszerű bináris értékek osztályozásától ("ez az e-mail spam vagy nem?") a komplex képosztályozásig és szegmentálásig számítógépes látás segítségével, mindig hasznos az adatokat osztályokba rendezni és kérdéseket feltenni róluk.
+
+Tudományosabb megfogalmazásban az osztályozási módszered egy prediktív modellt hoz létre, amely lehetővé teszi, hogy az input változók és az output változók közötti kapcsolatot feltérképezd.
+
+
+
+> Bináris vs. többosztályos problémák, amelyeket az osztályozási algoritmusok kezelnek. Infografika: [Jen Looper](https://twitter.com/jenlooper)
+
+Mielőtt elkezdenénk az adatok tisztítását, vizualizálását és előkészítését a gépi tanulási feladatokhoz, ismerjük meg, hogyan lehet a gépi tanulást különböző módokon alkalmazni az adatok osztályozására.
+
+A [statisztikából](https://wikipedia.org/wiki/Statistical_classification) származó klasszikus gépi tanulási osztályozás olyan jellemzőket használ, mint például `dohányos`, `súly` és `életkor`, hogy meghatározza _X betegség kialakulásának valószínűségét_. A korábban végzett regressziós gyakorlatokhoz hasonló felügyelt tanulási technikaként az adataid címkézettek, és a gépi tanulási algoritmusok ezeket a címkéket használják az adatok osztályainak (vagy 'jellemzőinek') osztályozására és előrejelzésére, majd egy csoporthoz vagy eredményhez rendelésére.
+
+✅ Képzelj el egy konyhákról szóló adatállományt. Milyen kérdéseket tudna megválaszolni egy többosztályos modell? Milyen kérdéseket tudna megválaszolni egy bináris modell? Mi lenne, ha meg akarnád határozni, hogy egy adott konyha valószínűleg használ-e görögszénát? Mi lenne, ha azt akarnád kideríteni, hogy egy élelmiszerkosárban található csillagánizs, articsóka, karfiol és torma alapján készíthetsz-e egy tipikus indiai ételt?
+
+[](https://youtu.be/GuTeDbaNoEU "Őrült rejtélyes kosarak")
+
+> 🎥 Kattints a fenti képre egy videóért. A 'Chopped' című műsor egész koncepciója a 'rejtélyes kosár', ahol a séfeknek egy véletlenszerű összetevőkből kell ételt készíteniük. Biztosan segített volna egy gépi tanulási modell!
+
+## Helló 'osztályozó'
+
+Az a kérdés, amit a konyhai adatállománytól szeretnénk megkérdezni, valójában egy **többosztályos kérdés**, mivel több lehetséges nemzeti konyhával dolgozunk. Egy adag összetevő alapján, melyik osztályba illik az adat?
+
+A Scikit-learn több különböző algoritmust kínál az adatok osztályozására, attól függően, hogy milyen problémát szeretnél megoldani. A következő két leckében megismerhetsz néhányat ezek közül az algoritmusok közül.
+
+## Gyakorlat - tisztítsd és egyensúlyozd ki az adataidat
+
+Az első feladat, mielőtt elkezdenénk ezt a projektet, az adatok tisztítása és **kiegyensúlyozása**, hogy jobb eredményeket érjünk el. Kezdd a _notebook.ipynb_ üres fájllal a mappa gyökerében.
+
+Az első telepítendő csomag az [imblearn](https://imbalanced-learn.org/stable/). Ez egy Scikit-learn csomag, amely lehetővé teszi az adatok jobb kiegyensúlyozását (erről a feladatról hamarosan többet fogsz tanulni).
+
+1. Az `imblearn` telepítéséhez futtasd a `pip install` parancsot, így:
+
+ ```python
+ pip install imblearn
+ ```
+
+1. Importáld a szükséges csomagokat az adatok importálásához és vizualizálásához, valamint importáld a `SMOTE`-ot az `imblearn`-ből.
+
+ ```python
+ import pandas as pd
+ import matplotlib.pyplot as plt
+ import matplotlib as mpl
+ import numpy as np
+ from imblearn.over_sampling import SMOTE
+ ```
+
+ Most készen állsz az adatok importálására.
+
+1. A következő feladat az adatok importálása:
+
+ ```python
+ df = pd.read_csv('../data/cuisines.csv')
+ ```
+
+ A `read_csv()` segítségével beolvashatod a _cusines.csv_ fájl tartalmát, és elhelyezheted a `df` változóban.
+
+1. Ellenőrizd az adatok alakját:
+
+ ```python
+ df.head()
+ ```
+
+ Az első öt sor így néz ki:
+
+ ```output
+ | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+ | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+ | 0 | 65 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 1 | 66 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 2 | 67 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 3 | 68 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 4 | 69 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+ ```
+
+1. Szerezz információt az adatokról az `info()` hívásával:
+
+ ```python
+ df.info()
+ ```
+
+ Az eredményed hasonló lesz:
+
+ ```output
+
+ RangeIndex: 2448 entries, 0 to 2447
+ Columns: 385 entries, Unnamed: 0 to zucchini
+ dtypes: int64(384), object(1)
+ memory usage: 7.2+ MB
+ ```
+
+## Gyakorlat - konyhák megismerése
+
+Most kezd igazán érdekessé válni a munka. Fedezzük fel az adatok eloszlását konyhánként.
+
+1. Ábrázold az adatokat oszlopokként a `barh()` hívásával:
+
+ ```python
+ df.cuisine.value_counts().plot.barh()
+ ```
+
+ 
+
+ Véges számú konyha van, de az adatok eloszlása egyenetlen. Ezt kijavíthatod! Mielőtt ezt megtennéd, fedezz fel egy kicsit többet.
+
+1. Derítsd ki, mennyi adat áll rendelkezésre konyhánként, és írasd ki:
+
+ ```python
+ thai_df = df[(df.cuisine == "thai")]
+ japanese_df = df[(df.cuisine == "japanese")]
+ chinese_df = df[(df.cuisine == "chinese")]
+ indian_df = df[(df.cuisine == "indian")]
+ korean_df = df[(df.cuisine == "korean")]
+
+ print(f'thai df: {thai_df.shape}')
+ print(f'japanese df: {japanese_df.shape}')
+ print(f'chinese df: {chinese_df.shape}')
+ print(f'indian df: {indian_df.shape}')
+ print(f'korean df: {korean_df.shape}')
+ ```
+
+ Az eredmény így néz ki:
+
+ ```output
+ thai df: (289, 385)
+ japanese df: (320, 385)
+ chinese df: (442, 385)
+ indian df: (598, 385)
+ korean df: (799, 385)
+ ```
+
+## Összetevők felfedezése
+
+Most mélyebben belemerülhetsz az adatokba, és megtudhatod, melyek a tipikus összetevők konyhánként. Tisztítsd ki az ismétlődő adatokat, amelyek zavart okoznak a konyhák között, hogy jobban megértsd ezt a problémát.
+
+1. Hozz létre egy `create_ingredient()` nevű függvényt Pythonban, amely egy összetevő adatkeretet hoz létre. Ez a függvény egy haszontalan oszlop elhagyásával kezd, majd az összetevőket azok számossága szerint rendezi:
+
+ ```python
+ def create_ingredient_df(df):
+ ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value')
+ ingredient_df = ingredient_df[(ingredient_df.T != 0).any()]
+ ingredient_df = ingredient_df.sort_values(by='value', ascending=False,
+ inplace=False)
+ return ingredient_df
+ ```
+
+ Most már használhatod ezt a függvényt, hogy képet kapj a tíz legnépszerűbb összetevőről konyhánként.
+
+1. Hívd meg a `create_ingredient()` függvényt, és ábrázold az adatokat a `barh()` hívásával:
+
+ ```python
+ thai_ingredient_df = create_ingredient_df(thai_df)
+ thai_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Ugyanezt tedd meg a japán adatokkal:
+
+ ```python
+ japanese_ingredient_df = create_ingredient_df(japanese_df)
+ japanese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Most a kínai összetevők:
+
+ ```python
+ chinese_ingredient_df = create_ingredient_df(chinese_df)
+ chinese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Ábrázold az indiai összetevőket:
+
+ ```python
+ indian_ingredient_df = create_ingredient_df(indian_df)
+ indian_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Végül ábrázold a koreai összetevőket:
+
+ ```python
+ korean_ingredient_df = create_ingredient_df(korean_df)
+ korean_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Most hagyd el a leggyakoribb összetevőket, amelyek zavart okoznak a különböző konyhák között, a `drop()` hívásával:
+
+ Mindenki szereti a rizst, fokhagymát és gyömbért!
+
+ ```python
+ feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1)
+ labels_df = df.cuisine #.unique()
+ feature_df.head()
+ ```
+
+## Az adatállomány kiegyensúlyozása
+
+Most, hogy megtisztítottad az adatokat, használd a [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Synthetic Minority Over-sampling Technique" - technikát az adatok kiegyensúlyozására.
+
+1. Hívd meg a `fit_resample()` függvényt, amely interpolációval új mintákat generál.
+
+ ```python
+ oversample = SMOTE()
+ transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)
+ ```
+
+ Az adatok kiegyensúlyozásával jobb eredményeket érhetsz el az osztályozás során. Gondolj egy bináris osztályozásra. Ha az adataid többsége egy osztályba tartozik, a gépi tanulási modell gyakrabban fogja azt az osztályt előre jelezni, egyszerűen azért, mert több adat áll rendelkezésre róla. Az adatok kiegyensúlyozása segít eltávolítani ezt az egyensúlyhiányt.
+
+1. Most ellenőrizheted az összetevők címkéinek számát:
+
+ ```python
+ print(f'new label count: {transformed_label_df.value_counts()}')
+ print(f'old label count: {df.cuisine.value_counts()}')
+ ```
+
+ Az eredményed így néz ki:
+
+ ```output
+ new label count: korean 799
+ chinese 799
+ indian 799
+ japanese 799
+ thai 799
+ Name: cuisine, dtype: int64
+ old label count: korean 799
+ indian 598
+ chinese 442
+ japanese 320
+ thai 289
+ Name: cuisine, dtype: int64
+ ```
+
+ Az adatok szépek, tiszták, kiegyensúlyozottak és nagyon ínycsiklandóak!
+
+1. Az utolsó lépés az, hogy a kiegyensúlyozott adatokat, beleértve a címkéket és jellemzőket, egy új adatkeretbe mentsd, amelyet fájlba exportálhatsz:
+
+ ```python
+ transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer')
+ ```
+
+1. Még egyszer megnézheted az adatokat a `transformed_df.head()` és `transformed_df.info()` hívásával. Ments egy másolatot ezekről az adatokból, hogy a jövőbeli leckékben használhasd:
+
+ ```python
+ transformed_df.head()
+ transformed_df.info()
+ transformed_df.to_csv("../data/cleaned_cuisines.csv")
+ ```
+
+ Ez a friss CSV most megtalálható az adatállomány mappájának gyökerében.
+
+---
+
+## 🚀Kihívás
+
+Ez a tananyag számos érdekes adatállományt tartalmaz. Nézd át a `data` mappákat, és nézd meg, hogy van-e olyan adatállomány, amely bináris vagy többosztályos osztályozásra alkalmas? Milyen kérdéseket tennél fel ennek az adatállománynak?
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Fedezd fel a SMOTE API-t. Milyen felhasználási esetekre a legalkalmasabb? Milyen problémákat old meg?
+
+## Feladat
+
+[Fedezd fel az osztályozási módszereket](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. Fontos 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
diff --git a/translations/hu/4-Classification/1-Introduction/assignment.md b/translations/hu/4-Classification/1-Introduction/assignment.md
new file mode 100644
index 00000000..6d7582a0
--- /dev/null
+++ b/translations/hu/4-Classification/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Fedezd fel a klasszifikációs módszereket
+
+## Útmutató
+
+A [Scikit-learn dokumentációjában](https://scikit-learn.org/stable/supervised_learning.html) számos adatklasszifikációs módszert találhatsz. Végezzen egy kis kincsvadászatot ezekben a dokumentumokban: a célod az, hogy klasszifikációs módszereket keress, és párosítsd őket egy adatállománnyal ebből a tananyagból, egy kérdéssel, amit feltehetsz róla, valamint egy klasszifikációs technikával. Készíts egy táblázatot vagy táblát egy .doc fájlban, és magyarázd el, hogyan működne az adatállomány a klasszifikációs algoritmussal.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| | egy dokumentum bemutatásra kerül, amely 5 algoritmust ismertet egy klasszifikációs technikával együtt. Az ismertetés jól magyarázott és részletes. | egy dokumentum bemutatásra kerül, amely 3 algoritmust ismertet egy klasszifikációs technikával együtt. Az ismertetés jól magyarázott és részletes. | egy dokumentum bemutatásra kerül, amely kevesebb mint három algoritmust ismertet egy klasszifikációs technikával együtt, és az ismertetés sem jól magyarázott, sem részletes. |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/4-Classification/1-Introduction/solution/Julia/README.md b/translations/hu/4-Classification/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..0fc618aa
--- /dev/null
+++ b/translations/hu/4-Classification/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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. Fontos 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
diff --git a/translations/hu/4-Classification/2-Classifiers-1/README.md b/translations/hu/4-Classification/2-Classifiers-1/README.md
new file mode 100644
index 00000000..513d6ffc
--- /dev/null
+++ b/translations/hu/4-Classification/2-Classifiers-1/README.md
@@ -0,0 +1,253 @@
+
+# Konyhai osztályozók 1
+
+Ebben a leckében az előző leckében elmentett, kiegyensúlyozott és tiszta adatokkal teli adatállományt fogod használni, amely a különböző konyhákról szól.
+
+Ezt az adatállományt különféle osztályozókkal fogod használni, hogy _egy adott nemzeti konyhát megjósolj egy összetevőcsoport alapján_. Eközben többet megtudhatsz arról, hogyan lehet algoritmusokat alkalmazni osztályozási feladatokhoz.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+# Felkészülés
+
+Feltételezve, hogy befejezted az [1. leckét](../1-Introduction/README.md), győződj meg róla, hogy egy _cleaned_cuisines.csv_ fájl létezik a gyökér `/data` mappában ehhez a négy leckéhez.
+
+## Gyakorlat - egy nemzeti konyha megjóslása
+
+1. Dolgozz ebben a lecke _notebook.ipynb_ mappájában, és importáld a fájlt a Pandas könyvtárral együtt:
+
+ ```python
+ import pandas as pd
+ cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv")
+ cuisines_df.head()
+ ```
+
+ Az adatok így néznek ki:
+
+| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+| 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+
+
+1. Most importálj több könyvtárat:
+
+ ```python
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ from sklearn.svm import SVC
+ import numpy as np
+ ```
+
+1. Oszd fel az X és y koordinátákat két adatkeretre a tanításhoz. A `cuisine` lehet a címkéket tartalmazó adatkeret:
+
+ ```python
+ cuisines_label_df = cuisines_df['cuisine']
+ cuisines_label_df.head()
+ ```
+
+ Ez így fog kinézni:
+
+ ```output
+ 0 indian
+ 1 indian
+ 2 indian
+ 3 indian
+ 4 indian
+ Name: cuisine, dtype: object
+ ```
+
+1. Dobd el az `Unnamed: 0` és a `cuisine` oszlopokat a `drop()` hívásával. A többi adatot mentsd el tanítható jellemzőként:
+
+ ```python
+ cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
+ cuisines_feature_df.head()
+ ```
+
+ A jellemzők így néznek ki:
+
+| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
+| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
+
+Most készen állsz arra, hogy betanítsd a modelledet!
+
+## Osztályozó kiválasztása
+
+Most, hogy az adataid tiszták és készen állnak a tanításra, el kell döntened, melyik algoritmust használod a feladathoz.
+
+A Scikit-learn a felügyelt tanulás kategóriájába sorolja az osztályozást, és ebben a kategóriában számos módszert találsz az osztályozáshoz. [A választék](https://scikit-learn.org/stable/supervised_learning.html) elsőre meglehetősen zavarba ejtő. Az alábbi módszerek mind tartalmaznak osztályozási technikákat:
+
+- Lineáris modellek
+- Támogató vektorgépek
+- Stochasztikus gradiens csökkenés
+- Legközelebbi szomszédok
+- Gauss-folyamatok
+- Döntési fák
+- Együttes módszerek (szavazó osztályozó)
+- Többosztályos és többkimenetes algoritmusok (többosztályos és többcímkés osztályozás, többosztályos-többkimenetes osztályozás)
+
+> Az adatok osztályozására [neurális hálózatokat is használhatsz](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), de ez a lecke keretein kívül esik.
+
+### Melyik osztályozót válasszuk?
+
+Tehát, melyik osztályozót válasszuk? Gyakran az a módszer, hogy több algoritmust kipróbálunk, és keresünk egy jó eredményt. A Scikit-learn kínál egy [összehasonlítást](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) egy létrehozott adatállományon, amely összehasonlítja a KNeighbors, SVC két módját, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB és QuadraticDiscriminationAnalysis algoritmusokat, és vizualizálja az eredményeket:
+
+
+> Diagramok a Scikit-learn dokumentációjából
+
+> Az AutoML elegánsan megoldja ezt a problémát azáltal, hogy ezeket az összehasonlításokat a felhőben futtatja, lehetővé téve, hogy kiválaszd a legjobb algoritmust az adataidhoz. Próbáld ki [itt](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
+
+### Egy jobb megközelítés
+
+Egy jobb módszer, mint a vad találgatás, az, hogy követjük az ötleteket ezen letölthető [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) alapján. Itt felfedezzük, hogy a többosztályos problémánkhoz van néhány választási lehetőség:
+
+
+> A Microsoft Algoritmus Cheat Sheet egy szakasza, amely részletezi a többosztályos osztályozási lehetőségeket
+
+✅ Töltsd le ezt a cheat sheetet, nyomtasd ki, és tedd ki a faladra!
+
+### Érvelés
+
+Nézzük meg, hogy az adott korlátok alapján milyen megközelítéseket választhatunk:
+
+- **A neurális hálózatok túl nehezek**. Tekintve, hogy az adatállományunk tiszta, de minimális, és hogy a tanítást helyben, notebookokon keresztül végezzük, a neurális hálózatok túl nehézkesek ehhez a feladathoz.
+- **Nincs kétosztályos osztályozó**. Nem használunk kétosztályos osztályozót, így az egy-vs-minden kizárható.
+- **Döntési fa vagy logisztikus regresszió működhet**. Egy döntési fa működhet, vagy logisztikus regresszió többosztályos adatokhoz.
+- **Többosztályos Boosted Decision Trees más problémát old meg**. A többosztályos Boosted Decision Tree leginkább nemparaméteres feladatokhoz alkalmas, például rangsorok létrehozására, így számunkra nem hasznos.
+
+### Scikit-learn használata
+
+A Scikit-learn-t fogjuk használni az adataink elemzésére. Azonban számos módja van annak, hogy logisztikus regressziót használjunk a Scikit-learn-ben. Nézd meg a [paramétereket](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression), amelyeket megadhatsz.
+
+Lényegében két fontos paraméter van - `multi_class` és `solver` -, amelyeket meg kell határoznunk, amikor arra kérjük a Scikit-learn-t, hogy végezzen logisztikus regressziót. A `multi_class` érték egy bizonyos viselkedést alkalmaz. A solver értéke az algoritmus, amelyet használni kell. Nem minden solver párosítható minden `multi_class` értékkel.
+
+A dokumentáció szerint a többosztályos esetben a tanítási algoritmus:
+
+- **Az egy-vs-minden (OvR) sémát használja**, ha a `multi_class` opció `ovr`-re van állítva
+- **A keresztentrópia veszteséget használja**, ha a `multi_class` opció `multinomial`-ra van állítva. (Jelenleg a `multinomial` opciót csak az ‘lbfgs’, ‘sag’, ‘saga’ és ‘newton-cg’ solvers támogatják.)
+
+> 🎓 A 'séma' itt lehet 'ovr' (egy-vs-minden) vagy 'multinomial'. Mivel a logisztikus regresszió valójában bináris osztályozás támogatására lett tervezve, ezek a sémák lehetővé teszik, hogy jobban kezelje a többosztályos osztályozási feladatokat. [forrás](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
+
+> 🎓 A 'solver' úgy van definiálva, mint "az algoritmus, amelyet az optimalizálási problémában használni kell". [forrás](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+A Scikit-learn ezt a táblázatot kínálja, hogy megmagyarázza, hogyan kezelik a solvers a különböző kihívásokat, amelyeket a különböző adatstruktúrák jelentenek:
+
+
+
+## Gyakorlat - az adatok felosztása
+
+Koncentráljunk a logisztikus regresszióra az első tanítási próbánk során, mivel nemrég tanultál róla egy korábbi leckében.
+Oszd fel az adataidat tanítási és tesztelési csoportokra a `train_test_split()` hívásával:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+```
+
+## Gyakorlat - logisztikus regresszió alkalmazása
+
+Mivel a többosztályos esetet használod, ki kell választanod, hogy milyen _sémát_ és milyen _solvert_ állíts be. Használj LogisticRegression-t többosztályos beállítással és a **liblinear** solverrel a tanításhoz.
+
+1. Hozz létre egy logisztikus regressziót, ahol a multi_class `ovr`-re van állítva, és a solver `liblinear`-re:
+
+ ```python
+ lr = LogisticRegression(multi_class='ovr',solver='liblinear')
+ model = lr.fit(X_train, np.ravel(y_train))
+
+ accuracy = model.score(X_test, y_test)
+ print ("Accuracy is {}".format(accuracy))
+ ```
+
+ ✅ Próbálj ki egy másik solvert, például `lbfgs`, amelyet gyakran alapértelmezettként állítanak be
+> Megjegyzés: Használja a Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) függvényt az adatok lapításához, amikor szükséges.
+A pontosság **80%** felett jó!
+
+1. Ezt a modellt működés közben láthatod, ha tesztelsz egy adat sort (#50):
+
+ ```python
+ print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
+ print(f'cuisine: {y_test.iloc[50]}')
+ ```
+
+ Az eredmény ki van nyomtatva:
+
+ ```output
+ ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
+ cuisine: indian
+ ```
+
+ ✅ Próbálj ki egy másik sor számot, és ellenőrizd az eredményeket.
+
+1. Mélyebbre ásva ellenőrizheted ennek az előrejelzésnek a pontosságát:
+
+ ```python
+ test= X_test.iloc[50].values.reshape(-1, 1).T
+ proba = model.predict_proba(test)
+ classes = model.classes_
+ resultdf = pd.DataFrame(data=proba, columns=classes)
+
+ topPrediction = resultdf.T.sort_values(by=[0], ascending = [False])
+ topPrediction.head()
+ ```
+
+ Az eredmény ki van nyomtatva - az indiai konyha a legjobb tippje, jó valószínűséggel:
+
+ | | 0 |
+ | -------: | -------: |
+ | indian | 0.715851 |
+ | chinese | 0.229475 |
+ | japanese | 0.029763 |
+ | korean | 0.017277 |
+ | thai | 0.007634 |
+
+ ✅ Meg tudod magyarázni, miért gondolja a modell, hogy ez biztosan indiai konyha?
+
+1. Szerezz több részletet egy osztályozási jelentés kinyomtatásával, ahogy a regressziós leckékben tetted:
+
+ ```python
+ y_pred = model.predict(X_test)
+ print(classification_report(y_test,y_pred))
+ ```
+
+ | | pontosság | visszahívás | f1-érték | támogatás |
+ | ------------ | --------- | ----------- | -------- | --------- |
+ | chinese | 0.73 | 0.71 | 0.72 | 229 |
+ | indian | 0.91 | 0.93 | 0.92 | 254 |
+ | japanese | 0.70 | 0.75 | 0.72 | 220 |
+ | korean | 0.86 | 0.76 | 0.81 | 242 |
+ | thai | 0.79 | 0.85 | 0.82 | 254 |
+ | pontosság | 0.80 | 1199 | | |
+ | makro átlag | 0.80 | 0.80 | 0.80 | 1199 |
+ | súlyozott átlag | 0.80 | 0.80 | 0.80 | 1199 |
+
+## 🚀Kihívás
+
+Ebben a leckében a megtisztított adataidat használtad egy gépi tanulási modell felépítéséhez, amely képes nemzeti konyhát előre jelezni egy sor összetevő alapján. Szánj időt arra, hogy átnézd a Scikit-learn által kínált számos lehetőséget az adatok osztályozására. Áss mélyebbre a 'solver' fogalmába, hogy megértsd, mi zajlik a háttérben.
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Áss egy kicsit mélyebbre a logisztikus regresszió matematikájában [ebben a leckében](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
+## Feladat
+
+[Tanulmányozd a solvereket](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/4-Classification/2-Classifiers-1/assignment.md b/translations/hu/4-Classification/2-Classifiers-1/assignment.md
new file mode 100644
index 00000000..6d8e02e9
--- /dev/null
+++ b/translations/hu/4-Classification/2-Classifiers-1/assignment.md
@@ -0,0 +1,23 @@
+
+# Tanulmányozd a megoldókat
+## Útmutató
+
+Ebben a leckében megismerkedtél a különböző megoldókkal, amelyek algoritmusokat párosítanak egy gépi tanulási folyamattal, hogy pontos modellt hozzanak létre. Nézd át a leckében felsorolt megoldókat, és válassz ki kettőt. Saját szavaiddal hasonlítsd össze és állítsd szembe ezt a két megoldót. Milyen típusú problémákat oldanak meg? Hogyan működnek különböző adatstruktúrákkal? Miért választanád az egyiket a másik helyett?
+## Értékelési szempontok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre szorul |
+| --------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- |
+| | Egy .doc fájl van bemutatva, amely két bekezdést tartalmaz, mindegyik egy-egy megoldóról, gondosan összehasonlítva őket. | Egy .doc fájl van bemutatva, amely csak egy bekezdést tartalmaz | A feladat hiányos |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos 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
diff --git a/translations/hu/4-Classification/2-Classifiers-1/solution/Julia/README.md b/translations/hu/4-Classification/2-Classifiers-1/solution/Julia/README.md
new file mode 100644
index 00000000..087a6a7c
--- /dev/null
+++ b/translations/hu/4-Classification/2-Classifiers-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/hu/4-Classification/3-Classifiers-2/README.md b/translations/hu/4-Classification/3-Classifiers-2/README.md
new file mode 100644
index 00000000..83e7a442
--- /dev/null
+++ b/translations/hu/4-Classification/3-Classifiers-2/README.md
@@ -0,0 +1,249 @@
+
+# Konyhai osztályozók 2
+
+Ebben a második osztályozási leckében további módszereket fedezhetsz fel a numerikus adatok osztályozására. Megismerheted azt is, hogy milyen következményekkel jár, ha egyik osztályozót választod a másik helyett.
+
+## [Előzetes kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+### Előfeltétel
+
+Feltételezzük, hogy elvégezted az előző leckéket, és van egy megtisztított adatállományod a `data` mappában, amely _cleaned_cuisines.csv_ néven található a 4-leckés mappa gyökérkönyvtárában.
+
+### Előkészület
+
+Betöltöttük a _notebook.ipynb_ fájlodat a megtisztított adatállománnyal, és X és y adatkeretekre osztottuk, készen állva a modellépítési folyamatra.
+
+## Egy osztályozási térkép
+
+Korábban megismerkedtél a különböző lehetőségekkel, amelyekkel adatokat osztályozhatsz a Microsoft csalólapja segítségével. A Scikit-learn egy hasonló, de részletesebb csalólapot kínál, amely tovább segíthet az osztályozók (más néven becslők) szűkítésében:
+
+
+> Tipp: [nézd meg ezt a térképet online](https://scikit-learn.org/stable/tutorial/machine_learning_map/), és kattints az útvonalakon, hogy elolvashasd a dokumentációt.
+
+### A terv
+
+Ez a térkép nagyon hasznos, ha tisztában vagy az adataiddal, mivel „végigjárhatod” az útvonalait, hogy döntést hozz:
+
+- Több mint 50 mintánk van
+- Kategóriát szeretnénk előre jelezni
+- Címkézett adataink vannak
+- Kevesebb mint 100 ezer mintánk van
+- ✨ Választhatunk egy Linear SVC-t
+- Ha ez nem működik, mivel numerikus adataink vannak
+ - Kipróbálhatunk egy ✨ KNeighbors Classifiert
+ - Ha ez sem működik, próbáljuk ki a ✨ SVC-t és ✨ Ensemble Classifiert
+
+Ez egy nagyon hasznos útvonal, amit követhetünk.
+
+## Gyakorlat - az adatok felosztása
+
+Ezt az útvonalat követve kezdjük azzal, hogy importálunk néhány szükséges könyvtárat.
+
+1. Importáld a szükséges könyvtárakat:
+
+ ```python
+ from sklearn.neighbors import KNeighborsClassifier
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.svm import SVC
+ from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ import numpy as np
+ ```
+
+1. Oszd fel a tanuló és tesztadatokat:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+ ```
+
+## Linear SVC osztályozó
+
+A Support-Vector clustering (SVC) a Support-Vector gépek ML technikáinak családjába tartozik (további információk alább). Ebben a módszerben egy 'kernel'-t választhatsz, amely meghatározza, hogyan csoportosítja a címkéket. A 'C' paraméter a 'regularizációt' jelenti, amely szabályozza a paraméterek hatását. A kernel lehet [többféle](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); itt 'linear'-re állítjuk, hogy lineáris SVC-t használjunk. Az alapértelmezett valószínűség 'false'; itt 'true'-ra állítjuk, hogy valószínűségi becsléseket kapjunk. A random state '0'-ra van állítva, hogy az adatokat keverjük a valószínűségek eléréséhez.
+
+### Gyakorlat - alkalmazz lineáris SVC-t
+
+Kezdj egy osztályozók tömbjének létrehozásával. Ehhez fokozatosan hozzáadunk elemeket, ahogy tesztelünk.
+
+1. Kezdj egy Linear SVC-vel:
+
+ ```python
+ C = 10
+ # Create different classifiers.
+ classifiers = {
+ 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
+ }
+ ```
+
+2. Tanítsd be a modelledet a Linear SVC-vel, és nyomtass ki egy jelentést:
+
+ ```python
+ n_classifiers = len(classifiers)
+
+ for index, (name, classifier) in enumerate(classifiers.items()):
+ classifier.fit(X_train, np.ravel(y_train))
+
+ y_pred = classifier.predict(X_test)
+ accuracy = accuracy_score(y_test, y_pred)
+ print("Accuracy (train) for %s: %0.1f%% " % (name, accuracy * 100))
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Az eredmény elég jó:
+
+ ```output
+ Accuracy (train) for Linear SVC: 78.6%
+ precision recall f1-score support
+
+ chinese 0.71 0.67 0.69 242
+ indian 0.88 0.86 0.87 234
+ japanese 0.79 0.74 0.76 254
+ korean 0.85 0.81 0.83 242
+ thai 0.71 0.86 0.78 227
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+## K-Neighbors osztályozó
+
+A K-Neighbors az ML módszerek "szomszédok" családjába tartozik, amelyeket felügyelt és nem felügyelt tanulásra is lehet használni. Ebben a módszerben előre meghatározott számú pontot hozunk létre, és az adatok ezek köré gyűlnek, hogy általánosított címkéket lehessen előre jelezni az adatokhoz.
+
+### Gyakorlat - alkalmazd a K-Neighbors osztályozót
+
+Az előző osztályozó jó volt, és jól működött az adatokkal, de talán jobb pontosságot érhetünk el. Próbálj ki egy K-Neighbors osztályozót.
+
+1. Adj hozzá egy sort az osztályozók tömbjéhez (tegyél vesszőt a Linear SVC elem után):
+
+ ```python
+ 'KNN classifier': KNeighborsClassifier(C),
+ ```
+
+ Az eredmény kicsit rosszabb:
+
+ ```output
+ Accuracy (train) for KNN classifier: 73.8%
+ precision recall f1-score support
+
+ chinese 0.64 0.67 0.66 242
+ indian 0.86 0.78 0.82 234
+ japanese 0.66 0.83 0.74 254
+ korean 0.94 0.58 0.72 242
+ thai 0.71 0.82 0.76 227
+
+ accuracy 0.74 1199
+ macro avg 0.76 0.74 0.74 1199
+ weighted avg 0.76 0.74 0.74 1199
+ ```
+
+ ✅ Tudj meg többet a [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) módszerről.
+
+## Support Vector osztályozó
+
+A Support-Vector osztályozók az ML módszerek [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) családjába tartoznak, amelyeket osztályozási és regressziós feladatokra használnak. Az SVM-ek "a tanuló példákat pontokká térképezik az űrben", hogy maximalizálják a távolságot két kategória között. A későbbi adatok ebbe az űrbe kerülnek, hogy előre jelezzék a kategóriájukat.
+
+### Gyakorlat - alkalmazz Support Vector osztályozót
+
+Próbáljunk meg egy kicsit jobb pontosságot elérni egy Support Vector osztályozóval.
+
+1. Tegyél vesszőt a K-Neighbors elem után, majd add hozzá ezt a sort:
+
+ ```python
+ 'SVC': SVC(),
+ ```
+
+ Az eredmény elég jó!
+
+ ```output
+ Accuracy (train) for SVC: 83.2%
+ precision recall f1-score support
+
+ chinese 0.79 0.74 0.76 242
+ indian 0.88 0.90 0.89 234
+ japanese 0.87 0.81 0.84 254
+ korean 0.91 0.82 0.86 242
+ thai 0.74 0.90 0.81 227
+
+ accuracy 0.83 1199
+ macro avg 0.84 0.83 0.83 1199
+ weighted avg 0.84 0.83 0.83 1199
+ ```
+
+ ✅ Tudj meg többet a [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm) módszerről.
+
+## Ensemble osztályozók
+
+Kövessük az útvonalat egészen a végéig, még akkor is, ha az előző teszt elég jó volt. Próbáljunk ki néhány 'Ensemble osztályozót', különösen a Random Forest és AdaBoost módszereket:
+
+```python
+ 'RFST': RandomForestClassifier(n_estimators=100),
+ 'ADA': AdaBoostClassifier(n_estimators=100)
+```
+
+Az eredmény nagyon jó, különösen a Random Forest esetében:
+
+```output
+Accuracy (train) for RFST: 84.5%
+ precision recall f1-score support
+
+ chinese 0.80 0.77 0.78 242
+ indian 0.89 0.92 0.90 234
+ japanese 0.86 0.84 0.85 254
+ korean 0.88 0.83 0.85 242
+ thai 0.80 0.87 0.83 227
+
+ accuracy 0.84 1199
+ macro avg 0.85 0.85 0.84 1199
+weighted avg 0.85 0.84 0.84 1199
+
+Accuracy (train) for ADA: 72.4%
+ precision recall f1-score support
+
+ chinese 0.64 0.49 0.56 242
+ indian 0.91 0.83 0.87 234
+ japanese 0.68 0.69 0.69 254
+ korean 0.73 0.79 0.76 242
+ thai 0.67 0.83 0.74 227
+
+ accuracy 0.72 1199
+ macro avg 0.73 0.73 0.72 1199
+weighted avg 0.73 0.72 0.72 1199
+```
+
+✅ Tudj meg többet az [Ensemble osztályozókról](https://scikit-learn.org/stable/modules/ensemble.html).
+
+Ez a gépi tanulási módszer "több alapbecslő előrejelzéseit kombinálja", hogy javítsa a modell minőségét. Példánkban Random Trees és AdaBoost módszereket használtunk.
+
+- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), egy átlagolási módszer, amely 'döntési fák' 'erdőjét' építi fel véletlenszerűséggel, hogy elkerülje a túltanulást. Az n_estimators paraméter a fák számát határozza meg.
+
+- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) egy osztályozót illeszt az adatállományhoz, majd ennek másolatait illeszti ugyanarra az adatállományra. Azokra az elemekre összpontosít, amelyeket helytelenül osztályoztak, és a következő osztályozó illesztését úgy állítja be, hogy javítsa azokat.
+
+---
+
+## 🚀Kihívás
+
+Ezeknek a technikáknak számos paramétere van, amelyeket módosíthatsz. Kutass utána mindegyik alapértelmezett paramétereinek, és gondold át, hogy ezek módosítása mit jelentene a modell minőségére nézve.
+
+## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Ezekben a leckékben sok a szakzsargon, ezért szánj egy percet arra, hogy átnézd [ezt a listát](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) a hasznos terminológiáról!
+
+## Feladat
+
+[Paraméterek játéka](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
diff --git a/translations/hu/4-Classification/3-Classifiers-2/assignment.md b/translations/hu/4-Classification/3-Classifiers-2/assignment.md
new file mode 100644
index 00000000..d9fc539f
--- /dev/null
+++ b/translations/hu/4-Classification/3-Classifiers-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Paraméterek kezelése
+
+## Útmutató
+
+Számos paraméter van, amely alapértelmezés szerint be van állítva, amikor ezekkel az osztályozókkal dolgozunk. Az Intellisense a VS Code-ban segíthet ezek feltárásában. Válassz ki egyet az ebben a leckében bemutatott gépi tanulási osztályozási technikák közül, és tanítsd újra a modelleket különböző paraméterértékek módosításával. Készíts egy jegyzetfüzetet, amely elmagyarázza, hogy bizonyos változtatások miért javítják a modell minőségét, míg mások miért rontják azt. Légy részletes a válaszodban.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ----------------------------- |
+| | Egy jegyzetfüzet bemutatásra kerül, amelyben az osztályozó teljesen fel van építve, a paraméterek módosítva vannak, és a változások szövegdobozokban elmagyarázva | Egy jegyzetfüzet részben bemutatott vagy gyengén magyarázott | Egy jegyzetfüzet hibás vagy hiányos |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/4-Classification/3-Classifiers-2/solution/Julia/README.md b/translations/hu/4-Classification/3-Classifiers-2/solution/Julia/README.md
new file mode 100644
index 00000000..e7134306
--- /dev/null
+++ b/translations/hu/4-Classification/3-Classifiers-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/hu/4-Classification/4-Applied/README.md b/translations/hu/4-Classification/4-Applied/README.md
new file mode 100644
index 00000000..af543be4
--- /dev/null
+++ b/translations/hu/4-Classification/4-Applied/README.md
@@ -0,0 +1,329 @@
+
+# Építs egy konyhai ajánló webalkalmazást
+
+Ebben a leckében egy osztályozási modellt fogsz építeni, felhasználva az előző leckékben tanult technikákat, valamint a sorozat során használt ízletes konyhai adatbázist. Ezen kívül egy kis webalkalmazást is készítesz, amely egy mentett modellt használ, az Onnx webes futtatókörnyezetét kihasználva.
+
+A gépi tanulás egyik legpraktikusabb alkalmazása az ajánlórendszerek építése, és ma te is megteheted az első lépést ebbe az irányba!
+
+[](https://youtu.be/17wdM9AHMfg "Alkalmazott ML")
+
+> 🎥 Kattints a fenti képre a videóért: Jen Looper egy webalkalmazást épít osztályozott konyhai adatokkal
+
+## [Előzetes kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+Ebben a leckében megtanulod:
+
+- Hogyan építs modellt és mentsd el Onnx formátumban
+- Hogyan használd a Netron-t a modell vizsgálatához
+- Hogyan használd a modelledet egy webalkalmazásban következtetéshez
+
+## Építsd meg a modelledet
+
+Az alkalmazott gépi tanulási rendszerek építése fontos része annak, hogy ezeket a technológiákat üzleti rendszereidben hasznosítsd. A modelleket webalkalmazásokban is használhatod (így offline környezetben is, ha szükséges), az Onnx segítségével.
+
+Egy [korábbi leckében](../../3-Web-App/1-Web-App/README.md) egy regressziós modellt építettél UFO észlelésekről, "pickle"-be mentetted, és egy Flask alkalmazásban használtad. Bár ez az architektúra nagyon hasznos, egy teljes Python alapú alkalmazás, és az igényeid között szerepelhet egy JavaScript alkalmazás használata.
+
+Ebben a leckében egy alapvető JavaScript-alapú rendszert építhetsz következtetéshez. Először azonban egy modellt kell betanítanod, és átalakítanod Onnx formátumra.
+
+## Gyakorlat - osztályozási modell betanítása
+
+Először is, taníts be egy osztályozási modellt a korábban használt tisztított konyhai adatbázis segítségével.
+
+1. Kezdd azzal, hogy importálod a szükséges könyvtárakat:
+
+ ```python
+ !pip install skl2onnx
+ import pandas as pd
+ ```
+
+ Szükséged lesz a '[skl2onnx](https://onnx.ai/sklearn-onnx/)' könyvtárra, hogy a Scikit-learn modelledet Onnx formátumra konvertáld.
+
+1. Ezután dolgozz az adataiddal ugyanúgy, ahogy az előző leckékben, olvasd be a CSV fájlt a `read_csv()` segítségével:
+
+ ```python
+ data = pd.read_csv('../data/cleaned_cuisines.csv')
+ data.head()
+ ```
+
+1. Távolítsd el az első két felesleges oszlopot, és mentsd el a fennmaradó adatokat 'X' néven:
+
+ ```python
+ X = data.iloc[:,2:]
+ X.head()
+ ```
+
+1. Mentsd el a címkéket 'y' néven:
+
+ ```python
+ y = data[['cuisine']]
+ y.head()
+
+ ```
+
+### Kezdd el a betanítási folyamatot
+
+Az 'SVC' könyvtárat fogjuk használni, amely jó pontosságot biztosít.
+
+1. Importáld a megfelelő könyvtárakat a Scikit-learn-ből:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+ from sklearn.svm import SVC
+ from sklearn.model_selection import cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report
+ ```
+
+1. Válaszd szét a betanítási és tesztkészleteket:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
+ ```
+
+1. Építs egy SVC osztályozási modellt, ahogy az előző leckében:
+
+ ```python
+ model = SVC(kernel='linear', C=10, probability=True,random_state=0)
+ model.fit(X_train,y_train.values.ravel())
+ ```
+
+1. Most teszteld a modelledet a `predict()` hívásával:
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+1. Nyomtass ki egy osztályozási jelentést, hogy ellenőrizd a modell minőségét:
+
+ ```python
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Ahogy korábban láttuk, a pontosság jó:
+
+ ```output
+ precision recall f1-score support
+
+ chinese 0.72 0.69 0.70 257
+ indian 0.91 0.87 0.89 243
+ japanese 0.79 0.77 0.78 239
+ korean 0.83 0.79 0.81 236
+ thai 0.72 0.84 0.78 224
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+### Konvertáld a modelledet Onnx formátumra
+
+Győződj meg róla, hogy a konverziót a megfelelő Tensor számmal végzed. Ez az adatbázis 380 összetevőt tartalmaz, így ezt a számot meg kell adnod a `FloatTensorType`-ban:
+
+1. Konvertáld 380-as tensor számmal.
+
+ ```python
+ from skl2onnx import convert_sklearn
+ from skl2onnx.common.data_types import FloatTensorType
+
+ initial_type = [('float_input', FloatTensorType([None, 380]))]
+ options = {id(model): {'nocl': True, 'zipmap': False}}
+ ```
+
+1. Hozd létre az onx fájlt, és mentsd el **model.onnx** néven:
+
+ ```python
+ onx = convert_sklearn(model, initial_types=initial_type, options=options)
+ with open("./model.onnx", "wb") as f:
+ f.write(onx.SerializeToString())
+ ```
+
+ > Fontos, hogy [opciókat](https://onnx.ai/sklearn-onnx/parameterized.html) adhatsz meg a konverziós szkriptben. Ebben az esetben a 'nocl' értéket True-ra, a 'zipmap' értéket False-ra állítottuk. Mivel ez egy osztályozási modell, lehetőséged van eltávolítani a ZipMap-et, amely egy listát készít szótárakból (nem szükséges). A `nocl` arra utal, hogy az osztályinformációk szerepelnek-e a modellben. Csökkentsd a modell méretét a `nocl` True-ra állításával.
+
+A teljes notebook futtatása most létrehozza az Onnx modellt, és elmenti ebbe a mappába.
+
+## Tekintsd meg a modelledet
+
+Az Onnx modellek nem láthatók jól a Visual Studio Code-ban, de van egy nagyon jó ingyenes szoftver, amelyet sok kutató használ a modellek vizualizálására, hogy megbizonyosodjon arról, hogy megfelelően épültek. Töltsd le a [Netron](https://github.com/lutzroeder/Netron) programot, és nyisd meg a model.onnx fájlt. Láthatod az egyszerű modelledet vizualizálva, a 380 bemenettel és az osztályozóval:
+
+
+
+A Netron egy hasznos eszköz a modellek megtekintéséhez.
+
+Most készen állsz arra, hogy ezt az ügyes modellt egy webalkalmazásban használd. Építsünk egy alkalmazást, amely hasznos lehet, amikor a hűtőszekrényedbe nézel, és megpróbálod kitalálni, hogy a maradék összetevők kombinációjával milyen konyhát készíthetsz, ahogy azt a modelled meghatározza.
+
+## Építs egy ajánló webalkalmazást
+
+A modelledet közvetlenül egy webalkalmazásban használhatod. Ez az architektúra lehetővé teszi, hogy helyben és akár offline is futtasd. Kezdd azzal, hogy létrehozol egy `index.html` fájlt abban a mappában, ahol a `model.onnx` fájl található.
+
+1. Ebben a fájlban _index.html_, add hozzá a következő jelölést:
+
+ ```html
+
+
+
+ Cuisine Matcher
+
+
+ ...
+
+
+ ```
+
+1. Most, a `body` címkék között adj hozzá egy kis jelölést, amely néhány összetevőt tükröző jelölőnégyzeteket mutat:
+
+ ```html
+
Check your refrigerator. What can you create?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ```
+
+ Figyeld meg, hogy minden jelölőnégyzethez érték van rendelve. Ez tükrözi az összetevő helyét az adatbázis szerint. Az alma például ebben az ábécé szerinti listában az ötödik oszlopot foglalja el, így az értéke '4', mivel 0-tól kezdünk számolni. Az összetevők indexét a [összetevők táblázatában](../../../../4-Classification/data/ingredient_indexes.csv) találhatod meg.
+
+ Folytatva a munkát az index.html fájlban, adj hozzá egy szkript blokkot, ahol a modell hívása történik a végső záró `` után.
+
+1. Először importáld az [Onnx Runtime](https://www.onnxruntime.ai/) könyvtárat:
+
+ ```html
+
+ ```
+
+ > Az Onnx Runtime lehetővé teszi, hogy az Onnx modelleket különböző hardverplatformokon futtasd, optimalizálásokkal és egy API-val.
+
+1. Miután a Runtime helyén van, hívd meg:
+
+ ```html
+
+ ```
+
+Ebben a kódban több dolog történik:
+
+1. Létrehoztál egy 380 lehetséges értéket (1 vagy 0) tartalmazó tömböt, amelyet beállítasz és elküldesz a modellnek következtetéshez, attól függően, hogy egy összetevő jelölőnégyzet be van-e jelölve.
+2. Létrehoztál egy jelölőnégyzetek tömbjét és egy módot annak meghatározására, hogy be vannak-e jelölve egy `init` függvényben, amelyet az alkalmazás indításakor hívsz meg. Amikor egy jelölőnégyzet be van jelölve, az `ingredients` tömb módosul, hogy tükrözze a kiválasztott összetevőt.
+3. Létrehoztál egy `testCheckboxes` függvényt, amely ellenőrzi, hogy van-e bejelölt jelölőnégyzet.
+4. A `startInference` függvényt használod, amikor a gombot megnyomják, és ha van bejelölt jelölőnégyzet, elindítod a következtetést.
+5. A következtetési rutin tartalmazza:
+ 1. A modell aszinkron betöltésének beállítását
+ 2. Egy Tensor struktúra létrehozását, amelyet elküldesz a modellnek
+ 3. 'Feeds' létrehozását, amely tükrözi a `float_input` bemenetet, amelyet a modelled betanításakor hoztál létre (a Netron segítségével ellenőrizheted ezt a nevet)
+ 4. Ezeknek a 'feeds'-eknek a modellhez való elküldését és a válasz megvárását
+
+## Teszteld az alkalmazásodat
+
+Nyiss egy terminálablakot a Visual Studio Code-ban abban a mappában, ahol az index.html fájl található. Győződj meg róla, hogy a [http-server](https://www.npmjs.com/package/http-server) globálisan telepítve van, és írd be a `http-server` parancsot. Egy localhost megnyílik, és megtekintheted a webalkalmazásodat. Ellenőrizd, hogy milyen konyhát ajánl a különböző összetevők alapján:
+
+
+
+Gratulálok, létrehoztál egy 'ajánló' webalkalmazást néhány mezővel. Szánj időt arra, hogy továbbfejleszd ezt a rendszert!
+
+## 🚀Kihívás
+
+A webalkalmazásod nagyon minimális, így folytasd a fejlesztését az összetevők és azok indexei alapján a [összetevők indexei](../../../../4-Classification/data/ingredient_indexes.csv) adatból. Milyen ízkombinációk működnek egy adott nemzeti étel elkészítéséhez?
+
+## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Bár ez a lecke csak érintette az ételösszetevők ajánlórendszerének létrehozásának hasznosságát, ez a gépi tanulási alkalmazások területe nagyon gazdag példákban. Olvass többet arról, hogyan épülnek ezek a rendszerek:
+
+- https://www.sciencedirect.com/topics/computer-science/recommendation-engine
+- https://www.technologyreview.com/2014/08/25/171547/the-ultimate-challenge-for-recommendation-engines/
+- https://www.technologyreview.com/2015/03/23/168831/everything-is-a-recommendation/
+
+## Feladat
+
+[Építs egy új ajánlót](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/4-Classification/4-Applied/assignment.md b/translations/hu/4-Classification/4-Applied/assignment.md
new file mode 100644
index 00000000..be1bb724
--- /dev/null
+++ b/translations/hu/4-Classification/4-Applied/assignment.md
@@ -0,0 +1,25 @@
+
+# Ajánló készítése
+
+## Útmutató
+
+Az ebben a leckében végzett gyakorlatok alapján most már tudod, hogyan kell JavaScript-alapú webalkalmazást készíteni Onnx Runtime és egy konvertált Onnx modell segítségével. Kísérletezz egy új ajánló létrehozásával, amely az itt tanult adatokra vagy máshonnan származó adatokra épül (kérlek, tüntesd fel a forrást). Készíthetsz például egy háziállat-ajánlót különböző személyiségjegyek alapján, vagy egy zenei műfaj-ajánlót egy személy hangulata alapján. Légy kreatív!
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szoruló |
+| --------- | --------------------------------------------------------------------- | ------------------------------------- | --------------------------------- |
+| | Egy webalkalmazás és jegyzetfüzet kerül bemutatásra, mindkettő jól dokumentált és működőképes | Az egyik hiányzik vagy hibás | Mindkettő hiányzik vagy hibás |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/4-Classification/README.md b/translations/hu/4-Classification/README.md
new file mode 100644
index 00000000..2134081d
--- /dev/null
+++ b/translations/hu/4-Classification/README.md
@@ -0,0 +1,41 @@
+
+# Kezdjük a klasszifikációval
+
+## Regionális téma: Finom ázsiai és indiai konyhák 🍜
+
+Ázsiában és Indiában az étkezési hagyományok rendkívül sokszínűek és nagyon ízletesek! Nézzük meg a regionális konyhákról szóló adatokat, hogy jobban megértsük az összetevőiket.
+
+
+> Fotó: Lisheng Chang az Unsplash oldalán
+
+## Amit megtanulsz
+
+Ebben a részben az előzőekben tanult regresszióra építve megismerkedsz más osztályozókkal, amelyeket az adatok jobb megértéséhez használhatsz.
+
+> Hasznos, kevés kódolást igénylő eszközök is rendelkezésre állnak, amelyek segítenek az osztályozási modellekkel való munka elsajátításában. Próbáld ki az [Azure ML-t ehhez a feladathoz](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Leckék
+
+1. [Bevezetés az osztályozásba](1-Introduction/README.md)
+2. [További osztályozók](2-Classifiers-1/README.md)
+3. [Még több osztályozó](3-Classifiers-2/README.md)
+4. [Alkalmazott ML: webalkalmazás készítése](4-Applied/README.md)
+
+## Köszönetnyilvánítás
+
+A "Kezdjük a klasszifikációval" anyagot ♥️-val írták: [Cassie Breviu](https://www.twitter.com/cassiebreviu) és [Jen Looper](https://www.twitter.com/jenlooper)
+
+A finom konyhákról szóló adatkészlet a [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines) oldaláról származik.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/5-Clustering/1-Visualize/README.md b/translations/hu/5-Clustering/1-Visualize/README.md
new file mode 100644
index 00000000..3cf420cc
--- /dev/null
+++ b/translations/hu/5-Clustering/1-Visualize/README.md
@@ -0,0 +1,345 @@
+
+# Bevezetés a klaszterezéshez
+
+A klaszterezés a [felügyelet nélküli tanulás](https://wikipedia.org/wiki/Unsupervised_learning) egyik típusa, amely feltételezi, hogy az adathalmaz címkézetlen, vagy hogy a bemenetek nincsenek előre meghatározott kimenetekhez társítva. Különböző algoritmusokat használ a címkézetlen adatok rendezésére, és csoportosításokat hoz létre az adatokban észlelt minták alapján.
+
+[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
+
+> 🎥 Kattints a fenti képre egy videóért. Miközben a klaszterezéssel kapcsolatos gépi tanulást tanulmányozod, élvezd néhány nigériai Dance Hall számot - ez egy nagyon népszerű dal 2014-ből a PSquare-től.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+### Bevezetés
+
+A [klaszterezés](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) nagyon hasznos az adatok feltárásában. Nézzük meg, hogy segíthet-e trendek és minták felfedezésében a nigériai közönség zenehallgatási szokásai kapcsán.
+
+✅ Gondolkodj el egy percig a klaszterezés felhasználási lehetőségein. A való életben klaszterezés történik, amikor van egy halom mosnivaló, és szét kell válogatnod a családtagok ruháit 🧦👕👖🩲. Az adatkutatásban klaszterezés történik, amikor megpróbáljuk elemezni a felhasználó preferenciáit, vagy meghatározni egy címkézetlen adathalmaz jellemzőit. A klaszterezés bizonyos értelemben segít rendet teremteni a káoszban, mint például egy zoknis fiókban.
+
+[](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
+
+> 🎥 Kattints a fenti képre egy videóért: MIT John Guttag bemutatja a klaszterezést
+
+Egy szakmai környezetben a klaszterezést például piaci szegmentáció meghatározására lehet használni, például annak megállapítására, hogy mely korcsoportok vásárolnak milyen termékeket. Egy másik felhasználási terület lehet az anomáliák észlelése, például csalások felderítése egy hitelkártya-tranzakciókat tartalmazó adathalmazból. Vagy használhatod a klaszterezést daganatok azonosítására egy orvosi szkenekből álló adathalmazban.
+
+✅ Gondolkodj el egy percig azon, hogy találkoztál-e már klaszterezéssel a való életben, például banki, e-kereskedelmi vagy üzleti környezetben.
+
+> 🎓 Érdekes módon a klaszterelemzés az antropológia és pszichológia területén kezdődött az 1930-as években. El tudod képzelni, hogyan használhatták akkoriban?
+
+Alternatívaként használhatod keresési eredmények csoportosítására is - például vásárlási linkek, képek vagy vélemények alapján. A klaszterezés hasznos, ha van egy nagy adathalmaz, amelyet csökkenteni szeretnél, és amelyen részletesebb elemzést szeretnél végezni, így a technika segíthet az adatok megértésében, mielőtt más modelleket építenél.
+
+✅ Miután az adataid klaszterekbe szerveződtek, hozzárendelhetsz egy klaszterazonosítót, és ez a technika hasznos lehet az adathalmaz adatvédelmének megőrzésében; az adatpontokra a klaszterazonosítóval hivatkozhatsz, ahelyett, hogy azonosítható adatokat használnál. Tudsz más okokat is mondani, hogy miért hivatkoznál egy klaszterazonosítóra a klaszter más elemei helyett?
+
+Mélyítsd el a klaszterezési technikák megértését ebben a [Learn modulban](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)
+
+## Klaszterezés kezdőknek
+
+[A Scikit-learn számos módszert kínál](https://scikit-learn.org/stable/modules/clustering.html) a klaszterezés elvégzésére. Az, hogy melyiket választod, az esettől függ. A dokumentáció szerint minden módszernek megvannak a maga előnyei. Íme egy egyszerűsített táblázat a Scikit-learn által támogatott módszerekről és azok megfelelő felhasználási eseteiről:
+
+| Módszer neve | Felhasználási eset |
+| :--------------------------- | :--------------------------------------------------------------------- |
+| K-Means | általános célú, induktív |
+| Affinity propagation | sok, egyenetlen klaszterek, induktív |
+| Mean-shift | sok, egyenetlen klaszterek, induktív |
+| Spectral clustering | kevés, egyenletes klaszterek, transzduktív |
+| Ward hierarchical clustering | sok, korlátozott klaszterek, transzduktív |
+| Agglomerative clustering | sok, korlátozott, nem euklideszi távolságok, transzduktív |
+| DBSCAN | nem sík geometria, egyenetlen klaszterek, transzduktív |
+| OPTICS | nem sík geometria, egyenetlen klaszterek változó sűrűséggel, transzduktív |
+| Gaussian mixtures | sík geometria, induktív |
+| BIRCH | nagy adathalmaz kiugró értékekkel, induktív |
+
+> 🎓 Az, hogy hogyan hozunk létre klasztereket, nagyban függ attól, hogyan gyűjtjük össze az adatpontokat csoportokba. Nézzük meg néhány szakkifejezést:
+>
+> 🎓 ['Transzduktív' vs. 'induktív'](https://wikipedia.org/wiki/Transduction_(machine_learning))
+>
+> A transzduktív következtetés megfigyelt tanulási esetekből származik, amelyek konkrét tesztesetekhez kapcsolódnak. Az induktív következtetés tanulási esetekből származik, amelyek általános szabályokat alkotnak, amelyeket csak ezután alkalmaznak a tesztesetekre.
+>
+> Példa: Képzeld el, hogy van egy adathalmazod, amely csak részben van címkézve. Néhány elem 'lemezek', néhány 'cd-k', és néhány üres. A feladatod az üres elemek címkézése. Ha induktív megközelítést választasz, egy modellt tanítasz 'lemezek' és 'cd-k' keresésére, és ezeket a címkéket alkalmazod a címkézetlen adatokra. Ez a megközelítés nehézségekbe ütközhet olyan dolgok osztályozásában, amelyek valójában 'kazetták'. A transzduktív megközelítés viszont hatékonyabban kezeli ezt az ismeretlen adatot, mivel hasonló elemeket csoportosít, majd címkét alkalmaz egy csoportra. Ebben az esetben a klaszterek lehetnek 'kerek zenei dolgok' és 'szögletes zenei dolgok'.
+>
+> 🎓 ['Nem sík' vs. 'sík' geometria](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
+>
+> Matematikai terminológiából származik, a nem sík vs. sík geometria az adatpontok közötti távolságok mérésére utal, akár 'sík' ([euklideszi](https://wikipedia.org/wiki/Euclidean_geometry)), akár 'nem sík' (nem euklideszi) geometriai módszerekkel.
+>
+>'Sík' ebben az összefüggésben az euklideszi geometriára utal (amelynek részeit 'síkmértan' néven tanítják), míg a nem sík a nem euklideszi geometriára utal. Mi köze van a geometriának a gépi tanuláshoz? Nos, mivel mindkét terület matematikai alapokon nyugszik, szükség van egy közös módszerre az adatpontok közötti távolságok mérésére a klaszterekben, és ezt 'sík' vagy 'nem sík' módon lehet megtenni, az adatok természetétől függően. Az [euklideszi távolságokat](https://wikipedia.org/wiki/Euclidean_distance) két pont közötti vonalszakasz hosszával mérik. A [nem euklideszi távolságokat](https://wikipedia.org/wiki/Non-Euclidean_geometry) görbe mentén mérik. Ha az adataid, vizualizálva, nem síkban léteznek, akkor speciális algoritmusra lehet szükséged a kezelésükhöz.
+>
+
+> Infografika: [Dasani Madipalli](https://twitter.com/dasani_decoded)
+>
+> 🎓 ['Távolságok'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
+>
+> A klasztereket a távolságmátrixuk határozza meg, például az adatpontok közötti távolságok. Ez a távolság többféleképpen mérhető. Az euklideszi klasztereket az adatpontok értékeinek átlaga határozza meg, és tartalmaznak egy 'centroidot' vagy középpontot. A távolságokat így a centroidtól való távolság alapján mérik. A nem euklideszi távolságok 'clustroidok'-ra utalnak, az adatpontra, amely a legközelebb van más pontokhoz. A clustroidokat különböző módon lehet meghatározni.
+>
+> 🎓 ['Korlátozott'](https://wikipedia.org/wiki/Constrained_clustering)
+>
+> A [korlátozott klaszterezés](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) 'félig felügyelt' tanulást vezet be ebbe a felügyelet nélküli módszerbe. Az adatpontok közötti kapcsolatokat 'nem kapcsolható' vagy 'kapcsolható' címkékkel jelölik, így bizonyos szabályokat kényszerítenek az adathalmazra.
+>
+>Példa: Ha egy algoritmus szabadon működik egy címkézetlen vagy félig címkézett adathalmazon, az általa létrehozott klaszterek gyenge minőségűek lehetnek. A fenti példában a klaszterek lehetnek 'kerek zenei dolgok', 'szögletes zenei dolgok', 'háromszög alakú dolgok' és 'sütik'. Ha néhány korlátozást vagy szabályt adunk meg ("az elemnek műanyagból kell készülnie", "az elemnek zenét kell tudnia produkálni"), ez segíthet az algoritmusnak jobb döntéseket hozni.
+>
+> 🎓 'Sűrűség'
+>
+> Az 'zajos' adatokat 'sűrűnek' tekintik. Az egyes klaszterekben lévő pontok közötti távolságok vizsgálatakor kiderülhet, hogy ezek a távolságok többé-kevésbé sűrűek, vagy 'zsúfoltak', és így az ilyen adatokat megfelelő klaszterezési módszerrel kell elemezni. [Ez a cikk](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) bemutatja a különbséget a K-Means klaszterezés és a HDBSCAN algoritmusok használata között egy zajos adathalmaz egyenetlen klasztersűrűségének feltárására.
+
+## Klaszterezési algoritmusok
+
+Több mint 100 klaszterezési algoritmus létezik, és használatuk az adott adatok természetétől függ. Nézzük meg néhány főbb típust:
+
+- **Hierarchikus klaszterezés**. Ha egy objektumot a közeli objektumhoz való közelsége alapján osztályoznak, nem pedig egy távolabbihoz, akkor a klaszterek az objektumok egymáshoz való távolsága alapján alakulnak ki. A Scikit-learn agglomeratív klaszterezése hierarchikus.
+
+ 
+ > Infografika: [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Centroid klaszterezés**. Ez a népszerű algoritmus megköveteli a 'k' választását, vagyis a létrehozandó klaszterek számát, majd az algoritmus meghatározza a klaszter középpontját, és az adatokat e pont köré gyűjti. A [K-means klaszterezés](https://wikipedia.org/wiki/K-means_clustering) a centroid klaszterezés népszerű változata. A középpontot a legközelebbi átlag határozza meg, innen ered a neve. A klasztertől való négyzetes távolság minimalizálva van.
+
+ 
+ > Infografika: [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Eloszlás-alapú klaszterezés**. Statisztikai modellezésen alapul, az eloszlás-alapú klaszterezés középpontjában annak valószínűsége áll, hogy egy adatpont egy klaszterhez tartozik, és ennek megfelelően osztja be. A Gauss-keverék módszerek ehhez a típushoz tartoznak.
+
+- **Sűrűség-alapú klaszterezés**. Az adatpontokat klaszterekhez rendelik azok sűrűsége, vagy egymás körüli csoportosulásuk alapján. Az adatpontokat, amelyek távol vannak a csoporttól, kiugró értékeknek vagy zajnak tekintik. A DBSCAN, Mean-shift és OPTICS ehhez a típushoz tartoznak.
+
+- **Rács-alapú klaszterezés**. Többdimenziós adathalmazok esetén egy rácsot hoznak létre, és az adatokat a rács cellái között osztják el, így klasztereket hozva létre.
+
+## Gyakorlat - klaszterezd az adataidat
+
+A klaszterezés mint technika nagyban segíti a megfelelő vizualizáció, ezért kezdjük azzal, hogy vizualizáljuk a zenei adatainkat. Ez a gyakorlat segít eldönteni, hogy a klaszterezési módszerek közül melyiket használjuk a legjobban az adatok természetéhez.
+
+1. Nyisd meg a [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) fájlt ebben a mappában.
+
+1. Importáld a `Seaborn` csomagot a jó adatvizualizáció érdekében.
+
+ ```python
+ !pip install seaborn
+ ```
+
+1. Töltsd be a daladatokat a [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) fájlból. Töltsd be egy adatkeretbe néhány adatot a dalokról. Készülj fel az adatok feltárására a könyvtárak importálásával és az adatok kiírásával:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import pandas as pd
+
+ df = pd.read_csv("../data/nigerian-songs.csv")
+ df.head()
+ ```
+
+ Ellenőrizd az adatok első néhány sorát:
+
+ | | név | album | előadó | előadó_top_műfaj | megjelenési_dátum | hossz | népszerűség | táncolhatóság | akusztikusság | energia | hangszeresség | élénkség | hangosság | beszédesség | tempó | idő_aláírás |
+ | --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ----------------
+| 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 |
+| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 |
+| 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 |
+
+1. Szerezzünk némi információt az adatkeretről az `info()` hívásával:
+
+ ```python
+ df.info()
+ ```
+
+ Az eredmény így néz ki:
+
+ ```output
+
+ RangeIndex: 530 entries, 0 to 529
+ Data columns (total 16 columns):
+ # Column Non-Null Count Dtype
+ --- ------ -------------- -----
+ 0 name 530 non-null object
+ 1 album 530 non-null object
+ 2 artist 530 non-null object
+ 3 artist_top_genre 530 non-null object
+ 4 release_date 530 non-null int64
+ 5 length 530 non-null int64
+ 6 popularity 530 non-null int64
+ 7 danceability 530 non-null float64
+ 8 acousticness 530 non-null float64
+ 9 energy 530 non-null float64
+ 10 instrumentalness 530 non-null float64
+ 11 liveness 530 non-null float64
+ 12 loudness 530 non-null float64
+ 13 speechiness 530 non-null float64
+ 14 tempo 530 non-null float64
+ 15 time_signature 530 non-null int64
+ dtypes: float64(8), int64(4), object(4)
+ memory usage: 66.4+ KB
+ ```
+
+1. Ellenőrizzük a null értékeket az `isnull()` hívásával, és győződjünk meg róla, hogy az összeg 0:
+
+ ```python
+ df.isnull().sum()
+ ```
+
+ Minden rendben:
+
+ ```output
+ name 0
+ album 0
+ artist 0
+ artist_top_genre 0
+ release_date 0
+ length 0
+ popularity 0
+ danceability 0
+ acousticness 0
+ energy 0
+ instrumentalness 0
+ liveness 0
+ loudness 0
+ speechiness 0
+ tempo 0
+ time_signature 0
+ dtype: int64
+ ```
+
+1. Írjuk le az adatokat:
+
+ ```python
+ df.describe()
+ ```
+
+ | | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
+ | ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- |
+ | count | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 |
+ | mean | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011 | 0.130748 | 116.487864 | 3.986792 |
+ | std | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 |
+ | min | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 |
+ | 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 |
+ | 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 |
+ | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
+ | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
+
+> 🤔 Ha klaszterezéssel dolgozunk, ami egy felügyelet nélküli módszer, amely nem igényel címkézett adatokat, miért mutatjuk ezeket az adatokat címkékkel? Az adatfeltárási fázisban hasznosak lehetnek, de a klaszterezési algoritmusok működéséhez nem szükségesek. Akár el is távolíthatnánk az oszlopfejléceket, és az adatokra oszlopszám alapján hivatkozhatnánk.
+
+Nézzük meg az adatok általános értékeit. Vegyük észre, hogy a népszerűség lehet '0', ami azt mutatja, hogy a daloknak nincs rangsorolása. Távolítsuk el ezeket hamarosan.
+
+1. Használjunk oszlopdiagramot a legnépszerűbb műfajok megállapításához:
+
+ ```python
+ import seaborn as sns
+
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top[:5].index,y=top[:5].values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ 
+
+✅ Ha szeretnél több legjobb értéket látni, változtasd meg a top `[:5]` értékét nagyobbra, vagy távolítsd el, hogy mindet lásd.
+
+Figyelj, ha a legnépszerűbb műfaj 'Missing'-ként van leírva, az azt jelenti, hogy a Spotify nem osztályozta, ezért távolítsuk el.
+
+1. Távolítsuk el a hiányzó adatokat szűréssel:
+
+ ```python
+ df = df[df['artist_top_genre'] != 'Missing']
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ Most ellenőrizzük újra a műfajokat:
+
+ 
+
+1. Messze a három legnépszerűbb műfaj uralja ezt az adatállományt. Koncentráljunk az `afro dancehall`, `afropop` és `nigerian pop` műfajokra, és szűrjük az adatállományt, hogy eltávolítsuk azokat, amelyek népszerűségi értéke 0 (ami azt jelenti, hogy nem osztályozták népszerűséggel az adatállományban, és zajnak tekinthetők a céljaink szempontjából):
+
+ ```python
+ df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
+ df = df[(df['popularity'] > 0)]
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+1. Végezzünk egy gyors tesztet, hogy lássuk, van-e az adatok között különösen erős korreláció:
+
+ ```python
+ corrmat = df.corr(numeric_only=True)
+ f, ax = plt.subplots(figsize=(12, 9))
+ sns.heatmap(corrmat, vmax=.8, square=True)
+ ```
+
+ 
+
+ Az egyetlen erős korreláció az `energy` és a `loudness` között van, ami nem túl meglepő, mivel a hangos zene általában elég energikus. Egyébként a korrelációk viszonylag gyengék. Érdekes lesz látni, hogy mit tud kezdeni egy klaszterezési algoritmus ezekkel az adatokkal.
+
+ > 🎓 Ne feledd, hogy a korreláció nem jelent ok-okozati összefüggést! Van bizonyítékunk a korrelációra, de nincs bizonyítékunk az ok-okozati összefüggésre. Egy [szórakoztató weboldal](https://tylervigen.com/spurious-correlations) vizuális példákat mutat be, amelyek hangsúlyozzák ezt a pontot.
+
+Van-e bármilyen konvergencia ebben az adatállományban a dalok érzékelt népszerűsége és táncolhatósága körül? Egy FacetGrid megmutatja, hogy koncentrikus körök alakulnak ki, műfajtól függetlenül. Lehet, hogy a nigériai ízlés egy bizonyos táncolhatósági szinten konvergál ezeknél a műfajoknál?
+
+✅ Próbálj ki különböző adatpontokat (energy, loudness, speechiness) és több vagy más zenei műfajokat. Mit fedezhetsz fel? Nézd meg a `df.describe()` táblázatot, hogy lásd az adatpontok általános eloszlását.
+
+### Gyakorlat - adateloszlás
+
+Jelentősen különbözik-e ez a három műfaj a táncolhatóság érzékelésében a népszerűségük alapján?
+
+1. Vizsgáljuk meg a három legnépszerűbb műfaj adateloszlását a népszerűség és táncolhatóság mentén egy adott x és y tengelyen.
+
+ ```python
+ sns.set_theme(style="ticks")
+
+ g = sns.jointplot(
+ data=df,
+ x="popularity", y="danceability", hue="artist_top_genre",
+ kind="kde",
+ )
+ ```
+
+ Felfedezhetsz koncentrikus köröket egy általános konvergenciapont körül, amelyek az eloszlási pontokat mutatják.
+
+ > 🎓 Ne feledd, hogy ez a példa egy KDE (Kernel Density Estimate) grafikont használ, amely az adatokat egy folyamatos valószínűségi sűrűség görbével ábrázolja. Ez lehetővé teszi az adatok értelmezését több eloszlás esetén.
+
+ Általánosságban elmondható, hogy a három műfaj lazán igazodik a népszerűségük és táncolhatóságuk tekintetében. Klaszterek meghatározása ebben a lazán igazodó adatokban kihívást jelent:
+
+ 
+
+1. Készítsünk egy szórásdiagramot:
+
+ ```python
+ sns.FacetGrid(df, hue="artist_top_genre", height=5) \
+ .map(plt.scatter, "popularity", "danceability") \
+ .add_legend()
+ ```
+
+ Ugyanazon tengelyek szórásdiagramja hasonló konvergenciamintát mutat
+
+ 
+
+Általánosságban elmondható, hogy a klaszterezéshez használhatsz szórásdiagramokat az adatok klasztereinek megjelenítésére, így ennek a vizualizációs típusnak a elsajátítása nagyon hasznos. A következő leckében ezt a szűrt adatot fogjuk használni, és k-means klaszterezéssel fedezünk fel csoportokat az adatokban, amelyek érdekes módon átfedhetnek.
+
+---
+
+## 🚀Kihívás
+
+A következő lecke előkészítéseként készíts egy diagramot a különböző klaszterezési algoritmusokról, amelyeket felfedezhetsz és használhatsz egy termelési környezetben. Milyen problémákat próbál megoldani a klaszterezés?
+
+## [Utó-lecke kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Mielőtt klaszterezési algoritmusokat alkalmaznál, ahogy megtanultuk, jó ötlet megérteni az adatállomány természetét. Olvass többet erről a témáról [itt](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
+
+[Ez a hasznos cikk](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) bemutatja, hogyan viselkednek különböző klaszterezési algoritmusok különböző adatformák esetén.
+
+## Feladat
+
+[Kutatás más vizualizációkról a klaszterezéshez](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/5-Clustering/1-Visualize/assignment.md b/translations/hu/5-Clustering/1-Visualize/assignment.md
new file mode 100644
index 00000000..bc7b617f
--- /dev/null
+++ b/translations/hu/5-Clustering/1-Visualize/assignment.md
@@ -0,0 +1,25 @@
+
+# Kutatás más vizualizációs módszerekről klaszterezéshez
+
+## Útmutató
+
+Ebben a leckében néhány vizualizációs technikával dolgoztál, hogy felkészülj az adatok klaszterezés előtti ábrázolására. Különösen a szórásdiagramok hasznosak az objektumcsoportok megtalálásához. Kutass különböző módszereket és könyvtárakat szórásdiagramok készítéséhez, és dokumentáld a munkádat egy jegyzetfüzetben. Használhatod az ebben a leckében szereplő adatokat, más leckék adatait, vagy saját magad által beszerzett adatokat (kérlek, tüntesd fel az adat forrását a jegyzetfüzetben). Ábrázolj néhány adatot szórásdiagramok segítségével, és magyarázd el, mit fedeztél fel.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------- |
+| | Egy jegyzetfüzet öt jól dokumentált szórásdiagrammal | Egy jegyzetfüzet kevesebb mint öt szórásdiagrammal, kevésbé jól dokumentálva | Hiányos jegyzetfüzet kerül bemutatásra |
+
+---
+
+**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 az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.
\ No newline at end of file
diff --git a/translations/hu/5-Clustering/1-Visualize/solution/Julia/README.md b/translations/hu/5-Clustering/1-Visualize/solution/Julia/README.md
new file mode 100644
index 00000000..d7ab35dd
--- /dev/null
+++ b/translations/hu/5-Clustering/1-Visualize/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/5-Clustering/2-K-Means/README.md b/translations/hu/5-Clustering/2-K-Means/README.md
new file mode 100644
index 00000000..ddcb79a2
--- /dev/null
+++ b/translations/hu/5-Clustering/2-K-Means/README.md
@@ -0,0 +1,261 @@
+
+# K-Means klaszterezés
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+Ebben a leckében megtanulod, hogyan hozz létre klasztereket a Scikit-learn és az előzőekben importált nigériai zenei adatállomány segítségével. Áttekintjük a K-Means alapjait a klaszterezéshez. Ne feledd, ahogy az előző leckében tanultad, számos módja van a klaszterekkel való munkának, és az alkalmazott módszer az adataidtól függ. Kipróbáljuk a K-Means-t, mivel ez a leggyakoribb klaszterezési technika. Kezdjük!
+
+Fogalmak, amelyeket megismerhetsz:
+
+- Silhouette pontszám
+- Könyökmódszer
+- Inertia
+- Variancia
+
+## Bevezetés
+
+A [K-Means klaszterezés](https://wikipedia.org/wiki/K-means_clustering) a jelfeldolgozás területéről származó módszer. Arra használják, hogy az adatokat 'k' klaszterekbe osszák és csoportosítsák megfigyelések sorozata alapján. Minden megfigyelés arra törekszik, hogy az adott adatpontot a legközelebbi 'átlaghoz', vagyis egy klaszter középpontjához csoportosítsa.
+
+A klaszterek [Voronoi diagramokként](https://wikipedia.org/wiki/Voronoi_diagram) is megjeleníthetők, amelyek tartalmaznak egy pontot (vagy 'magot') és annak megfelelő régióját.
+
+
+
+> Infografika: [Jen Looper](https://twitter.com/jenlooper)
+
+A K-Means klaszterezési folyamat [három lépésben zajlik](https://scikit-learn.org/stable/modules/clustering.html#k-means):
+
+1. Az algoritmus kiválasztja az adatállományból k számú középpontot mintavételezéssel. Ezután ismétlődően:
+ 1. Minden mintát hozzárendel a legközelebbi centroidhoz.
+ 2. Új centroidokat hoz létre az előző centroidokhoz rendelt minták átlagértéke alapján.
+ 3. Ezután kiszámítja az új és régi centroidok közötti különbséget, és addig ismétli, amíg a centroidok stabilizálódnak.
+
+A K-Means használatának egyik hátránya, hogy meg kell határoznod 'k'-t, azaz a centroidok számát. Szerencsére a 'könyökmódszer' segít egy jó kiindulási érték becslésében 'k'-hoz. Mindjárt kipróbáljuk.
+
+## Előfeltétel
+
+Ebben a lecke [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb) fájljában fogsz dolgozni, amely tartalmazza az előző leckében végzett adatimportálást és előzetes tisztítást.
+
+## Gyakorlat - előkészítés
+
+Kezdd azzal, hogy újra megnézed a dalok adatait.
+
+1. Hozz létre egy boxplotot, és hívd meg a `boxplot()` függvényt minden oszlopra:
+
+ ```python
+ plt.figure(figsize=(20,20), dpi=200)
+
+ plt.subplot(4,3,1)
+ sns.boxplot(x = 'popularity', data = df)
+
+ plt.subplot(4,3,2)
+ sns.boxplot(x = 'acousticness', data = df)
+
+ plt.subplot(4,3,3)
+ sns.boxplot(x = 'energy', data = df)
+
+ plt.subplot(4,3,4)
+ sns.boxplot(x = 'instrumentalness', data = df)
+
+ plt.subplot(4,3,5)
+ sns.boxplot(x = 'liveness', data = df)
+
+ plt.subplot(4,3,6)
+ sns.boxplot(x = 'loudness', data = df)
+
+ plt.subplot(4,3,7)
+ sns.boxplot(x = 'speechiness', data = df)
+
+ plt.subplot(4,3,8)
+ sns.boxplot(x = 'tempo', data = df)
+
+ plt.subplot(4,3,9)
+ sns.boxplot(x = 'time_signature', data = df)
+
+ plt.subplot(4,3,10)
+ sns.boxplot(x = 'danceability', data = df)
+
+ plt.subplot(4,3,11)
+ sns.boxplot(x = 'length', data = df)
+
+ plt.subplot(4,3,12)
+ sns.boxplot(x = 'release_date', data = df)
+ ```
+
+ Ez az adat kissé zajos: az egyes oszlopok boxplotjait megfigyelve láthatod a kiugró értékeket.
+
+ 
+
+Az adatállományt átnézve eltávolíthatnád ezeket a kiugró értékeket, de ez az adatokat eléggé minimalizálná.
+
+1. Egyelőre válaszd ki, mely oszlopokat fogod használni a klaszterezési gyakorlatban. Válassz olyanokat, amelyek hasonló tartományokkal rendelkeznek, és kódold az `artist_top_genre` oszlopot numerikus adatként:
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+ le = LabelEncoder()
+
+ X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')]
+
+ y = df['artist_top_genre']
+
+ X['artist_top_genre'] = le.fit_transform(X['artist_top_genre'])
+
+ y = le.transform(y)
+ ```
+
+1. Most meg kell határoznod, hány klasztert célozz meg. Tudod, hogy az adatállományból 3 zenei műfajt választottunk ki, így próbáljuk meg a 3-at:
+
+ ```python
+ from sklearn.cluster import KMeans
+
+ nclusters = 3
+ seed = 0
+
+ km = KMeans(n_clusters=nclusters, random_state=seed)
+ km.fit(X)
+
+ # Predict the cluster for each data point
+
+ y_cluster_kmeans = km.predict(X)
+ y_cluster_kmeans
+ ```
+
+Egy tömböt látsz, amely az adatkeret minden sorára előrejelzett klasztereket (0, 1 vagy 2) tartalmaz.
+
+1. Használd ezt a tömböt egy 'silhouette pontszám' kiszámításához:
+
+ ```python
+ from sklearn import metrics
+ score = metrics.silhouette_score(X, y_cluster_kmeans)
+ score
+ ```
+
+## Silhouette pontszám
+
+Keress egy silhouette pontszámot, amely közelebb van az 1-hez. Ez a pontszám -1 és 1 között változik, és ha a pontszám 1, akkor a klaszter sűrű és jól elkülönül a többi klasztertől. A 0-hoz közeli érték átfedő klasztereket jelöl, ahol a minták nagyon közel vannak a szomszédos klaszterek döntési határához. [(Forrás)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
+
+A pontszámunk **.53**, tehát középen van. Ez azt jelzi, hogy az adataink nem különösebben alkalmasak erre a klaszterezési típusra, de folytassuk.
+
+### Gyakorlat - modell építése
+
+1. Importáld a `KMeans`-t, és kezdj bele a klaszterezési folyamatba.
+
+ ```python
+ from sklearn.cluster import KMeans
+ wcss = []
+
+ for i in range(1, 11):
+ kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)
+ kmeans.fit(X)
+ wcss.append(kmeans.inertia_)
+
+ ```
+
+ Néhány részlet magyarázatra szorul.
+
+ > 🎓 range: Ezek a klaszterezési folyamat iterációi.
+
+ > 🎓 random_state: "Meghatározza a véletlenszám-generálást a centroid inicializálásához." [Forrás](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
+
+ > 🎓 WCSS: "a klaszteren belüli négyzetes összeg" méri az összes pont átlagos négyzetes távolságát a klaszter centroidjától. [Forrás](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
+
+ > 🎓 Inertia: A K-Means algoritmusok arra törekednek, hogy olyan centroidokat válasszanak, amelyek minimalizálják az 'inertia'-t, "a klaszterek belső koherenciájának mértékét." [Forrás](https://scikit-learn.org/stable/modules/clustering.html). Az értéket minden iteráció során hozzáadjuk a wcss változóhoz.
+
+ > 🎓 k-means++: A [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) használatával alkalmazhatod a 'k-means++' optimalizálást, amely "általában egymástól távoli centroidokat inicializál, valószínűleg jobb eredményeket eredményezve, mint a véletlenszerű inicializálás."
+
+### Könyökmódszer
+
+Korábban feltételezted, hogy mivel 3 zenei műfajt céloztál meg, 3 klasztert kell választanod. De valóban így van?
+
+1. Használd a 'könyökmódszert', hogy megbizonyosodj róla.
+
+ ```python
+ plt.figure(figsize=(10,5))
+ sns.lineplot(x=range(1, 11), y=wcss, marker='o', color='red')
+ plt.title('Elbow')
+ plt.xlabel('Number of clusters')
+ plt.ylabel('WCSS')
+ plt.show()
+ ```
+
+ Használd a korábbi lépésben létrehozott `wcss` változót, hogy készíts egy diagramot, amely megmutatja, hol van a 'kanyar' a könyökben, ami a klaszterek optimális számát jelzi. Talán tényleg **3**!
+
+ 
+
+## Gyakorlat - klaszterek megjelenítése
+
+1. Próbáld újra a folyamatot, ezúttal három klasztert beállítva, és jelenítsd meg a klasztereket szórásdiagramként:
+
+ ```python
+ from sklearn.cluster import KMeans
+ kmeans = KMeans(n_clusters = 3)
+ kmeans.fit(X)
+ labels = kmeans.predict(X)
+ plt.scatter(df['popularity'],df['danceability'],c = labels)
+ plt.xlabel('popularity')
+ plt.ylabel('danceability')
+ plt.show()
+ ```
+
+1. Ellenőrizd a modell pontosságát:
+
+ ```python
+ labels = kmeans.labels_
+
+ correct_labels = sum(y == labels)
+
+ print("Result: %d out of %d samples were correctly labeled." % (correct_labels, y.size))
+
+ print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size)))
+ ```
+
+ Ennek a modellnek a pontossága nem túl jó, és a klaszterek alakja ad egy tippet, hogy miért.
+
+ 
+
+ Ezek az adatok túl kiegyensúlyozatlanok, túl kevéssé korreláltak, és az oszlopértékek között túl nagy a variancia ahhoz, hogy jól klaszterezhetők legyenek. Valójában az általunk meghatározott három műfajkategória valószínűleg erősen befolyásolja vagy torzítja a kialakuló klasztereket. Ez egy tanulási folyamat volt!
+
+ A Scikit-learn dokumentációjában láthatod, hogy egy ilyen modell, ahol a klaszterek nem nagyon jól elkülönültek, 'variancia' problémával küzd:
+
+ 
+ > Infografika: Scikit-learn
+
+## Variancia
+
+A variancia úgy definiálható, mint "az átlagtól való négyzetes eltérések átlaga" [(Forrás)](https://www.mathsisfun.com/data/standard-deviation.html). Ebben a klaszterezési problémában arra utal, hogy az adatállomány számai hajlamosak túlzottan eltérni az átlagtól.
+
+✅ Ez egy remek pillanat arra, hogy átgondold, milyen módokon javíthatnád ezt a problémát. Finomítsd az adatokat? Használj más oszlopokat? Próbálj ki egy másik algoritmust? Tipp: Próbáld meg [normalizálni az adatokat](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) és tesztelj más oszlopokat.
+
+> Próbáld ki ezt a '[variancia kalkulátort](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)', hogy jobban megértsd a fogalmat.
+
+---
+
+## 🚀Kihívás
+
+Tölts el egy kis időt ezzel a notebookkal, és finomítsd a paramétereket. Javíthatod-e a modell pontosságát az adatok további tisztításával (például a kiugró értékek eltávolításával)? Használhatsz súlyokat, hogy bizonyos adatmintáknak nagyobb súlyt adj. Mit tehetsz még a jobb klaszterek létrehozása érdekében?
+
+Tipp: Próbáld meg skálázni az adatokat. A notebookban van kommentált kód, amely hozzáadja a standard skálázást, hogy az adatállomány oszlopai jobban hasonlítsanak egymásra tartomány szempontjából. Meg fogod látni, hogy bár a silhouette pontszám csökken, a könyök grafikon 'kanyarja' kisimul. Ez azért van, mert az adatok skálázatlanul hagyása lehetővé teszi, hogy a kisebb varianciájú adatok nagyobb súlyt kapjanak. Olvass többet erről a problémáról [itt](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226).
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Nézd meg egy K-Means szimulátort [például ezt](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). Ezzel az eszközzel vizualizálhatod a mintapontokat és meghatározhatod a centroidokat. Szerkesztheted az adatok véletlenszerűségét, a klaszterek számát és a centroidok számát. Segít ez abban, hogy jobban megértsd, hogyan csoportosíthatók az adatok?
+
+Nézd meg [ezt a K-Means segédanyagot](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) a Stanfordtól.
+
+## Feladat
+
+[Próbálj ki különböző klaszterezési módszereket](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/5-Clustering/2-K-Means/assignment.md b/translations/hu/5-Clustering/2-K-Means/assignment.md
new file mode 100644
index 00000000..74bfca99
--- /dev/null
+++ b/translations/hu/5-Clustering/2-K-Means/assignment.md
@@ -0,0 +1,25 @@
+
+# Próbálj ki különböző klaszterezési módszereket
+
+## Útmutató
+
+Ebben a leckében a K-Means klaszterezésről tanultál. Néha a K-Means nem megfelelő az adataidhoz. Készíts egy notebookot, amelyben az itt tanult adatokkal vagy más forrásból származó adatokkal dolgozol (ne felejtsd el megadni a forrást), és mutass be egy másik klaszterezési módszert, amely nem K-Means. Mit tanultál ebből?
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | -------------------------------------------------------------- | ------------------------------------------------------------------- | ---------------------------- |
+| | Egy notebook kerül bemutatásra jól dokumentált klaszterezési modellel | Egy notebook kerül bemutatásra, de hiányos dokumentációval és/vagy nem teljes | Hiányos munka kerül benyújtásra |
+
+---
+
+**Felelősség kizárása**:
+Ez 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 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
diff --git a/translations/hu/5-Clustering/2-K-Means/solution/Julia/README.md b/translations/hu/5-Clustering/2-K-Means/solution/Julia/README.md
new file mode 100644
index 00000000..d3dbf95a
--- /dev/null
+++ b/translations/hu/5-Clustering/2-K-Means/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/5-Clustering/README.md b/translations/hu/5-Clustering/README.md
new file mode 100644
index 00000000..4824a4b7
--- /dev/null
+++ b/translations/hu/5-Clustering/README.md
@@ -0,0 +1,42 @@
+
+# Gépi tanulási klaszterezési modellek
+
+A klaszterezés egy gépi tanulási feladat, amelynek célja, hogy megtalálja az egymáshoz hasonló objektumokat, és ezeket csoportokba, úgynevezett klaszterekbe rendezze. Ami megkülönbözteti a klaszterezést a gépi tanulás más megközelítéseitől, az az, hogy a folyamat automatikusan történik; valójában mondhatjuk, hogy ez az ellenkezője a felügyelt tanulásnak.
+
+## Regionális téma: klaszterezési modellek a nigériai közönség zenei ízléséhez 🎧
+
+Nigéria sokszínű közönsége sokféle zenei ízléssel rendelkezik. A Spotify-ról gyűjtött adatok felhasználásával (az [ebben a cikkben](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421) inspirálódva) nézzük meg néhány Nigériában népszerű zenét. Ez az adatállomány tartalmaz információkat különböző dalok "táncolhatósági" pontszámáról, "akusztikusságáról", hangosságáról, "beszédességéről", népszerűségéről és energiájáról. Érdekes lesz mintázatokat felfedezni ezekben az adatokban!
+
+
+
+> Fotó: Marcela Laskoski az Unsplash oldalán
+
+Ebben a leckesorozatban új módszereket fedezhetsz fel az adatok elemzésére klaszterezési technikák segítségével. A klaszterezés különösen hasznos, ha az adatállományod nem tartalmaz címkéket. Ha vannak címkék, akkor az előző leckékben tanult osztályozási technikák hasznosabbak lehetnek. De ha címkézetlen adatokat szeretnél csoportosítani, a klaszterezés nagyszerű módja a mintázatok felfedezésének.
+
+> Hasznos alacsony kódú eszközök állnak rendelkezésre, amelyek segítenek a klaszterezési modellekkel való munkában. Próbáld ki az [Azure ML-t erre a feladatra](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Leckék
+
+1. [Bevezetés a klaszterezésbe](1-Visualize/README.md)
+2. [K-Means klaszterezés](2-K-Means/README.md)
+
+## Köszönetnyilvánítás
+
+Ezeket a leckéket 🎶-vel írta [Jen Looper](https://www.twitter.com/jenlooper), hasznos véleményekkel [Rishit Dagli](https://rishit_dagli) és [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) részéről.
+
+A [Nigériai dalok](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) adatállományt a Kaggle-ről származtatták, a Spotify-ról gyűjtve.
+
+Hasznos K-Means példák, amelyek segítettek a lecke elkészítésében: ez az [iris elemzés](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), ez a [bevezető notebook](https://www.kaggle.com/prashant111/k-means-clustering-with-python), és ez a [hipotetikus NGO példa](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering).
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/1-Introduction-to-NLP/README.md b/translations/hu/6-NLP/1-Introduction-to-NLP/README.md
new file mode 100644
index 00000000..3a675922
--- /dev/null
+++ b/translations/hu/6-NLP/1-Introduction-to-NLP/README.md
@@ -0,0 +1,179 @@
+
+# Bevezetés a természetes nyelvfeldolgozásba
+
+Ez a lecke a *természetes nyelvfeldolgozás* rövid történetét és fontos fogalmait tárgyalja, amely a *számítógépes nyelvészet* egyik részterülete.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Bevezetés
+
+Az NLP, ahogy általában nevezik, az egyik legismertebb terület, ahol a gépi tanulást alkalmazták és használták a gyártási szoftverekben.
+
+✅ Tudsz olyan szoftverre gondolni, amit naponta használsz, és valószínűleg van benne valamilyen NLP? Mi a helyzet a szövegszerkesztő programokkal vagy a rendszeresen használt mobilalkalmazásokkal?
+
+A következőkről fogsz tanulni:
+
+- **A nyelvek fogalma**. Hogyan fejlődtek a nyelvek, és mik voltak a főbb kutatási területek.
+- **Definíciók és fogalmak**. Megismered a szöveg számítógépes feldolgozásának definícióit és fogalmait, beleértve a szintaktikai elemzést, a nyelvtant, valamint a főnevek és igék azonosítását. Ebben a leckében lesznek kódolási feladatok, és számos fontos fogalmat mutatunk be, amelyeket a következő leckékben kódolni is megtanulsz.
+
+## Számítógépes nyelvészet
+
+A számítógépes nyelvészet egy évtizedek óta tartó kutatási és fejlesztési terület, amely azt vizsgálja, hogyan tudnak a számítógépek nyelvekkel dolgozni, megérteni, fordítani és kommunikálni. A természetes nyelvfeldolgozás (NLP) egy kapcsolódó terület, amely arra összpontosít, hogy a számítógépek hogyan tudják feldolgozni a "természetes", azaz emberi nyelveket.
+
+### Példa - telefonos diktálás
+
+Ha valaha diktáltál a telefonodnak gépelés helyett, vagy kérdést tettél fel egy virtuális asszisztensnek, akkor a beszédedet szöveges formára alakították, majd feldolgozták vagy *szintaktikailag elemezték* az általad használt nyelvet. Az észlelt kulcsszavakat ezután olyan formátumba dolgozták fel, amelyet a telefon vagy az asszisztens megértett és végrehajtott.
+
+
+> A valódi nyelvi megértés nehéz! Kép: [Jen Looper](https://twitter.com/jenlooper)
+
+### Hogyan lehetséges ez a technológia?
+
+Ez azért lehetséges, mert valaki írt egy számítógépes programot, hogy ezt megvalósítsa. Néhány évtizeddel ezelőtt néhány sci-fi író azt jósolta, hogy az emberek főként beszélni fognak a számítógépeikhez, és a számítógépek mindig pontosan megértik majd, mit akarnak mondani. Sajnos kiderült, hogy ez a probléma nehezebb, mint sokan gondolták, és bár ma már sokkal jobban értjük, jelentős kihívásokkal kell szembenézni a mondatok jelentésének "tökéletes" természetes nyelvfeldolgozása során. Ez különösen nehéz, ha a mondatokban a humor vagy az érzelmek, például az irónia felismeréséről van szó.
+
+Ezen a ponton talán eszedbe jutnak az iskolai órák, ahol a tanár a mondatok nyelvtani részeit tárgyalta. Egyes országokban a diákok külön tantárgyként tanulják a nyelvtant és a nyelvészetet, de sok helyen ezek a témák a nyelvtanulás részeként szerepelnek: akár az első nyelv tanulásakor az általános iskolában (olvasás és írás tanulása), akár egy második nyelv tanulásakor a középiskolában. Ne aggódj, ha nem vagy szakértő a főnevek és igék vagy a határozószók és melléknevek megkülönböztetésében!
+
+Ha nehézséget okoz a *jelen egyszerű* és a *jelen folyamatos* közötti különbség, nem vagy egyedül. Ez sok ember számára kihívást jelent, még egy nyelv anyanyelvi beszélőinek is. A jó hír az, hogy a számítógépek nagyon jók a formális szabályok alkalmazásában, és meg fogod tanulni, hogyan írj kódot, amely egy mondatot olyan jól tud *szintaktikailag elemezni*, mint egy ember. A nagyobb kihívás, amelyet később megvizsgálsz, a mondat *jelentésének* és *érzelmi töltetének* megértése.
+
+## Előfeltételek
+
+Ehhez a leckéhez a fő előfeltétel az, hogy képes legyél elolvasni és megérteni a lecke nyelvét. Nincsenek matematikai problémák vagy megoldandó egyenletek. Bár az eredeti szerző angolul írta ezt a leckét, más nyelvekre is lefordították, így lehet, hogy fordítást olvasol. Vannak példák, ahol különböző nyelveket használnak (a különböző nyelvtani szabályok összehasonlítására). Ezek *nem* kerülnek fordításra, de a magyarázó szöveg igen, így a jelentésnek érthetőnek kell lennie.
+
+A kódolási feladatokhoz Python-t fogsz használni, és a példák Python 3.8-at használnak.
+
+Ebben a szakaszban szükséged lesz:
+
+- **Python 3 megértése**. A Python 3 programozási nyelv megértése, ez a lecke bemeneti adatokat, ciklusokat, fájlolvasást és tömböket használ.
+- **Visual Studio Code + kiegészítő**. A Visual Studio Code-ot és annak Python kiegészítőjét fogjuk használni. Használhatsz más Python IDE-t is.
+- **TextBlob**. A [TextBlob](https://github.com/sloria/TextBlob) egy egyszerűsített szövegfeldolgozó könyvtár Pythonhoz. Kövesd a TextBlob weboldalán található utasításokat a telepítéshez (telepítsd a korpuszokat is, ahogy az alábbiakban látható):
+
+ ```bash
+ pip install -U textblob
+ python -m textblob.download_corpora
+ ```
+
+> 💡 Tipp: A Python közvetlenül futtatható a VS Code környezetekben. További információért nézd meg a [dokumentációt](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott).
+
+## Beszélgetés gépekkel
+
+Az emberi nyelv számítógépes megértésének története évtizedekre nyúlik vissza, és az egyik legkorábbi tudós, aki a természetes nyelvfeldolgozást vizsgálta, *Alan Turing* volt.
+
+### A 'Turing-teszt'
+
+Amikor Turing az 1950-es években a *mesterséges intelligenciát* kutatta, azt vizsgálta, hogy egy beszélgetési tesztet lehetne-e adni egy embernek és egy számítógépnek (gépelés útján), ahol a beszélgetésben részt vevő ember nem biztos abban, hogy egy másik emberrel vagy egy számítógéppel beszélget.
+
+Ha egy bizonyos hosszúságú beszélgetés után az ember nem tudja megállapítani, hogy a válaszok számítógéptől származnak-e vagy sem, akkor mondható-e, hogy a számítógép *gondolkodik*?
+
+### Az inspiráció - 'az utánzás játéka'
+
+Az ötlet egy *Az utánzás játéka* nevű társasjátékból származott, ahol egy kérdező egyedül van egy szobában, és meg kell határoznia, hogy a másik szobában lévő két ember közül ki férfi és ki nő. A kérdező üzeneteket küldhet, és olyan kérdéseket kell kitalálnia, amelyek írásos válaszai felfedik a rejtélyes személy nemét. Természetesen a másik szobában lévő játékosok megpróbálják megtéveszteni vagy összezavarni a kérdezőt azáltal, hogy olyan módon válaszolnak, amely félrevezető vagy zavaró, miközben úgy tűnik, hogy őszintén válaszolnak.
+
+### Eliza fejlesztése
+
+Az 1960-as években egy MIT tudós, *Joseph Weizenbaum* kifejlesztette [*Eliza*](https://wikipedia.org/wiki/ELIZA) nevű számítógépes "terapeutát", amely kérdéseket tett fel az embernek, és úgy tűnt, hogy megérti a válaszait. Azonban, bár Eliza képes volt egy mondatot szintaktikailag elemezni, bizonyos nyelvtani szerkezeteket és kulcsszavakat azonosítani, hogy ésszerű választ adjon, nem mondható, hogy *megértette* a mondatot. Ha Eliza egy olyan mondatot kapott, amely a "**Én vagyok** szomorú" formát követte, akkor átrendezhette és helyettesíthette a mondat szavait, hogy a válasz "Mióta **vagy** szomorú" legyen.
+
+Ez azt a benyomást keltette, hogy Eliza megértette az állítást, és egy következő kérdést tett fel, míg valójában csak megváltoztatta az igeidőt és hozzáadott néhány szót. Ha Eliza nem tudott azonosítani egy kulcsszót, amelyre válasza volt, akkor véletlenszerű választ adott, amely sok különböző állításra alkalmazható lehetett. Eliza könnyen becsapható volt, például ha egy felhasználó azt írta, "**Te vagy** egy bicikli", akkor azt válaszolhatta, "Mióta **vagyok** egy bicikli?", ahelyett, hogy egy ésszerűbb választ adott volna.
+
+[](https://youtu.be/RMK9AphfLco "Beszélgetés Elizával")
+
+> 🎥 Kattints a fenti képre az eredeti ELIZA programról szóló videóért
+
+> Megjegyzés: Az eredeti leírást [Elizáról](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract), amelyet 1966-ban publikáltak, elolvashatod, ha van ACM fiókod. Alternatívaként olvass Elizáról a [wikipédián](https://wikipedia.org/wiki/ELIZA).
+
+## Gyakorlat - egy alapvető beszélgető bot kódolása
+
+Egy beszélgető bot, mint Eliza, egy olyan program, amely felhasználói bemenetet kér, és úgy tűnik, hogy intelligensen válaszol. Elizával ellentétben a botunknak nem lesz több szabálya, amelyek intelligens beszélgetés látszatát keltik. Ehelyett a botunknak csak egy képessége lesz: a beszélgetés folytatása véletlenszerű válaszokkal, amelyek szinte bármilyen triviális beszélgetésben működhetnek.
+
+### A terv
+
+A beszélgető bot építésének lépései:
+
+1. Nyomtass utasításokat, amelyek tanácsot adnak a felhasználónak, hogyan lépjen kapcsolatba a bottal
+2. Indíts egy ciklust
+ 1. Fogadj felhasználói bemenetet
+ 2. Ha a felhasználó kilépést kér, lépj ki
+ 3. Dolgozd fel a felhasználói bemenetet, és határozd meg a választ (ebben az esetben a válasz egy véletlenszerű választás a lehetséges általános válaszok listájából)
+ 4. Nyomtasd ki a választ
+3. Térj vissza a 2. lépéshez
+
+### A bot építése
+
+Hozzuk létre a botot! Kezdjük néhány kifejezés definiálásával.
+
+1. Hozd létre ezt a botot Pythonban a következő véletlenszerű válaszokkal:
+
+ ```python
+ random_responses = ["That is quite interesting, please tell me more.",
+ "I see. Do go on.",
+ "Why do you say that?",
+ "Funny weather we've been having, isn't it?",
+ "Let's change the subject.",
+ "Did you catch the game last night?"]
+ ```
+
+ Íme néhány minta kimenet, amely segíthet (a felhasználói bemenet a `>`-tal kezdődő sorokon van):
+
+ ```output
+ Hello, I am Marvin, the simple robot.
+ You can end this conversation at any time by typing 'bye'
+ After typing each answer, press 'enter'
+ How are you today?
+ > I am good thanks
+ That is quite interesting, please tell me more.
+ > today I went for a walk
+ Did you catch the game last night?
+ > I did, but my team lost
+ Funny weather we've been having, isn't it?
+ > yes but I hope next week is better
+ Let's change the subject.
+ > ok, lets talk about music
+ Why do you say that?
+ > because I like music!
+ Why do you say that?
+ > bye
+ It was nice talking to you, goodbye!
+ ```
+
+ Egy lehetséges megoldás a feladatra [itt található](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py)
+
+ ✅ Állj meg és gondolkodj el
+
+ 1. Szerinted a véletlenszerű válaszok "becsapnák" valakit, hogy azt gondolja, a bot valóban megértette őt?
+ 2. Milyen funkciókra lenne szüksége a botnak, hogy hatékonyabb legyen?
+ 3. Ha egy bot valóban "megértené" egy mondat jelentését, szüksége lenne arra, hogy "emlékezzen" a beszélgetés korábbi mondatai jelentésére is?
+
+---
+
+## 🚀Kihívás
+
+Válassz egyet a fenti "állj meg és gondolkodj el" elemek közül, és próbáld meg megvalósítani kódban, vagy írj egy megoldást papíron álpseudokóddal.
+
+A következő leckében számos más megközelítést fogsz megismerni a természetes nyelv szintaktikai elemzésére és gépi tanulásra.
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Tekintsd meg az alábbi hivatkozásokat további olvasási lehetőségként.
+
+### Hivatkozások
+
+1. Schubert, Lenhart, "Computational Linguistics", *The Stanford Encyclopedia of Philosophy* (Spring 2020 Edition), Edward N. Zalta (ed.), URL = .
+2. Princeton University "About WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010.
+
+## Feladat
+
+[Keress egy botot](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. Fontos 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
diff --git a/translations/hu/6-NLP/1-Introduction-to-NLP/assignment.md b/translations/hu/6-NLP/1-Introduction-to-NLP/assignment.md
new file mode 100644
index 00000000..34cea9e3
--- /dev/null
+++ b/translations/hu/6-NLP/1-Introduction-to-NLP/assignment.md
@@ -0,0 +1,25 @@
+
+# Keresd meg a botot
+
+## Útmutató
+
+Botok mindenhol ott vannak. A feladatod: találj egyet, és fogadd örökbe! Megtalálhatod őket weboldalakon, banki alkalmazásokban, vagy telefonon, például amikor pénzügyi szolgáltatókat hívsz tanácsért vagy számlainformációért. Elemezd a botot, és nézd meg, össze tudod-e zavarni. Ha sikerül összezavarni, szerinted miért történt ez? Írj egy rövid beszámolót az élményeidről.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------ | --------------------- |
+| | Egy teljes oldalas beszámoló készült, amely bemutatja a feltételezett bot architektúráját és az élményeket | A beszámoló hiányos vagy nem alapos | Nem készült beszámoló |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos 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
diff --git a/translations/hu/6-NLP/2-Tasks/README.md b/translations/hu/6-NLP/2-Tasks/README.md
new file mode 100644
index 00000000..d86b59b3
--- /dev/null
+++ b/translations/hu/6-NLP/2-Tasks/README.md
@@ -0,0 +1,228 @@
+
+# Gyakori természetes nyelvfeldolgozási feladatok és technikák
+
+A legtöbb *természetes nyelvfeldolgozási* feladat esetében a feldolgozandó szöveget fel kell bontani, meg kell vizsgálni, és az eredményeket el kell tárolni vagy össze kell vetni szabályokkal és adatbázisokkal. Ezek a feladatok lehetővé teszik a programozó számára, hogy a szöveg _jelentését_, _szándékát_ vagy csak a kifejezések és szavak _gyakoriságát_ megértse.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+Fedezzük fel a szövegfeldolgozásban használt gyakori technikákat. Ezek a technikák gépi tanulással kombinálva segítenek hatékonyan elemezni nagy mennyiségű szöveget. Mielőtt gépi tanulást alkalmaznánk ezekre a feladatokra, először értsük meg azokat a problémákat, amelyekkel egy NLP szakember szembesül.
+
+## NLP-hez kapcsolódó feladatok
+
+Számos módja van annak, hogy elemezzük a szöveget, amelyen dolgozunk. Vannak feladatok, amelyeket elvégezhetünk, és ezek révén megérthetjük a szöveget, valamint következtetéseket vonhatunk le. Ezeket a feladatokat általában egy meghatározott sorrendben hajtjuk végre.
+
+### Tokenizáció
+
+Valószínűleg az első dolog, amit a legtöbb NLP algoritmusnak el kell végeznie, az a szöveg tokenekre vagy szavakra bontása. Bár ez egyszerűnek tűnik, a különböző nyelvek írásjelei és mondathatárolói miatt bonyolult lehet. Különböző módszereket kell alkalmazni a határok meghatározásához.
+
+
+> Egy mondat tokenizálása a **Büszkeség és balítélet** című műből. Infografika: [Jen Looper](https://twitter.com/jenlooper)
+
+### Beágyazások
+
+[A szavak beágyazása](https://wikipedia.org/wiki/Word_embedding) egy módszer arra, hogy a szövegadatokat numerikus formába alakítsuk. A beágyazásokat úgy végezzük, hogy a hasonló jelentésű vagy együtt használt szavak csoportosuljanak.
+
+
+> "A legnagyobb tisztelettel vagyok az idegeid iránt, ők a régi barátaim." - Szavak beágyazása egy mondatban a **Büszkeség és balítélet** című műből. Infografika: [Jen Looper](https://twitter.com/jenlooper)
+
+✅ Próbáld ki [ezt az érdekes eszközt](https://projector.tensorflow.org/) a szavak beágyazásának kísérletezéséhez. Egy szó kiválasztásával hasonló szavak csoportjait láthatod: például a 'játék' csoportosul a 'disney', 'lego', 'playstation' és 'konzol' szavakkal.
+
+### Elemzés és szófaji címkézés
+
+Minden tokenizált szót szófajként lehet címkézni - például főnév, ige vagy melléknév. A mondat `a gyors vörös róka átugrott a lusta barna kutya felett` szófaji címkézése lehet például róka = főnév, ugrott = ige.
+
+
+
+> Egy mondat elemzése a **Büszkeség és balítélet** című műből. Infografika: [Jen Looper](https://twitter.com/jenlooper)
+
+Az elemzés során felismerjük, hogy mely szavak kapcsolódnak egymáshoz egy mondatban - például `a gyors vörös róka ugrott` egy melléknév-főnév-ige sorozat, amely elkülönül a `lusta barna kutya` sorozattól.
+
+### Szó- és kifejezésgyakoriságok
+
+Egy nagy szövegtest elemzésekor hasznos lehet egy szótár létrehozása, amely tartalmazza az összes érdekes szót vagy kifejezést, valamint azok előfordulási gyakoriságát. A mondat `a gyors vörös róka átugrott a lusta barna kutya felett` szógyakorisága például 2 a 'a' esetében.
+
+Nézzünk egy példaszöveget, ahol megszámoljuk a szavak gyakoriságát. Rudyard Kipling verse, A győztesek, tartalmazza a következő versszakot:
+
+```output
+What the moral? Who rides may read.
+When the night is thick and the tracks are blind
+A friend at a pinch is a friend, indeed,
+But a fool to wait for the laggard behind.
+Down to Gehenna or up to the Throne,
+He travels the fastest who travels alone.
+```
+
+Mivel a kifejezésgyakoriság lehet kis- és nagybetűérzékeny, a `egy barát` kifejezés gyakorisága 2, a `a` gyakorisága 6, és a `utazik` gyakorisága 2.
+
+### N-gramok
+
+Egy szöveg felosztható meghatározott hosszúságú szósorozatokra: egy szó (unigram), két szó (bigram), három szó (trigram) vagy bármilyen számú szó (n-gram).
+
+Például `a gyors vörös róka átugrott a lusta barna kutya felett` egy 2-es n-gram értékkel a következő n-gramokat eredményezi:
+
+1. a gyors
+2. gyors vörös
+3. vörös róka
+4. róka ugrott
+5. ugrott át
+6. át a
+7. a lusta
+8. lusta barna
+9. barna kutya
+
+Könnyebb lehet ezt egy csúszó ablakként elképzelni a mondat felett. Íme egy 3 szavas n-gram példája, ahol az n-gram kiemelve látható:
+
+1. **a gyors vörös** róka átugrott a lusta barna kutya felett
+2. a **gyors vörös róka** átugrott a lusta barna kutya felett
+3. a gyors **vörös róka ugrott** át a lusta barna kutya felett
+4. a gyors vörös **róka ugrott át** a lusta barna kutya felett
+5. a gyors vörös róka **ugrott át a** lusta barna kutya felett
+6. a gyors vörös róka ugrott **át a lusta** barna kutya felett
+7. a gyors vörös róka ugrott át **a lusta barna** kutya felett
+8. a gyors vörös róka ugrott át a **lusta barna kutya**
+
+
+
+> N-gram érték 3: Infografika: [Jen Looper](https://twitter.com/jenlooper)
+
+### Főnévi kifejezések kinyerése
+
+A legtöbb mondatban van egy főnév, amely a mondat alanya vagy tárgya. Angol nyelvben gyakran azonosítható az 'a', 'an' vagy 'the' előtag alapján. A mondat alanyának vagy tárgyának azonosítása a 'főnévi kifejezés kinyerésével' gyakori feladat az NLP-ben, amikor a mondat jelentését próbáljuk megérteni.
+
+✅ A mondatban "Nem tudom megmondani az órát, a helyet, a kinézetet vagy a szavakat, amelyek megalapozták. Túl régen volt. Már benne voltam, mielőtt tudtam volna, hogy elkezdtem." Fel tudod ismerni a főnévi kifejezéseket?
+
+A mondatban `a gyors vörös róka átugrott a lusta barna kutya felett` 2 főnévi kifejezés van: **gyors vörös róka** és **lusta barna kutya**.
+
+### Érzelemelemzés
+
+Egy mondat vagy szöveg elemezhető az érzelmek szempontjából, hogy mennyire *pozitív* vagy *negatív*. Az érzelmeket *polaritás* és *objektivitás/szubjektivitás* alapján mérjük. A polaritás -1.0-tól 1.0-ig terjed (negatívtól pozitívig), az objektivitás pedig 0.0-tól 1.0-ig (legobjektívebbtől legszubjektívebbig).
+
+✅ Később megtanulod, hogy különböző módokon lehet meghatározni az érzelmeket gépi tanulás segítségével, de az egyik módszer az, hogy egy emberi szakértő által pozitívnak vagy negatívnak kategorizált szavak és kifejezések listáját alkalmazzuk a szövegre, hogy kiszámítsuk a polaritási pontszámot. Látod, hogyan működhet ez bizonyos helyzetekben, és kevésbé jól másokban?
+
+### Inflekció
+
+Az inflekció lehetővé teszi, hogy egy szót átalakítsunk egyes vagy többes számú formájába.
+
+### Lemmatizáció
+
+A *lemma* egy szó gyökere vagy alapformája, például *repült*, *repülők*, *repülés* esetében a lemma az *repül* ige.
+
+Hasznos adatbázisok is rendelkezésre állnak az NLP kutatók számára, különösen:
+
+### WordNet
+
+[WordNet](https://wordnet.princeton.edu/) egy adatbázis, amely szavakat, szinonimákat, ellentéteket és sok más részletet tartalmaz különböző nyelveken. Rendkívül hasznos fordítások, helyesírás-ellenőrzők vagy bármilyen nyelvi eszköz létrehozásakor.
+
+## NLP könyvtárak
+
+Szerencsére nem kell ezeket a technikákat magunknak felépíteni, mivel kiváló Python könyvtárak állnak rendelkezésre, amelyek sokkal hozzáférhetőbbé teszik azokat a fejlesztők számára, akik nem szakosodtak természetes nyelvfeldolgozásra vagy gépi tanulásra. A következő leckékben több példát is bemutatunk ezekre, de itt néhány hasznos példát találsz, amelyek segítenek a következő feladatban.
+
+### Gyakorlat - `TextBlob` könyvtár használata
+
+Használjunk egy TextBlob nevű könyvtárat, mivel hasznos API-kat tartalmaz az ilyen típusú feladatok megoldásához. A TextBlob "a [NLTK](https://nltk.org) és a [pattern](https://github.com/clips/pattern) óriási vállain áll, és jól működik mindkettővel." Jelentős mennyiségű gépi tanulás van beépítve az API-jába.
+
+> Megjegyzés: Egy hasznos [Gyors kezdés](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) útmutató elérhető a TextBlob számára, amelyet tapasztalt Python fejlesztőknek ajánlunk.
+
+Amikor *főnévi kifejezéseket* próbálunk azonosítani, a TextBlob több lehetőséget kínál az ilyen kifejezések kinyerésére.
+
+1. Nézd meg a `ConllExtractor`-t.
+
+ ```python
+ from textblob import TextBlob
+ from textblob.np_extractors import ConllExtractor
+ # import and create a Conll extractor to use later
+ extractor = ConllExtractor()
+
+ # later when you need a noun phrase extractor:
+ user_input = input("> ")
+ user_input_blob = TextBlob(user_input, np_extractor=extractor) # note non-default extractor specified
+ np = user_input_blob.noun_phrases
+ ```
+
+ > Mi történik itt? A [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) egy "főnévi kifejezés kinyerő, amely a ConLL-2000 tanulási korpusz alapján képzett chunk parsingot használ." A ConLL-2000 a 2000-es Számítógépes Természetes Nyelv Tanulási Konferencia. Minden évben a konferencia egy workshopot tartott egy nehéz NLP probléma megoldására, és 2000-ben ez a főnévi chunking volt. Egy modellt képeztek a Wall Street Journal alapján, "a 15-18. szakaszokat használva tanulási adatként (211727 token) és a 20. szakaszt tesztadatként (47377 token)". Az alkalmazott eljárásokat [itt](https://www.clips.uantwerpen.be/conll2000/chunking/) és az [eredményeket](https://ifarm.nl/erikt/research/np-chunking.html) megtekintheted.
+
+### Kihívás - javítsd a botodat NLP segítségével
+
+Az előző leckében egy nagyon egyszerű kérdés-válasz botot készítettél. Most Marvin-t egy kicsit szimpatikusabbá teszed azáltal, hogy elemzed a bemenetet érzelmek szempontjából, és ennek megfelelő választ adsz. Emellett azonosítanod kell egy `főnévi kifejezést`, és kérdezned kell róla.
+
+A jobb beszélgető bot létrehozásának lépései:
+
+1. Nyomtass utasításokat, amelyek tanácsot adnak a felhasználónak, hogyan lépjen kapcsolatba a bottal.
+2. Indítsd el a ciklust:
+ 1. Fogadd el a felhasználói bemenetet.
+ 2. Ha a felhasználó kilépést kért, lépj ki.
+ 3. Dolgozd fel a felhasználói bemenetet, és határozd meg a megfelelő érzelmi választ.
+ 4. Ha főnévi kifejezést észlelsz az érzelemben, tedd többes számba, és kérj további bemenetet a témáról.
+ 5. Nyomtass választ.
+3. Térj vissza a 2. lépéshez.
+
+Íme a kódrészlet az érzelem meghatározásához a TextBlob segítségével. Figyeld meg, hogy csak négy *érzelmi gradiens* van (ha szeretnéd, lehet több is):
+
+```python
+if user_input_blob.polarity <= -0.5:
+ response = "Oh dear, that sounds bad. "
+elif user_input_blob.polarity <= 0:
+ response = "Hmm, that's not great. "
+elif user_input_blob.polarity <= 0.5:
+ response = "Well, that sounds positive. "
+elif user_input_blob.polarity <= 1:
+ response = "Wow, that sounds great. "
+```
+
+Íme néhány minta kimenet, amely segíthet (a felhasználói bemenet a > jellel kezdődő sorokon található):
+
+```output
+Hello, I am Marvin, the friendly robot.
+You can end this conversation at any time by typing 'bye'
+After typing each answer, press 'enter'
+How are you today?
+> I am ok
+Well, that sounds positive. Can you tell me more?
+> I went for a walk and saw a lovely cat
+Well, that sounds positive. Can you tell me more about lovely cats?
+> cats are the best. But I also have a cool dog
+Wow, that sounds great. Can you tell me more about cool dogs?
+> I have an old hounddog but he is sick
+Hmm, that's not great. Can you tell me more about old hounddogs?
+> bye
+It was nice talking to you, goodbye!
+```
+
+Egy lehetséges megoldás a feladatra [itt található](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py)
+
+✅ Tudásellenőrzés
+
+1. Szerinted a szimpatikus válaszok 'becsapnák' valakit, hogy azt higgye, a bot valóban megérti őt?
+2. A főnévi kifejezés azonosítása hitelesebbé teszi a botot?
+3. Miért lehet hasznos egy mondatból főnévi kifejezést kinyerni?
+
+---
+
+Valósítsd meg a botot az előző tudásellenőrzés alapján, és teszteld egy barátodon. Sikerül becsapnia őket? Tudod hitelesebbé tenni a botodat?
+
+## 🚀Kihívás
+
+Válassz egy feladatot az előző tudásellenőrzésből, és próbáld megvalósítani. Teszteld a botot egy barátodon. Sikerül becsapnia őket? Tudod hitelesebbé tenni a botodat?
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+A következő néhány leckében többet fogsz tanulni az érzelemelemzésről. Kutass erről az érdekes technikáról olyan cikkekben, mint például ezek a [KDNuggets](https://www.kdnuggets.com/tag/nlp) oldalon.
+
+## Feladat
+
+[Bot készítése, amely válaszol](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/2-Tasks/assignment.md b/translations/hu/6-NLP/2-Tasks/assignment.md
new file mode 100644
index 00000000..41000186
--- /dev/null
+++ b/translations/hu/6-NLP/2-Tasks/assignment.md
@@ -0,0 +1,25 @@
+
+# Készíts egy Botot, ami válaszol
+
+## Útmutató
+
+Az előző leckékben egy alapvető botot programoztál, amellyel beszélgetni lehet. Ez a bot véletlenszerű válaszokat ad, amíg azt nem mondod, hogy 'viszlát'. Tudnád kevésbé véletlenszerűvé tenni a válaszokat, és beállítani, hogy bizonyos dolgokra, mint például 'miért' vagy 'hogyan', konkrét válaszokat adjon? Gondolkodj el azon, hogyan tehetné a gépi tanulás ezt a munkát kevésbé manuálissá, miközben továbbfejleszted a botodat. Használhatod az NLTK vagy TextBlob könyvtárakat, hogy megkönnyítsd a feladatokat.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | -------------------------------------------- | ----------------------------------------------- | ----------------------- |
+| | Egy új bot.py fájl van bemutatva és dokumentálva | Egy új bot fájl van bemutatva, de hibákat tartalmaz | Nem került bemutatásra fájl |
+
+---
+
+**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
diff --git a/translations/hu/6-NLP/3-Translation-Sentiment/README.md b/translations/hu/6-NLP/3-Translation-Sentiment/README.md
new file mode 100644
index 00000000..0f0c3ca4
--- /dev/null
+++ b/translations/hu/6-NLP/3-Translation-Sentiment/README.md
@@ -0,0 +1,190 @@
+
+# Fordítás és érzelemelemzés gépi tanulással
+
+Az előző leckékben megtanultad, hogyan készíts egy alap botot a `TextBlob` segítségével, amely egy olyan könyvtár, amely gépi tanulást alkalmaz a háttérben alapvető természetes nyelvi feldolgozási (NLP) feladatok, például főnévi kifejezések kinyerése érdekében. A számítógépes nyelvészet másik fontos kihívása egy mondat pontos _fordítása_ egyik beszélt vagy írott nyelvről a másikra.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+A fordítás egy nagyon nehéz probléma, amelyet tovább bonyolít az a tény, hogy több ezer nyelv létezik, és mindegyiknek nagyon eltérő nyelvtani szabályai lehetnek. Az egyik megközelítés az, hogy az egyik nyelv, például az angol formális nyelvtani szabályait egy nyelvtől független struktúrává alakítjuk, majd visszafordítjuk egy másik nyelvre. Ez a megközelítés a következő lépéseket jelenti:
+
+1. **Azonosítás**. Azonosítsd vagy címkézd fel a bemeneti nyelv szavait főnevekként, igékként stb.
+2. **Fordítás létrehozása**. Készíts közvetlen fordítást minden szóról a célnyelv formátumában.
+
+### Példa mondat, angolról írre
+
+Angol nyelven a _I feel happy_ mondat három szóból áll, a következő sorrendben:
+
+- **alany** (I)
+- **ige** (feel)
+- **melléknév** (happy)
+
+Az ír nyelvben azonban ugyanaz a mondat nagyon eltérő nyelvtani szerkezettel rendelkezik – az érzelmek, mint "*happy*" vagy "*sad*" úgy vannak kifejezve, mintha *rajtad lennének*.
+
+Az angol `I feel happy` kifejezés írül `Tá athas orm`. Egy *szó szerinti* fordítás így hangzana: `Happy is upon me`.
+
+Egy ír anyanyelvű, aki angolra fordít, azt mondaná, hogy `I feel happy`, nem pedig `Happy is upon me`, mert érti a mondat jelentését, még akkor is, ha a szavak és a mondatszerkezet eltérőek.
+
+Az ír mondat formális sorrendje:
+
+- **ige** (Tá vagy is)
+- **melléknév** (athas, vagy happy)
+- **alany** (orm, vagy upon me)
+
+## Fordítás
+
+Egy naiv fordítóprogram csak a szavakat fordítaná le, figyelmen kívül hagyva a mondatszerkezetet.
+
+✅ Ha felnőttként tanultál második (vagy harmadik vagy több) nyelvet, valószínűleg úgy kezdtél, hogy anyanyelveden gondolkodtál, majd fejben szó szerint lefordítottad a fogalmat a második nyelvre, és kimondtad a fordítást. Ez hasonló ahhoz, amit a naiv fordítóprogramok csinálnak. Fontos túllépni ezen a fázison, hogy elérjük a folyékonyságot!
+
+A naiv fordítás rossz (és néha mulatságos) félrefordításokhoz vezet: `I feel happy` szó szerint `Mise bhraitheann athas`-ként fordítódik írre. Ez azt jelenti (szó szerint), hogy `me feel happy`, és nem egy érvényes ír mondat. Annak ellenére, hogy az angol és az ír két szomszédos szigeten beszélt nyelv, nagyon különbözőek, eltérő nyelvtani szerkezettel.
+
+> Nézhetsz néhány videót az ír nyelvi hagyományokról, például [ezt](https://www.youtube.com/watch?v=mRIaLSdRMMs)
+
+### Gépi tanulási megközelítések
+
+Eddig a természetes nyelvi feldolgozás formális szabályok szerinti megközelítéséről tanultál. Egy másik megközelítés az, hogy figyelmen kívül hagyjuk a szavak jelentését, és _helyette gépi tanulással mintákat észlelünk_. Ez működhet fordítás esetén, ha sok szöveg (egy *korpusz*) vagy szövegek (*korpuszok*) állnak rendelkezésre az eredeti és a célnyelven.
+
+Például vegyük Jane Austen 1813-ban írt híres angol regényét, a *Büszkeség és balítélet*-et. Ha megnézed a könyvet angolul és annak emberi fordítását *franciául*, észlelhetsz olyan kifejezéseket, amelyek _idiomatikusan_ fordítódnak egyik nyelvről a másikra. Ezt hamarosan meg is teszed.
+
+Például, amikor az angol `I have no money` kifejezés szó szerint franciára fordítódik, az `Je n'ai pas de monnaie` lesz. A "monnaie" egy trükkös francia 'hamis rokon', mivel a 'money' és a 'monnaie' nem szinonimák. Egy jobb fordítás, amelyet egy ember készítene, az `Je n'ai pas d'argent`, mert ez jobban közvetíti azt a jelentést, hogy nincs pénzed (nem pedig 'aprópénz', ami a 'monnaie' jelentése).
+
+
+
+> Kép: [Jen Looper](https://twitter.com/jenlooper)
+
+Ha egy gépi tanulási modellnek elegendő emberi fordítása van, amelyre modellt építhet, javíthatja a fordítások pontosságát azáltal, hogy azonosítja a korábban szakértő emberi beszélők által fordított szövegekben gyakori mintákat.
+
+### Gyakorlat - fordítás
+
+Használhatod a `TextBlob`-ot mondatok fordítására. Próbáld ki a **Büszkeség és balítélet** híres első mondatát:
+
+```python
+from textblob import TextBlob
+
+blob = TextBlob(
+ "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
+)
+print(blob.translate(to="fr"))
+
+```
+
+A `TextBlob` elég jól teljesít a fordításban: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
+
+Érvelhetünk azzal, hogy a TextBlob fordítása sokkal pontosabb, mint a könyv 1932-es francia fordítása V. Leconte és Ch. Pressoir által:
+
+"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."
+
+Ebben az esetben a gépi tanulással támogatott fordítás jobb munkát végez, mint az emberi fordító, aki szükségtelenül szavakat ad az eredeti szerző szájába a 'tisztázás' érdekében.
+
+> Mi történik itt, és miért olyan jó a TextBlob a fordításban? Nos, a háttérben a Google Translate-et használja, amely egy kifinomult mesterséges intelligencia, amely képes több millió kifejezést elemezni, hogy előre jelezze a legjobb szövegeket az adott feladathoz. Itt semmi manuális nincs, és internetkapcsolatra van szükséged a `blob.translate` használatához.
+
+✅ Próbálj ki néhány további mondatot. Melyik jobb, a gépi tanulás vagy az emberi fordítás? Milyen esetekben?
+
+## Érzelemelemzés
+
+Egy másik terület, ahol a gépi tanulás nagyon jól működhet, az érzelemelemzés. Egy nem gépi tanulási megközelítés az, hogy azonosítjuk a 'pozitív' és 'negatív' szavakat és kifejezéseket. Ezután egy új szöveg esetében kiszámítjuk a pozitív, negatív és semleges szavak összértékét, hogy meghatározzuk az általános érzelmet.
+
+Ez a megközelítés könnyen becsapható, ahogy azt a Marvin feladatban láthattad – a mondat `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` egy szarkasztikus, negatív érzelmű mondat, de az egyszerű algoritmus a 'great', 'wonderful', 'glad' szavakat pozitívként, míg a 'waste', 'lost' és 'dark' szavakat negatívként érzékeli. Az összesített érzelem ezeknek az ellentmondásos szavaknak köszönhetően torzul.
+
+✅ Állj meg egy pillanatra, és gondold át, hogyan közvetítjük a szarkazmust emberi beszélőként. A hanghordozás nagy szerepet játszik. Próbáld meg különböző módon kimondani a "Well, that film was awesome" mondatot, hogy felfedezd, hogyan közvetíti a hangod a jelentést.
+
+### Gépi tanulási megközelítések
+
+A gépi tanulási megközelítés az lenne, hogy manuálisan gyűjtünk negatív és pozitív szövegeket – tweeteket, filmkritikákat, vagy bármit, ahol az ember adott egy pontszámot *és* egy írott véleményt. Ezután NLP technikákat alkalmazhatunk a véleményekre és pontszámokra, hogy minták jelenjenek meg (például a pozitív filmkritikákban gyakrabban szerepel az 'Oscar worthy' kifejezés, mint a negatív kritikákban, vagy a pozitív étteremkritikákban gyakrabban szerepel a 'gourmet', mint a 'disgusting').
+
+> ⚖️ **Példa**: Ha egy politikus irodájában dolgoznál, és egy új törvényt vitatnának meg, a választók támogató vagy ellenző e-maileket írhatnának az irodának az adott új törvénnyel kapcsolatban. Tegyük fel, hogy az a feladatod, hogy elolvasd az e-maileket, és két kupacba sorold őket, *támogató* és *ellenző*. Ha sok e-mail érkezne, túlterheltnek érezhetnéd magad, hogy mindet elolvasd. Nem lenne jó, ha egy bot elolvashatná őket helyetted, megértené, és megmondaná, melyik kupacba tartozik az egyes e-mailek?
+>
+> Egy módja ennek elérésére a gépi tanulás használata. A modellt az *ellenző* e-mailek egy részével és a *támogató* e-mailek egy részével képeznéd ki. A modell hajlamos lenne bizonyos kifejezéseket és szavakat az ellenző vagy támogató oldalhoz társítani, *de nem értené a tartalmat*, csak azt, hogy bizonyos szavak és minták nagyobb valószínűséggel jelennek meg egy *ellenző* vagy *támogató* e-mailben. Tesztelhetnéd néhány olyan e-maillel, amelyet nem használtál a modell képzésére, és megnézhetnéd, hogy ugyanarra a következtetésre jut-e, mint te. Ezután, ha elégedett lennél a modell pontosságával, feldolgozhatnád a jövőbeli e-maileket anélkül, hogy mindegyiket el kellene olvasnod.
+
+✅ Ez a folyamat hasonlít olyan folyamatokra, amelyeket korábbi leckékben használtál?
+
+## Gyakorlat - érzelmi mondatok
+
+Az érzelmeket *polaritással* mérik -1-től 1-ig, ahol -1 a legnegatívabb érzelem, és 1 a legpozitívabb. Az érzelmeket továbbá 0 - 1 skálán mérik objektivitás (0) és szubjektivitás (1) szerint.
+
+Nézd meg újra Jane Austen *Büszkeség és balítélet* című művét. A szöveg elérhető itt: [Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm). Az alábbi minta egy rövid programot mutat be, amely elemzi a könyv első és utolsó mondatának érzelmi polaritását és szubjektivitás/objektivitás pontszámát.
+
+A következő feladatban használd a fent leírt `TextBlob` könyvtárat az `érzelem` meghatározására (nem kell saját érzelemkalkulátort írnod).
+
+```python
+from textblob import TextBlob
+
+quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""
+
+quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""
+
+sentiment1 = TextBlob(quote1).sentiment
+sentiment2 = TextBlob(quote2).sentiment
+
+print(quote1 + " has a sentiment of " + str(sentiment1))
+print(quote2 + " has a sentiment of " + str(sentiment2))
+```
+
+A következő kimenetet látod:
+
+```output
+It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)
+
+Darcy, as well as Elizabeth, really loved them; and they were
+ both ever sensible of the warmest gratitude towards the persons
+ who, by bringing her into Derbyshire, had been the means of
+ uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)
+```
+
+## Kihívás - érzelmi polaritás ellenőrzése
+
+A feladatod az, hogy érzelmi polaritás alapján meghatározd, hogy a *Büszkeség és balítélet* több abszolút pozitív mondatot tartalmaz-e, mint abszolút negatívat. Ehhez a feladathoz feltételezheted, hogy az 1 vagy -1 polaritás pontszám abszolút pozitív vagy negatív.
+
+**Lépések:**
+
+1. Töltsd le a [Büszkeség és balítélet](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) egy példányát a Project Gutenbergről .txt fájlként. Távolítsd el a metaadatokat a fájl elejéről és végéről, hogy csak az eredeti szöveg maradjon.
+2. Nyisd meg a fájlt Pythonban, és sztringként olvasd ki a tartalmát.
+3. Hozz létre egy TextBlob-ot a könyv sztringjéből.
+4. Elemezd a könyv minden mondatát egy ciklusban.
+ 1. Ha a polaritás 1 vagy -1, tárold a mondatot egy pozitív vagy negatív üzeneteket tartalmazó tömbben vagy listában.
+5. A végén külön-külön nyomtasd ki az összes pozitív és negatív mondatot, valamint azok számát.
+
+Itt találsz egy mintát [megoldásként](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb).
+
+✅ Tudásellenőrzés
+
+1. Az érzelem a mondatban használt szavakon alapul, de a kód *érti* a szavakat?
+2. Gondolod, hogy az érzelmi polaritás pontos, vagy más szavakkal, *egyetértesz* a pontszámokkal?
+ 1. Különösen egyetértesz vagy nem értesz egyet az alábbi mondatok abszolút **pozitív** polaritásával?
+ * “What an excellent father you have, girls!” said she, when the door was shut.
+ * “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect.
+ * How wonderfully these sort of things occur!
+ * I have the greatest dislike in the world to that sort of thing.
+ * Charlotte is an excellent manager, I dare say.
+ * “This is delightful indeed!
+ * I am so happy!
+ * Your idea of the ponies is delightful.
+ 2. A következő 3 mondat abszolút pozitív érzelmi pontszámot kapott, de alapos olvasás után nem pozitív mondatok. Miért gondolta az érzelemelemzés, hogy pozitív mondatok?
+ * Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power.
+ * If I could but see you as happy!
+ * Our distress, my dear Lizzy, is very great.
+ 3. Egyetértesz vagy nem értesz egyet az alábbi mondatok abszolút **negatív** polaritásával?
+ - Everybody is disgusted with his pride.
+ - “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful.
+ - The pause was to Elizabeth’s feelings dreadful.
+ - It would be dreadful!
+
+✅ Jane Austen bármely rajongója megérti, hogy gyakran használja könyveit az angol regency társadalom nevetségesebb aspektusainak kritikájára. Elizabeth Bennett, a *Büszkeség és balítélet* főszereplője, éles társadalmi megfigyelő (mint az író), és nyelve gyakran erősen árnyalt. Még Mr. Darcy (a történet szerelmi érdeklődése) is megjegyzi Elizabeth játékos és szurkálódó nyelvhasználatát: "I have had the pleasure of your acquaintance long enough to know that you find great enjoyment in occasionally professing opinions which in fact are
+Számos módja van annak, hogy szövegből érzelmeket vonjunk ki. Gondolj az üzleti alkalmazásokra, amelyek ezt a technikát használhatják. Gondolj arra is, hogyan sülhet el rosszul. Olvass többet kifinomult, vállalati szintű rendszerekről, amelyek érzelmeket elemeznek, például az [Azure Text Analysis](https://docs.microsoft.com/azure/cognitive-services/Text-Analytics/how-tos/text-analytics-how-to-sentiment-analysis?tabs=version-3-1?WT.mc_id=academic-77952-leestott) szolgáltatásról. Tesztelj néhány mondatot a Büszkeség és balítéletből, és nézd meg, hogy képes-e érzékelni a finom árnyalatokat.
+
+## Feladat
+
+[Poétikai szabadság](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/3-Translation-Sentiment/assignment.md b/translations/hu/6-NLP/3-Translation-Sentiment/assignment.md
new file mode 100644
index 00000000..e787857e
--- /dev/null
+++ b/translations/hu/6-NLP/3-Translation-Sentiment/assignment.md
@@ -0,0 +1,25 @@
+
+# Költői szabadság
+
+## Útmutató
+
+Ebben a [jegyzetfüzetben](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) több mint 500 Emily Dickinson vers található, amelyeket korábban az Azure szövegelemző szolgáltatásával elemeztek érzelmi szempontból. Használva ezt az adatállományt, elemezd a verseket az órán ismertetett technikák segítségével. Egy vers javasolt érzelmi hangulata megegyezik-e az Azure kifinomultabb szolgáltatásának döntésével? Miért igen vagy miért nem, véleményed szerint? Van-e valami, ami meglep?
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ------------------------------------------------------------------------ | ------------------------------------------------------- | ------------------------ |
+| | Egy jegyzetfüzet bemutatásra kerül, amelyben egy szerző mintáinak alapos elemzése található | A jegyzetfüzet hiányos vagy nem végez elemzést | Nem kerül bemutatásra jegyzetfüzet |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/3-Translation-Sentiment/solution/Julia/README.md b/translations/hu/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
new file mode 100644
index 00000000..5eb65c77
--- /dev/null
+++ b/translations/hu/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/3-Translation-Sentiment/solution/R/README.md b/translations/hu/6-NLP/3-Translation-Sentiment/solution/R/README.md
new file mode 100644
index 00000000..9d3518ae
--- /dev/null
+++ b/translations/hu/6-NLP/3-Translation-Sentiment/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ez egy ideiglenes helyőrző
+
+---
+
+**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
diff --git a/translations/hu/6-NLP/4-Hotel-Reviews-1/README.md b/translations/hu/6-NLP/4-Hotel-Reviews-1/README.md
new file mode 100644
index 00000000..edb9bd06
--- /dev/null
+++ b/translations/hu/6-NLP/4-Hotel-Reviews-1/README.md
@@ -0,0 +1,413 @@
+
+# Érzelemfelismerés szállodai véleményekkel - adatok feldolgozása
+
+Ebben a részben az előző leckékben tanult technikákat fogod használni egy nagy adatállomány feltáró elemzéséhez. Miután jól megérted az egyes oszlopok hasznosságát, megtanulod:
+
+- hogyan távolítsd el a felesleges oszlopokat
+- hogyan számíts új adatokat a meglévő oszlopok alapján
+- hogyan mentsd el az eredményül kapott adatállományt a végső kihívás során történő felhasználásra
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+### Bevezetés
+
+Eddig megtanultad, hogy a szöveges adatok jelentősen eltérnek a numerikus adatoktól. Ha az adatokat ember írta vagy mondta, elemezhetők minták, gyakoriságok, érzelmek és jelentések szempontjából. Ez a lecke egy valós adatállományt és egy valós kihívást mutat be: **[515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)**, amely [CC0: Public Domain licenccel](https://creativecommons.org/publicdomain/zero/1.0/) rendelkezik. Az adatokat a Booking.com nyilvános forrásaiból gyűjtötték össze. Az adatállomány készítője Jiashen Liu.
+
+### Felkészülés
+
+Amire szükséged lesz:
+
+* Python 3-at futtató .ipynb notebookok használata
+* pandas
+* NLTK, [amit helyben telepítened kell](https://www.nltk.org/install.html)
+* Az adatállomány, amely elérhető a Kaggle-en: [515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe). Kibontva körülbelül 230 MB. Töltsd le az NLP leckékhez tartozó gyökér `/data` mappába.
+
+## Feltáró adatvizsgálat
+
+Ez a kihívás azt feltételezi, hogy egy szállodai ajánló botot építesz érzelemfelismerés és vendégértékelések alapján. Az adatállomány, amelyet használni fogsz, 1493 különböző szálloda véleményeit tartalmazza 6 városban.
+
+Python, szállodai vélemények adatállománya és az NLTK érzelemfelismerő eszköze segítségével megtudhatod:
+
+* Melyek a leggyakrabban használt szavak és kifejezések a véleményekben?
+* A szállodát leíró hivatalos *címkék* összefüggésben vannak-e az értékelési pontszámokkal (pl. több negatív vélemény érkezik-e egy adott szállodára *Fiatal gyerekes család* címkével, mint *Egyedül utazó* címkével, ami esetleg azt jelezheti, hogy az egyedül utazóknak jobban megfelel)?
+* Az NLTK érzelemfelismerő pontszámai "egyeznek-e" a szállodai vélemények numerikus pontszámával?
+
+#### Adatállomány
+
+Vizsgáljuk meg az adatállományt, amelyet letöltöttél és helyben elmentettél. Nyisd meg a fájlt egy szerkesztőben, például VS Code-ban vagy akár Excelben.
+
+Az adatállomány fejlécének oszlopai a következők:
+
+*Hotel_Address, Additional_Number_of_Scoring, Review_Date, Average_Score, Hotel_Name, Reviewer_Nationality, Negative_Review, Review_Total_Negative_Word_Counts, Total_Number_of_Reviews, Positive_Review, Review_Total_Positive_Word_Counts, Total_Number_of_Reviews_Reviewer_Has_Given, Reviewer_Score, Tags, days_since_review, lat, lng*
+
+Itt csoportosítva vannak, hogy könnyebb legyen áttekinteni őket:
+##### Szállodai oszlopok
+
+* `Hotel_Name`, `Hotel_Address`, `lat` (szélességi fok), `lng` (hosszúsági fok)
+ * A *lat* és *lng* segítségével térképet készíthetsz Pythonban, amely megmutatja a szállodák helyét (esetleg színkódolva a negatív és pozitív vélemények alapján)
+ * A Hotel_Address nem tűnik különösebben hasznosnak, valószínűleg országra cseréljük, hogy könnyebb legyen rendezni és keresni
+
+**Szállodai meta-vélemény oszlopok**
+
+* `Average_Score`
+ * Az adatállomány készítője szerint ez az oszlop a *szálloda átlagos pontszáma, amelyet az elmúlt év legfrissebb véleményei alapján számítottak ki*. Ez szokatlan módja a pontszám kiszámításának, de mivel az adatokat így gyűjtötték, egyelőre elfogadhatjuk.
+
+ ✅ Az adatállomány többi oszlopa alapján tudsz más módot kitalálni az átlagos pontszám kiszámítására?
+
+* `Total_Number_of_Reviews`
+ * A szálloda által kapott vélemények teljes száma - nem egyértelmű (kód írása nélkül), hogy ez az adatállományban szereplő véleményekre vonatkozik-e.
+* `Additional_Number_of_Scoring`
+ * Ez azt jelenti, hogy pontszámot adtak, de a véleményező nem írt pozitív vagy negatív véleményt.
+
+**Vélemény oszlopok**
+
+- `Reviewer_Score`
+ - Ez egy numerikus érték, amely legfeljebb 1 tizedesjegyet tartalmaz, és 2.5 és 10 közötti minimum és maximum értékek között mozog.
+ - Nem magyarázzák meg, miért 2.5 a legalacsonyabb lehetséges pontszám.
+- `Negative_Review`
+ - Ha a véleményező nem írt semmit, ez a mező "**No Negative**" értéket kap.
+ - Figyelj arra, hogy a véleményező pozitív véleményt is írhat a negatív vélemény mezőbe (pl. "semmi rossz nincs ebben a szállodában").
+- `Review_Total_Negative_Word_Counts`
+ - Magasabb negatív szószám alacsonyabb pontszámot jelez (az érzelmi töltet ellenőrzése nélkül).
+- `Positive_Review`
+ - Ha a véleményező nem írt semmit, ez a mező "**No Positive**" értéket kap.
+ - Figyelj arra, hogy a véleményező negatív véleményt is írhat a pozitív vélemény mezőbe (pl. "semmi jó nincs ebben a szállodában").
+- `Review_Total_Positive_Word_Counts`
+ - Magasabb pozitív szószám magasabb pontszámot jelez (az érzelmi töltet ellenőrzése nélkül).
+- `Review_Date` és `days_since_review`
+ - Frissességi vagy elavultsági mérőszámot lehet alkalmazni a véleményekre (régebbi vélemények nem biztos, hogy olyan pontosak, mint az újabbak, mert a szálloda vezetése megváltozott, felújításokat végeztek, vagy például medencét építettek).
+- `Tags`
+ - Ezek rövid leírások, amelyeket a véleményező választhat, hogy leírja, milyen típusú vendég volt (pl. egyedül vagy családdal), milyen típusú szobában szállt meg, mennyi ideig tartózkodott, és hogyan nyújtotta be a véleményt.
+ - Sajnos ezeknek a címkéknek a használata problémás, lásd az alábbi szakaszt, amely a hasznosságukat tárgyalja.
+
+**Véleményező oszlopok**
+
+- `Total_Number_of_Reviews_Reviewer_Has_Given`
+ - Ez egy tényező lehet az ajánlási modellben, például ha meg tudod állapítani, hogy a több száz véleményt író véleményezők inkább negatívak, mint pozitívak. Azonban az adott vélemény véleményezője nem azonosítható egyedi kóddal, és ezért nem kapcsolható össze egy véleményhalmazzal. 30 véleményező van, akik 100 vagy több véleményt írtak, de nehéz látni, hogyan segítheti ez az ajánlási modellt.
+- `Reviewer_Nationality`
+ - Egyesek azt gondolhatják, hogy bizonyos nemzetiségek hajlamosabbak pozitív vagy negatív véleményt adni nemzeti hajlamuk miatt. Légy óvatos, ha ilyen anekdotikus nézeteket építesz be a modelljeidbe. Ezek nemzeti (és néha faji) sztereotípiák, és minden véleményező egyén volt, aki a saját tapasztalatai alapján írt véleményt. Ez sok szűrőn keresztül történhetett, például korábbi szállodai tartózkodásaik, az utazott távolság, és személyes temperamentumuk alapján. Nehéz igazolni azt a feltételezést, hogy a véleménypontszám oka a nemzetiségük volt.
+
+##### Példák
+
+| Átlagos pontszám | Vélemények száma | Véleményező pontszám | Negatív Vélemény | Pozitív vélemény | Címkék |
+| ---------------- | ---------------- | -------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ----------------------------------------------------------------------------------------- |
+| 7.8 | 1945 | 2.5 | Ez jelenleg nem szálloda, hanem építkezési terület. Korán reggel és egész nap elfogadhatatlan építési zajjal terrorizáltak, miközben egy hosszú utazás után pihentem és dolgoztam a szobában. Az emberek egész nap dolgoztak, például légkalapáccsal a szomszédos szobákban. Kértem szobacserét, de nem volt csendes szoba elérhető. Ráadásul túlszámláztak. Este kijelentkeztem, mivel korán kellett indulnom a repülőjáratomhoz, és megfelelő számlát kaptam. Egy nappal később a szálloda további díjat számolt fel a beleegyezésem nélkül, a foglalási ár felett. Ez egy szörnyű hely. Ne büntesd magad azzal, hogy itt foglalsz. | Semmi. Szörnyű hely. Kerüld el. | Üzleti út Pár Standard Double Room 2 éjszakát töltött |
+
+Amint láthatod, ez a vendég nem volt elégedett a szállodai tartózkodásával. A szálloda jó átlagos pontszámmal rendelkezik (7.8) és 1945 véleménnyel, de ez a véleményező 2.5 pontot adott, és 115 szót írt arról, mennyire negatív volt az ott tartózkodása. Ha semmit sem írt volna a Pozitív vélemény oszlopba, feltételezhetnéd, hogy semmi pozitív nem volt, de mégis írt 7 figyelmeztető szót. Ha csak a szavak számát néznénk, a szavak jelentése vagy érzelmi töltete helyett, torz képet kaphatnánk a véleményező szándékáról. Furcsa módon a 2.5 pontszám zavaró, mert ha a szállodai tartózkodás ennyire rossz volt, miért adott egyáltalán pontot? Az adatállomány alapos vizsgálata során láthatod, hogy a legalacsonyabb lehetséges pontszám 2.5, nem 0. A legmagasabb lehetséges pontszám 10.
+
+##### Címkék
+
+Ahogy fentebb említettük, első pillantásra a `Tags` oszlop használata az adatok kategorizálására logikusnak tűnik. Sajnos ezek a címkék nem szabványosítottak, ami azt jelenti, hogy egy adott szállodában az opciók lehetnek *Single room*, *Twin room* és *Double room*, míg egy másik szállodában *Deluxe Single Room*, *Classic Queen Room* és *Executive King Room*. Ezek lehetnek ugyanazok, de annyi variáció van, hogy a választás a következő:
+
+1. Minden kifejezést egyetlen szabványra próbálunk átalakítani, ami nagyon nehéz, mert nem világos, hogy mi lenne az átalakítási útvonal minden esetben (pl. *Classic single room* átalakítása *Single room*-ra, de *Superior Queen Room with Courtyard Garden or City View* sokkal nehezebb).
+
+1. NLP megközelítést alkalmazunk, és mérjük bizonyos kifejezések, mint például *Solo*, *Business Traveller* vagy *Family with young kids* gyakoriságát, ahogy azok az egyes szállodákra vonatkoznak, és ezt beépítjük az ajánlásba.
+
+A címkék általában (de nem mindig) egyetlen mezőt tartalmaznak, amely 5-6 vesszővel elválasztott értéket sorol fel, amelyek a *Utazás típusa*, *Vendégek típusa*, *Szoba típusa*, *Éjszakák száma* és *Eszköz típusa, amelyen a véleményt benyújtották* kategóriákhoz igazodnak. Azonban mivel néhány véleményező nem tölti ki az összes mezőt (egy mezőt üresen hagyhat), az értékek nem mindig ugyanabban a sorrendben vannak.
+
+Például vegyük a *Csoport típusa* kategóriát. Ebben az oszlopban a `Tags` mezőben 1025 egyedi lehetőség van, és sajnos csak néhányuk utal csoportokra (néhány a szoba típusára stb.). Ha csak azokat szűröd, amelyek családot említenek, az eredmények sok *Family room* típusú eredményt tartalmaznak. Ha hozzáadod a *with* kifejezést, azaz számolod a *Family with* értékeket, az eredmények jobbak, több mint 80,000 a 515,000 eredményből tartalmazza a "Family with young children" vagy "Family with older children" kifejezést.
+
+Ez azt jelenti, hogy a címkék oszlop nem teljesen haszontalan számunkra, de némi munkát igényel, hogy hasznossá váljon.
+
+##### Szállodai átlagos pontszám
+
+Az adatállományban számos furcsaság vagy eltérés van, amelyeket nem tudok megfejteni, de itt bemutatom őket, hogy tisztában legyél velük, amikor a modelljeidet építed. Ha megfejted, kérlek, oszd meg velünk a vitafórumon!
+
+Az adatállomány az alábbi oszlopokat tartalmazza az átlagos pontszám és a vélemények száma kapcsán:
+
+1. Hotel_Name
+2. Additional_Number_of_Scoring
+3. Average_Score
+4. Total_Number_of_Reviews
+5. Reviewer_Score
+
+Az adatállományban a legtöbb véleménnyel rendelkező szálloda a *Britannia International Hotel Canary Wharf*, amely 4789 véleményt tartalmaz az 515,000-ből. De ha megnézzük a `Total_Number_of_Reviews` értéket ennél a szállodánál, az 9086. Feltételezheted, hogy sokkal több pontszám van vélemények nélkül, így talán hozzá kellene adni az `Additional_Number_of_Scoring` oszlop értékét. Az érték 2682, és ha hozzáadjuk a 4789-hez, 7471-et kapunk, ami még mindig 1615-tel kevesebb, mint a `Total_Number_of_Reviews`.
+
+Ha az `Average_Score` oszlopot nézed, feltételezheted, hogy az az adatállományban szereplő vélemények átlaga, de a Kaggle leírása szerint "*A szálloda átlagos pontszáma, amelyet az elmúlt év legfrissebb véleményei alapján számítottak ki*". Ez nem tűnik túl hasznosnak, de kiszámíthatjuk a saját átlagunkat az adatállományban szereplő véleménypontszámok alapján. Ugyanazt a szállodát példaként használva, az átlagos szállodai pontszám 7.1, de az adatállományban szereplő véleményező pontszámok átlaga 6.8. Ez közel van, de nem ugyanaz az érték,
+> 🚨 Egy figyelmeztetés
+
+> Amikor ezzel az adathalmazzal dolgozol, olyan kódot fogsz írni, amely kiszámít valamit a szövegből anélkül, hogy magát a szöveget el kellene olvasnod vagy elemezned. Ez az NLP lényege: jelentés vagy érzelem értelmezése anélkül, hogy emberi beavatkozásra lenne szükség. Azonban előfordulhat, hogy elolvasol néhány negatív értékelést. Arra biztatlak, hogy ne tedd, mert nincs rá szükség. Néhányuk nevetséges vagy irreleváns negatív hotelértékelés, például: "Nem volt jó az időjárás", ami a hotel, vagy bárki más számára nem befolyásolható tényező. De van egy sötét oldala is néhány értékelésnek. Néha a negatív értékelések rasszista, szexista vagy életkorral kapcsolatos előítéleteket tartalmaznak. Ez sajnálatos, de várható egy nyilvános weboldalról lekapart adathalmaz esetében. Néhány értékelő olyan véleményeket hagy, amelyeket ízléstelennek, kényelmetlennek vagy felkavarónak találhatsz. Jobb, ha a kód méri az érzelmeket, mintha magad olvasnád el őket és felzaklatnád magad. Ennek ellenére csak kisebbség ír ilyen dolgokat, de mégis léteznek.
+## Feladat - Adatfeltárás
+### Adatok betöltése
+
+Elég volt az adatok vizuális vizsgálatából, most írj néhány kódot, hogy válaszokat kapj! Ebben a részben a pandas könyvtárat fogjuk használni. Az első feladatod az, hogy megbizonyosodj arról, hogy be tudod tölteni és olvasni a CSV adatokat. A pandas könyvtár gyors CSV betöltőt kínál, és az eredményt egy dataframe-be helyezi, ahogy azt korábbi leckékben láttuk. A betöltendő CSV több mint félmillió sort tartalmaz, de csak 17 oszlopot. A pandas számos hatékony módot kínál a dataframe-ekkel való interakcióra, beleértve a műveletek végrehajtását minden soron.
+
+Ettől a ponttól kezdve a leckében kódrészletek és magyarázatok lesznek a kódról, valamint némi vita arról, hogy mit jelentenek az eredmények. Használd a mellékelt _notebook.ipynb_-t a kódodhoz.
+
+Kezdjük azzal, hogy betöltjük az adatfájlt, amelyet használni fogsz:
+
+```python
+# Load the hotel reviews from CSV
+import pandas as pd
+import time
+# importing time so the start and end time can be used to calculate file loading time
+print("Loading data file now, this could take a while depending on file size")
+start = time.time()
+# df is 'DataFrame' - make sure you downloaded the file to the data folder
+df = pd.read_csv('../../data/Hotel_Reviews.csv')
+end = time.time()
+print("Loading took " + str(round(end - start, 2)) + " seconds")
+```
+
+Most, hogy az adatok betöltve vannak, végezhetünk rajtuk néhány műveletet. Tartsd ezt a kódot a programod tetején a következő részhez.
+
+## Az adatok feltárása
+
+Ebben az esetben az adatok már *tiszták*, ami azt jelenti, hogy készen állnak a feldolgozásra, és nem tartalmaznak más nyelveken írt karaktereket, amelyek problémát okozhatnak az algoritmusoknak, amelyek csak angol karaktereket várnak.
+
+✅ Lehet, hogy olyan adatokkal kell dolgoznod, amelyek kezdeti feldolgozást igényelnek, mielőtt NLP technikákat alkalmaznál, de most nem. Ha mégis, hogyan kezelnéd a nem angol karaktereket?
+
+Szánj egy pillanatot arra, hogy megbizonyosodj arról, hogy az adatok betöltése után kóddal tudod feltárni őket. Könnyű lenne a `Negative_Review` és `Positive_Review` oszlopokra koncentrálni. Ezek természetes szövegekkel vannak tele, amelyeket az NLP algoritmusok feldolgozhatnak. De várj! Mielőtt belevágnál az NLP-be és az érzelemfelismerésbe, kövesd az alábbi kódot, hogy megbizonyosodj arról, hogy az adatkészletben megadott értékek megfelelnek a pandas segítségével számított értékeknek.
+
+## Dataframe műveletek
+
+Az első feladat ebben a leckében az, hogy ellenőrizd, helyesek-e az alábbi állítások, azáltal, hogy írsz néhány kódot, amely megvizsgálja a dataframe-et (anélkül, hogy megváltoztatnád).
+
+> Mint sok programozási feladatnál, itt is többféle módon lehet megoldani, de jó tanács, hogy a legegyszerűbb, legkönnyebb módon csináld, különösen, ha később könnyebb lesz megérteni, amikor visszatérsz ehhez a kódhoz. A dataframe-ekkel egy átfogó API áll rendelkezésre, amely gyakran hatékony módot kínál arra, hogy elvégezd, amit szeretnél.
+
+Tekintsd az alábbi kérdéseket kódolási feladatoknak, és próbáld meg megválaszolni őket anélkül, hogy megnéznéd a megoldást.
+
+1. Írd ki a dataframe *alakját* (shape), amelyet éppen betöltöttél (az alak a sorok és oszlopok száma).
+2. Számítsd ki az értékek gyakoriságát a reviewer nemzetiségek esetében:
+ 1. Hány különböző érték van a `Reviewer_Nationality` oszlopban, és mik ezek?
+ 2. Melyik reviewer nemzetiség a leggyakoribb az adatkészletben (ország és értékelések száma)?
+ 3. Melyek a következő 10 leggyakrabban előforduló nemzetiségek, és azok gyakorisága?
+3. Melyik volt a leggyakrabban értékelt hotel a 10 leggyakoribb reviewer nemzetiség esetében?
+4. Hány értékelés van hotelenként (hotel gyakoriság az adatkészletben)?
+5. Bár van egy `Average_Score` oszlop minden hotel esetében az adatkészletben, kiszámíthatod az átlagos pontszámot is (az összes reviewer pontszámának átlaga az adatkészletben hotelenként). Adj hozzá egy új oszlopot a dataframe-hez `Calc_Average_Score` oszlopfejléccel, amely tartalmazza a kiszámított átlagot.
+6. Van-e olyan hotel, amelynek ugyanaz az (1 tizedesjegyre kerekített) `Average_Score` és `Calc_Average_Score` értéke?
+ 1. Próbálj meg írni egy Python függvényt, amely egy Series-t (sor) vesz argumentumként, és összehasonlítja az értékeket, üzenetet nyomtatva, ha az értékek nem egyenlőek. Ezután használd a `.apply()` metódust, hogy minden sort feldolgozz a függvénnyel.
+7. Számítsd ki és írd ki, hány sorban van a `Negative_Review` oszlop értéke "No Negative".
+8. Számítsd ki és írd ki, hány sorban van a `Positive_Review` oszlop értéke "No Positive".
+9. Számítsd ki és írd ki, hány sorban van a `Positive_Review` oszlop értéke "No Positive" **és** a `Negative_Review` oszlop értéke "No Negative".
+
+### Kódválaszok
+
+1. Írd ki a dataframe *alakját* (shape), amelyet éppen betöltöttél (az alak a sorok és oszlopok száma).
+
+ ```python
+ print("The shape of the data (rows, cols) is " + str(df.shape))
+ > The shape of the data (rows, cols) is (515738, 17)
+ ```
+
+2. Számítsd ki az értékek gyakoriságát a reviewer nemzetiségek esetében:
+
+ 1. Hány különböző érték van a `Reviewer_Nationality` oszlopban, és mik ezek?
+ 2. Melyik reviewer nemzetiség a leggyakoribb az adatkészletben (ország és értékelések száma)?
+
+ ```python
+ # value_counts() creates a Series object that has index and values in this case, the country and the frequency they occur in reviewer nationality
+ nationality_freq = df["Reviewer_Nationality"].value_counts()
+ print("There are " + str(nationality_freq.size) + " different nationalities")
+ # print first and last rows of the Series. Change to nationality_freq.to_string() to print all of the data
+ print(nationality_freq)
+
+ There are 227 different nationalities
+ United Kingdom 245246
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ ...
+ Comoros 1
+ Palau 1
+ Northern Mariana Islands 1
+ Cape Verde 1
+ Guinea 1
+ Name: Reviewer_Nationality, Length: 227, dtype: int64
+ ```
+
+ 3. Melyek a következő 10 leggyakrabban előforduló nemzetiségek, és azok gyakorisága?
+
+ ```python
+ print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.")
+ # Notice there is a leading space on the values, strip() removes that for printing
+ # What is the top 10 most common nationalities and their frequencies?
+ print("The next 10 highest frequency reviewer nationalities are:")
+ print(nationality_freq[1:11].to_string())
+
+ The highest frequency reviewer nationality is United Kingdom with 245246 reviews.
+ The next 10 highest frequency reviewer nationalities are:
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ Saudi Arabia 8951
+ Netherlands 8772
+ Switzerland 8678
+ Germany 7941
+ Canada 7894
+ France 7296
+ ```
+
+3. Melyik volt a leggyakrabban értékelt hotel a 10 leggyakoribb reviewer nemzetiség esetében?
+
+ ```python
+ # What was the most frequently reviewed hotel for the top 10 nationalities
+ # Normally with pandas you will avoid an explicit loop, but wanted to show creating a new dataframe using criteria (don't do this with large amounts of data because it could be very slow)
+ for nat in nationality_freq[:10].index:
+ # First, extract all the rows that match the criteria into a new dataframe
+ nat_df = df[df["Reviewer_Nationality"] == nat]
+ # Now get the hotel freq
+ freq = nat_df["Hotel_Name"].value_counts()
+ print("The most reviewed hotel for " + str(nat).strip() + " was " + str(freq.index[0]) + " with " + str(freq[0]) + " reviews.")
+
+ The most reviewed hotel for United Kingdom was Britannia International Hotel Canary Wharf with 3833 reviews.
+ The most reviewed hotel for United States of America was Hotel Esther a with 423 reviews.
+ The most reviewed hotel for Australia was Park Plaza Westminster Bridge London with 167 reviews.
+ The most reviewed hotel for Ireland was Copthorne Tara Hotel London Kensington with 239 reviews.
+ The most reviewed hotel for United Arab Emirates was Millennium Hotel London Knightsbridge with 129 reviews.
+ The most reviewed hotel for Saudi Arabia was The Cumberland A Guoman Hotel with 142 reviews.
+ The most reviewed hotel for Netherlands was Jaz Amsterdam with 97 reviews.
+ The most reviewed hotel for Switzerland was Hotel Da Vinci with 97 reviews.
+ The most reviewed hotel for Germany was Hotel Da Vinci with 86 reviews.
+ The most reviewed hotel for Canada was St James Court A Taj Hotel London with 61 reviews.
+ ```
+
+4. Hány értékelés van hotelenként (hotel gyakoriság az adatkészletben)?
+
+ ```python
+ # First create a new dataframe based on the old one, removing the uneeded columns
+ hotel_freq_df = df.drop(["Hotel_Address", "Additional_Number_of_Scoring", "Review_Date", "Average_Score", "Reviewer_Nationality", "Negative_Review", "Review_Total_Negative_Word_Counts", "Positive_Review", "Review_Total_Positive_Word_Counts", "Total_Number_of_Reviews_Reviewer_Has_Given", "Reviewer_Score", "Tags", "days_since_review", "lat", "lng"], axis = 1)
+
+ # Group the rows by Hotel_Name, count them and put the result in a new column Total_Reviews_Found
+ hotel_freq_df['Total_Reviews_Found'] = hotel_freq_df.groupby('Hotel_Name').transform('count')
+
+ # Get rid of all the duplicated rows
+ hotel_freq_df = hotel_freq_df.drop_duplicates(subset = ["Hotel_Name"])
+ display(hotel_freq_df)
+ ```
+ | Hotel_Név | Összes_Értékelés_Száma | Talált_Értékelések_Száma |
+ | :----------------------------------------: | :---------------------: | :----------------------: |
+ | Britannia International Hotel Canary Wharf | 9086 | 4789 |
+ | Park Plaza Westminster Bridge London | 12158 | 4169 |
+ | Copthorne Tara Hotel London Kensington | 7105 | 3578 |
+ | ... | ... | ... |
+ | Mercure Paris Porte d Orleans | 110 | 10 |
+ | Hotel Wagner | 135 | 10 |
+ | Hotel Gallitzinberg | 173 | 8 |
+
+ Észreveheted, hogy az *adathalmazban számolt* eredmények nem egyeznek a `Total_Number_of_Reviews` értékével. Nem világos, hogy ez az érték az adathalmazban a hotel összes értékelését képviselte-e, de nem mindet kaparták le, vagy valamilyen más számítást. A `Total_Number_of_Reviews` nem kerül felhasználásra a modellben, mivel nem egyértelmű.
+
+5. Bár van egy `Average_Score` oszlop minden hotel esetében az adatkészletben, kiszámíthatod az átlagos pontszámot is (az összes reviewer pontszámának átlaga az adatkészletben hotelenként). Adj hozzá egy új oszlopot a dataframe-hez `Calc_Average_Score` oszlopfejléccel, amely tartalmazza a kiszámított átlagot. Írd ki a `Hotel_Név`, `Average_Score` és `Calc_Average_Score` oszlopokat.
+
+ ```python
+ # define a function that takes a row and performs some calculation with it
+ def get_difference_review_avg(row):
+ return row["Average_Score"] - row["Calc_Average_Score"]
+
+ # 'mean' is mathematical word for 'average'
+ df['Calc_Average_Score'] = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+
+ # Add a new column with the difference between the two average scores
+ df["Average_Score_Difference"] = df.apply(get_difference_review_avg, axis = 1)
+
+ # Create a df without all the duplicates of Hotel_Name (so only 1 row per hotel)
+ review_scores_df = df.drop_duplicates(subset = ["Hotel_Name"])
+
+ # Sort the dataframe to find the lowest and highest average score difference
+ review_scores_df = review_scores_df.sort_values(by=["Average_Score_Difference"])
+
+ display(review_scores_df[["Average_Score_Difference", "Average_Score", "Calc_Average_Score", "Hotel_Name"]])
+ ```
+
+ Érdekelhet, hogy miért különbözik néha az `Average_Score` érték a kiszámított átlagos pontszámtól. Mivel nem tudhatjuk, miért egyeznek néhány értékek, de mások eltérnek, ebben az esetben a legbiztonságosabb, ha a rendelkezésre álló értékelési pontszámokat használjuk az átlag kiszámításához. Az eltérések általában nagyon kicsik, itt vannak a legnagyobb eltéréssel rendelkező hotelek:
+
+ | Átlagos_Pontszám_Eltérés | Átlagos_Pontszám | Számított_Átlagos_Pontszám | Hotel_Név |
+ | :----------------------: | :--------------: | :------------------------: | ------------------------------------------: |
+ | -0.8 | 7.7 | 8.5 | Best Western Hotel Astoria |
+ | -0.7 | 8.8 | 9.5 | Hotel Stendhal Place Vend me Paris MGallery |
+ | -0.7 | 7.5 | 8.2 | Mercure Paris Porte d Orleans |
+ | -0.7 | 7.9 | 8.6 | Renaissance Paris Vendome Hotel |
+ | -0.5 | 7.0 | 7.5 | Hotel Royal Elys es |
+ | ... | ... | ... | ... |
+ | 0.7 | 7.5 | 6.8 | Mercure Paris Op ra Faubourg Montmartre |
+ | 0.8 | 7.1 | 6.3 | Holiday Inn Paris Montparnasse Pasteur |
+ | 0.9 | 6.8 | 5.9 | Villa Eugenie |
+ | 0.9 | 8.6 | 7.7 | MARQUIS Faubourg St Honor Relais Ch teaux |
+ | 1.3 | 7.2 | 5.9 | Kube Hotel Ice Bar |
+
+ Mivel csak 1 hotel esetében van 1-nél nagyobb eltérés, valószínűleg figyelmen kívül hagyhatjuk az eltérést, és használhatjuk a számított átlagos pontszámot.
+
+6. Számítsd ki és írd ki, hány sorban van a `Negative_Review` oszlop értéke "No Negative".
+
+7. Számítsd ki és írd ki, hány sorban van a `Positive_Review` oszlop értéke "No Positive".
+
+8. Számítsd ki és írd ki, hány sorban van a `Positive_Review` oszlop értéke "No Positive" **és** a `Negative_Review` oszlop értéke "No Negative".
+
+ ```python
+ # with lambdas:
+ start = time.time()
+ no_negative_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" else False , axis=1)
+ print("Number of No Negative reviews: " + str(len(no_negative_reviews[no_negative_reviews == True].index)))
+
+ no_positive_reviews = df.apply(lambda x: True if x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of No Positive reviews: " + str(len(no_positive_reviews[no_positive_reviews == True].index)))
+
+ both_no_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" and x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of both No Negative and No Positive reviews: " + str(len(both_no_reviews[both_no_reviews == True].index)))
+ end = time.time()
+ print("Lambdas took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Lambdas took 9.64 seconds
+ ```
+
+## Egy másik módszer
+
+Egy másik mód az elemek számolására lambdák nélkül, és a sorok számolására a sum használatával:
+
+ ```python
+ # without lambdas (using a mixture of notations to show you can use both)
+ start = time.time()
+ no_negative_reviews = sum(df.Negative_Review == "No Negative")
+ print("Number of No Negative reviews: " + str(no_negative_reviews))
+
+ no_positive_reviews = sum(df["Positive_Review"] == "No Positive")
+ print("Number of No Positive reviews: " + str(no_positive_reviews))
+
+ both_no_reviews = sum((df.Negative_Review == "No Negative") & (df.Positive_Review == "No Positive"))
+ print("Number of both No Negative and No Positive reviews: " + str(both_no_reviews))
+
+ end = time.time()
+ print("Sum took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Sum took 0.19 seconds
+ ```
+
+ Észrevehetted, hogy 127 sor van, amelyben mind a `Negative_Review` oszlop értéke "No Negative", mind a `Positive_Review` oszlop értéke "No Positive". Ez azt jelenti, hogy az értékelő adott egy numerikus pontszámot a hotelnek, de nem írt sem pozitív, sem negatív értékelést. Szerencsére ez csak kis mennyiségű sor (127 a 515738-ból, vagyis 0,02%), így valószínűleg nem torzítja a modellünket vagy az eredményeinket semmilyen irányba, de lehet, hogy nem számítottál arra, hogy egy értékeléseket tartalmazó adathalmazban lesznek sorok értékelések nélkül, ezért érdemes feltárni az adatokat, hogy felfedezzük az ilyen sorokat.
+
+Most, hogy feltártad az adatkészletet, a következő leckében szűrni fogod az adatokat, és hozzáadsz némi érzelemfelismerést.
+
+---
+## 🚀Kihívás
+
+Ez a lecke bemutatja, ahogy azt korábbi leckékben láttuk, hogy mennyire kritikus fontosságú az adatok és azok sajátosságainak megértése, mielőtt műveleteket végeznénk rajtuk. Különösen a szövegalapú adatok alapos vizsgálatot igényelnek. Ásd bele magad különböző szövegközpontú adathalmazokba, és nézd meg, felfedezhetsz-e olyan területeket, amelyek torzítást vagy ferde érzelmeket vihetnek be egy modellbe.
+
+## [Utó-leckekvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Vedd fel [ezt az NLP tanulási útvonalat](https://docs.microsoft.com/learn/paths/explore-natural-language-processing/?WT.mc_id=academic-77952-leestott), hogy felfedezd azokat az eszközöket, amelyeket beszéd- és szövegközpontú modellek építésekor kipróbálhatsz.
+
+## Feladat
+
+[NLTK](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/4-Hotel-Reviews-1/assignment.md b/translations/hu/6-NLP/4-Hotel-Reviews-1/assignment.md
new file mode 100644
index 00000000..6639de38
--- /dev/null
+++ b/translations/hu/6-NLP/4-Hotel-Reviews-1/assignment.md
@@ -0,0 +1,19 @@
+
+# NLTK
+
+## Útmutató
+
+Az NLTK egy jól ismert könyvtár, amelyet számítógépes nyelvészetben és NLP-ben használnak. Használja ki ezt az alkalmat, hogy átolvassa az '[NLTK könyvet](https://www.nltk.org/book/)', és próbálja ki a benne található gyakorlatokat. Ebben a nem értékelt feladatban mélyebben megismerkedhet ezzel a könyvtárral.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md b/translations/hu/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
new file mode 100644
index 00000000..b8f0e009
--- /dev/null
+++ b/translations/hu/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/4-Hotel-Reviews-1/solution/R/README.md b/translations/hu/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
new file mode 100644
index 00000000..2a6bc4c8
--- /dev/null
+++ b/translations/hu/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ez egy ideiglenes helyőrző
+
+---
+
+**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
diff --git a/translations/hu/6-NLP/5-Hotel-Reviews-2/README.md b/translations/hu/6-NLP/5-Hotel-Reviews-2/README.md
new file mode 100644
index 00000000..431c675b
--- /dev/null
+++ b/translations/hu/6-NLP/5-Hotel-Reviews-2/README.md
@@ -0,0 +1,367 @@
+
+# Érzelemfelismerés szállodai vélemények alapján
+
+Most, hogy részletesen megvizsgáltad az adatállományt, itt az ideje, hogy szűrd az oszlopokat, majd NLP technikákat alkalmazz az adatállományon, hogy új betekintést nyerj a szállodákról.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+### Szűrési és érzelemfelismerési műveletek
+
+Ahogy valószínűleg észrevetted, az adatállományban van néhány probléma. Néhány oszlop haszontalan információval van tele, mások hibásnak tűnnek. Ha helyesek is, nem világos, hogyan számították ki őket, és az eredmények nem ellenőrizhetők független számításokkal.
+
+## Gyakorlat: további adatfeldolgozás
+
+Tisztítsd meg az adatokat egy kicsit jobban. Adj hozzá oszlopokat, amelyek később hasznosak lesznek, módosítsd más oszlopok értékeit, és teljesen törölj bizonyos oszlopokat.
+
+1. Kezdeti oszlopfeldolgozás
+
+ 1. Töröld a `lat` és `lng` oszlopokat.
+
+ 2. Cseréld ki a `Hotel_Address` értékeit az alábbi értékekre (ha a cím tartalmazza a város és az ország nevét, változtasd meg csak a városra és az országra).
+
+ Ezek az adatállományban szereplő egyetlen városok és országok:
+
+ Amszterdam, Hollandia
+
+ Barcelona, Spanyolország
+
+ London, Egyesült Királyság
+
+ Milánó, Olaszország
+
+ Párizs, Franciaország
+
+ Bécs, Ausztria
+
+ ```python
+ def replace_address(row):
+ if "Netherlands" in row["Hotel_Address"]:
+ return "Amsterdam, Netherlands"
+ elif "Barcelona" in row["Hotel_Address"]:
+ return "Barcelona, Spain"
+ elif "United Kingdom" in row["Hotel_Address"]:
+ return "London, United Kingdom"
+ elif "Milan" in row["Hotel_Address"]:
+ return "Milan, Italy"
+ elif "France" in row["Hotel_Address"]:
+ return "Paris, France"
+ elif "Vienna" in row["Hotel_Address"]:
+ return "Vienna, Austria"
+
+ # Replace all the addresses with a shortened, more useful form
+ df["Hotel_Address"] = df.apply(replace_address, axis = 1)
+ # The sum of the value_counts() should add up to the total number of reviews
+ print(df["Hotel_Address"].value_counts())
+ ```
+
+ Most már lekérdezheted az ország szintű adatokat:
+
+ ```python
+ display(df.groupby("Hotel_Address").agg({"Hotel_Name": "nunique"}))
+ ```
+
+ | Hotel_Address | Hotel_Name |
+ | :--------------------- | :--------: |
+ | Amsterdam, Netherlands | 105 |
+ | Barcelona, Spain | 211 |
+ | London, United Kingdom | 400 |
+ | Milan, Italy | 162 |
+ | Paris, France | 458 |
+ | Vienna, Austria | 158 |
+
+2. Szállodai meta-vélemény oszlopok feldolgozása
+
+ 1. Töröld az `Additional_Number_of_Scoring` oszlopot.
+
+ 1. Cseréld ki a `Total_Number_of_Reviews` értékét az adott szállodához tartozó vélemények tényleges számával az adatállományban.
+
+ 1. Cseréld ki az `Average_Score` értékét a saját számított átlagos pontszámunkkal.
+
+ ```python
+ # Drop `Additional_Number_of_Scoring`
+ df.drop(["Additional_Number_of_Scoring"], axis = 1, inplace=True)
+ # Replace `Total_Number_of_Reviews` and `Average_Score` with our own calculated values
+ df.Total_Number_of_Reviews = df.groupby('Hotel_Name').transform('count')
+ df.Average_Score = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+ ```
+
+3. Vélemény oszlopok feldolgozása
+
+ 1. Töröld a `Review_Total_Negative_Word_Counts`, `Review_Total_Positive_Word_Counts`, `Review_Date` és `days_since_review` oszlopokat.
+
+ 2. Hagyd meg a `Reviewer_Score`, `Negative_Review` és `Positive_Review` oszlopokat változatlanul.
+
+ 3. Egyelőre hagyd meg a `Tags` oszlopot.
+
+ - A következő szakaszban további szűrési műveleteket végzünk a címkéken, majd a címkék törlésre kerülnek.
+
+4. Véleményező oszlopok feldolgozása
+
+ 1. Töröld a `Total_Number_of_Reviews_Reviewer_Has_Given` oszlopot.
+
+ 2. Hagyd meg a `Reviewer_Nationality` oszlopot.
+
+### Címke oszlopok
+
+A `Tag` oszlop problémás, mivel egy lista (szöveg formájában) van tárolva az oszlopban. Sajnos az alrészek sorrendje és száma nem mindig ugyanaz. Nehéz az ember számára azonosítani a releváns kifejezéseket, mivel 515,000 sor és 1427 szálloda van, és mindegyiknek kissé eltérő lehetőségei vannak, amelyeket a véleményező választhatott. Itt jön képbe az NLP. A szöveget átvizsgálva megtalálhatod a leggyakoribb kifejezéseket, és megszámolhatod őket.
+
+Sajnos nem az egyes szavak érdekelnek minket, hanem több szóból álló kifejezések (pl. *Üzleti út*). Egy több szóból álló gyakorisági eloszlás algoritmus futtatása ekkora adatmennyiségen (6762646 szó) rendkívül sok időt vehet igénybe, de anélkül, hogy megnéznénk az adatokat, úgy tűnik, hogy ez szükséges költség. Itt jön jól az exploratív adatvizsgálat, mivel láttál egy mintát a címkékből, például `[' Üzleti út ', ' Egyedül utazó ', ' Egyágyas szoba ', ' 5 éjszakát maradt ', ' Mobil eszközről küldve ']`, elkezdheted megkérdezni, hogy lehetséges-e jelentősen csökkenteni a feldolgozást. Szerencsére lehetséges - de először néhány lépést kell követned, hogy meghatározd az érdekes címkéket.
+
+### Címkék szűrése
+
+Ne feledd, hogy az adatállomány célja az érzelmek és oszlopok hozzáadása, amelyek segítenek kiválasztani a legjobb szállodát (számodra vagy esetleg egy ügyfél számára, aki szállodai ajánló botot szeretne készíteni). Fel kell tenned magadnak a kérdést, hogy a címkék hasznosak-e vagy sem a végső adatállományban. Íme egy értelmezés (ha más célból lenne szükséged az adatállományra, különböző címkék maradhatnak benne/kieshetnek):
+
+1. Az utazás típusa releváns, ezt meg kell tartani.
+2. A vendégcsoport típusa fontos, ezt meg kell tartani.
+3. Az a szoba, lakosztály vagy stúdió típusa, amelyben a vendég tartózkodott, irreleváns (minden szállodában alapvetően ugyanazok a szobák vannak).
+4. Az eszköz, amelyről a véleményt beküldték, irreleváns.
+5. Az éjszakák száma, amelyet a véleményező ott töltött, *lehet*, hogy releváns, ha hosszabb tartózkodást a szálloda kedvelésével társítasz, de ez erőltetett, és valószínűleg irreleváns.
+
+Összefoglalva, **tarts meg 2 fajta címkét, és távolítsd el a többit**.
+
+Először nem akarod megszámolni a címkéket, amíg nem kerülnek jobb formátumba, tehát ez azt jelenti, hogy el kell távolítani a szögletes zárójeleket és az idézőjeleket. Ezt többféleképpen megteheted, de a leggyorsabbat szeretnéd, mivel sok adat feldolgozása hosszú időt vehet igénybe. Szerencsére a pandas egyszerű módot kínál mindegyik lépés elvégzésére.
+
+```Python
+# Remove opening and closing brackets
+df.Tags = df.Tags.str.strip("[']")
+# remove all quotes too
+df.Tags = df.Tags.str.replace(" ', '", ",", regex = False)
+```
+
+Minden címke valami ilyesmivé válik: `Üzleti út, Egyedül utazó, Egyágyas szoba, 5 éjszakát maradt, Mobil eszközről küldve`.
+
+Ezután találunk egy problémát. Néhány vélemény vagy sor 5 oszlopot tartalmaz, néhány 3-at, néhány 6-ot. Ez az adatállomány létrehozásának eredménye, és nehéz javítani. Szeretnéd megszámolni az egyes kifejezések gyakoriságát, de ezek különböző sorrendben vannak minden véleményben, így a számolás hibás lehet, és egy szálloda nem kapja meg azt a címkét, amelyet megérdemelt volna.
+
+Ehelyett a különböző sorrendet az előnyünkre fordítjuk, mivel minden címke több szóból áll, de vesszővel is el van választva! A legegyszerűbb módja ennek az, hogy létrehozunk 6 ideiglenes oszlopot, amelyekbe minden címkét beillesztünk a címke sorrendjének megfelelő oszlopba. Ezután egyesítheted a 6 oszlopot egy nagy oszlopba, és futtathatod a `value_counts()` metódust az eredményoszlopon. Ha ezt kinyomtatod, látni fogod, hogy 2428 egyedi címke volt. Íme egy kis minta:
+
+| Címke | Szám |
+| ------------------------------ | ------ |
+| Szabadidős utazás | 417778 |
+| Mobil eszközről küldve | 307640 |
+| Pár | 252294 |
+| 1 éjszakát maradt | 193645 |
+| 2 éjszakát maradt | 133937 |
+| Egyedül utazó | 108545 |
+| 3 éjszakát maradt | 95821 |
+| Üzleti út | 82939 |
+| Csoport | 65392 |
+| Fiatal gyermekes család | 61015 |
+| 4 éjszakát maradt | 47817 |
+| Kétszemélyes szoba | 35207 |
+| Standard kétszemélyes szoba | 32248 |
+| Superior kétszemélyes szoba | 31393 |
+| Idősebb gyermekes család | 26349 |
+| Deluxe kétszemélyes szoba | 24823 |
+| Kétszemélyes vagy ikerszoba | 22393 |
+| 5 éjszakát maradt | 20845 |
+| Standard kétszemélyes vagy ikerszoba | 17483 |
+| Klasszikus kétszemélyes szoba | 16989 |
+| Superior kétszemélyes vagy ikerszoba | 13570 |
+| 2 szoba | 12393 |
+
+Néhány gyakori címke, mint például `Mobil eszközről küldve`, nem hasznos számunkra, így okos dolog lehet eltávolítani őket, mielőtt megszámolnánk a kifejezések előfordulását, de ez olyan gyors művelet, hogy benne hagyhatod őket, és figyelmen kívül hagyhatod.
+
+### Az éjszakák számát jelző címkék eltávolítása
+
+Ezeknek a címkéknek az eltávolítása az első lépés, amely kissé csökkenti a figyelembe veendő címkék számát. Ne feledd, hogy nem távolítod el őket az adatállományból, csak úgy döntesz, hogy nem veszed figyelembe őket értékként a vélemények adatállományában.
+
+| Tartózkodás hossza | Szám |
+| ------------------ | ------ |
+| 1 éjszakát maradt | 193645 |
+| 2 éjszakát maradt | 133937 |
+| 3 éjszakát maradt | 95821 |
+| 4 éjszakát maradt | 47817 |
+| 5 éjszakát maradt | 20845 |
+| 6 éjszakát maradt | 9776 |
+| 7 éjszakát maradt | 7399 |
+| 8 éjszakát maradt | 2502 |
+| 9 éjszakát maradt | 1293 |
+| ... | ... |
+
+Számos különféle szoba, lakosztály, stúdió, apartman stb. van. Mindegyik nagyjából ugyanazt jelenti, és nem releváns számodra, így távolítsd el őket a figyelembe vételből.
+
+| Szobatípus | Szám |
+| --------------------------- | ------ |
+| Kétszemélyes szoba | 35207 |
+| Standard kétszemélyes szoba | 32248 |
+| Superior kétszemélyes szoba | 31393 |
+| Deluxe kétszemélyes szoba | 24823 |
+| Kétszemélyes vagy ikerszoba | 22393 |
+| Standard kétszemélyes vagy ikerszoba | 17483 |
+| Klasszikus kétszemélyes szoba | 16989 |
+| Superior kétszemélyes vagy ikerszoba | 13570 |
+
+Végül, és ez örömteli (mivel nem igényelt sok feldolgozást), a következő *hasznos* címkék maradnak:
+
+| Címke | Szám |
+| --------------------------------------------- | ------ |
+| Szabadidős utazás | 417778 |
+| Pár | 252294 |
+| Egyedül utazó | 108545 |
+| Üzleti út | 82939 |
+| Csoport (összevonva Barátokkal utazók címkével) | 67535 |
+| Fiatal gyermekes család | 61015 |
+| Idősebb gyermekes család | 26349 |
+| Háziállattal | 1405 |
+
+Érvelhetsz azzal, hogy a `Barátokkal utazók` nagyjából ugyanaz, mint a `Csoport`, és ez igaz lenne, ha összevonnád őket, ahogy fentebb. A helyes címkék azonosításához szükséges kód megtalálható itt: [Tags notebook](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb).
+
+Az utolsó lépés az, hogy új oszlopokat hozz létre ezekhez a címkékhez. Ezután minden véleménysor esetében, ha a `Tag` oszlop megegyezik az egyik új oszloppal, adj hozzá egy 1-est, ha nem, adj hozzá egy 0-t. Az eredmény egy összesítés lesz arról, hogy hány véleményező választotta ezt a szállodát (összesítve) például üzleti vagy szabadidős célra, vagy hogy háziállattal érkezett-e, és ez hasznos információ lehet szálloda ajánlásakor.
+
+```python
+# Process the Tags into new columns
+# The file Hotel_Reviews_Tags.py, identifies the most important tags
+# Leisure trip, Couple, Solo traveler, Business trip, Group combined with Travelers with friends,
+# Family with young children, Family with older children, With a pet
+df["Leisure_trip"] = df.Tags.apply(lambda tag: 1 if "Leisure trip" in tag else 0)
+df["Couple"] = df.Tags.apply(lambda tag: 1 if "Couple" in tag else 0)
+df["Solo_traveler"] = df.Tags.apply(lambda tag: 1 if "Solo traveler" in tag else 0)
+df["Business_trip"] = df.Tags.apply(lambda tag: 1 if "Business trip" in tag else 0)
+df["Group"] = df.Tags.apply(lambda tag: 1 if "Group" in tag or "Travelers with friends" in tag else 0)
+df["Family_with_young_children"] = df.Tags.apply(lambda tag: 1 if "Family with young children" in tag else 0)
+df["Family_with_older_children"] = df.Tags.apply(lambda tag: 1 if "Family with older children" in tag else 0)
+df["With_a_pet"] = df.Tags.apply(lambda tag: 1 if "With a pet" in tag else 0)
+
+```
+
+### Az adatállomány mentése
+
+Végül mentsd el az adatállományt az aktuális állapotában egy új néven.
+
+```python
+df.drop(["Review_Total_Negative_Word_Counts", "Review_Total_Positive_Word_Counts", "days_since_review", "Total_Number_of_Reviews_Reviewer_Has_Given"], axis = 1, inplace=True)
+
+# Saving new data file with calculated columns
+print("Saving results to Hotel_Reviews_Filtered.csv")
+df.to_csv(r'../data/Hotel_Reviews_Filtered.csv', index = False)
+```
+
+## Érzelemfelismerési műveletek
+
+Ebben az utolsó szakaszban érzelemfelismerést alkalmazol a vélemény oszlopokra, és az eredményeket elmented egy adatállományban.
+
+## Gyakorlat: a szűrt adatok betöltése és mentése
+
+Ne feledd, hogy most a korábban mentett szűrt adatállományt töltöd be, **nem** az eredeti adatállományt.
+
+```python
+import time
+import pandas as pd
+import nltk as nltk
+from nltk.corpus import stopwords
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+nltk.download('vader_lexicon')
+
+# Load the filtered hotel reviews from CSV
+df = pd.read_csv('../../data/Hotel_Reviews_Filtered.csv')
+
+# You code will be added here
+
+
+# Finally remember to save the hotel reviews with new NLP data added
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r'../data/Hotel_Reviews_NLP.csv', index = False)
+```
+
+### Stop szavak eltávolítása
+
+Ha érzelemfelismerést futtatnál a negatív és pozitív vélemény oszlopokon, az hosszú időt vehet igénybe. Egy erős teszt laptopon, gyors CPU-val tesztelve 12-14 percet vett igénybe, attól függően, hogy melyik érzelemfelismerési könyvtárat használták. Ez viszonylag hosszú idő, így érdemes megvizsgálni, hogy lehet-e gyorsítani.
+
+A stop szavak, vagyis olyan gyakori angol szavak eltávolítása, amelyek nem változtatják meg egy mondat érzelmi töltetét, az első lépés. Ezek eltávolításával az érzelemfelismerés gyorsabban fut, de nem lesz kevésbé pontos (mivel a stop szavak nem befolyásolják az érzelmi töltetet, de lassítják az elemzést).
+
+A leghosszabb negatív vélemény 395 szóból állt, de a stop szavak eltávolítása után 195 szóból.
+
+A stop szavak eltávolítása szintén gyors művelet, 515,000 sorból álló 2 vélemény oszlopból a stop szavak eltávolítása 3,3 másodpercet vett igénybe a teszt eszközön. Ez kissé több vagy kevesebb időt vehet igénybe nálad, attól függően, hogy milyen gyors a CPU-d, mennyi RAM-od van, van-e SSD-d, és néhány más tényezőtől. A művelet relatív rövidsége azt jelenti, hogy ha javítja az érzelemfelismerés idejét, akkor érdemes elvégezni.
+
+@@CODE_BLOCK_
+Az NLTK különböző érzelemelemzőket kínál, amelyekkel tanulhatsz, és helyettesítheted őket, hogy megnézd, az érzelem mennyire pontos vagy kevésbé pontos. Itt a VADER érzelemelemzést használjuk.
+
+> Hutto, C.J. & Gilbert, E.E. (2014). VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text. Eighth International Conference on Weblogs and Social Media (ICWSM-14). Ann Arbor, MI, 2014. június.
+
+```python
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+
+# Create the vader sentiment analyser (there are others in NLTK you can try too)
+vader_sentiment = SentimentIntensityAnalyzer()
+# Hutto, C.J. & Gilbert, E.E. (2014). VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text. Eighth International Conference on Weblogs and Social Media (ICWSM-14). Ann Arbor, MI, June 2014.
+
+# There are 3 possibilities of input for a review:
+# It could be "No Negative", in which case, return 0
+# It could be "No Positive", in which case, return 0
+# It could be a review, in which case calculate the sentiment
+def calc_sentiment(review):
+ if review == "No Negative" or review == "No Positive":
+ return 0
+ return vader_sentiment.polarity_scores(review)["compound"]
+```
+
+Később, amikor a programodban készen állsz az érzelem kiszámítására, alkalmazhatod azt minden egyes értékelésre az alábbi módon:
+
+```python
+# Add a negative sentiment and positive sentiment column
+print("Calculating sentiment columns for both positive and negative reviews")
+start = time.time()
+df["Negative_Sentiment"] = df.Negative_Review.apply(calc_sentiment)
+df["Positive_Sentiment"] = df.Positive_Review.apply(calc_sentiment)
+end = time.time()
+print("Calculating sentiment took " + str(round(end - start, 2)) + " seconds")
+```
+
+Ez körülbelül 120 másodpercet vesz igénybe a számítógépemen, de ez minden gépen eltérő lehet. Ha ki szeretnéd nyomtatni az eredményeket, és megnézni, hogy az érzelem megfelel-e az értékelésnek:
+
+```python
+df = df.sort_values(by=["Negative_Sentiment"], ascending=True)
+print(df[["Negative_Review", "Negative_Sentiment"]])
+df = df.sort_values(by=["Positive_Sentiment"], ascending=True)
+print(df[["Positive_Review", "Positive_Sentiment"]])
+```
+
+Az utolsó dolog, amit a fájllal meg kell tenni, mielőtt a kihívásban használnád, az az, hogy elmented! Érdemes átrendezni az összes új oszlopot is, hogy könnyebb legyen velük dolgozni (emberi szempontból ez csak egy kozmetikai változtatás).
+
+```python
+# Reorder the columns (This is cosmetic, but to make it easier to explore the data later)
+df = df.reindex(["Hotel_Name", "Hotel_Address", "Total_Number_of_Reviews", "Average_Score", "Reviewer_Score", "Negative_Sentiment", "Positive_Sentiment", "Reviewer_Nationality", "Leisure_trip", "Couple", "Solo_traveler", "Business_trip", "Group", "Family_with_young_children", "Family_with_older_children", "With_a_pet", "Negative_Review", "Positive_Review"], axis=1)
+
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r"../data/Hotel_Reviews_NLP.csv", index = False)
+```
+
+Az egész kódot futtatnod kell [az elemző jegyzetfüzethez](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) (miután futtattad [a szűrő jegyzetfüzetet](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb), hogy létrehozd a Hotel_Reviews_Filtered.csv fájlt).
+
+Összefoglalva, a lépések:
+
+1. Az eredeti adatállomány **Hotel_Reviews.csv** a korábbi leckében került feltárásra [az explorer jegyzetfüzettel](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb)
+2. A Hotel_Reviews.csv fájlt [a szűrő jegyzetfüzet](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) szűri, amelynek eredménye **Hotel_Reviews_Filtered.csv**
+3. A Hotel_Reviews_Filtered.csv fájlt [az érzelemelemző jegyzetfüzet](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) dolgozza fel, amelynek eredménye **Hotel_Reviews_NLP.csv**
+4. Használd a Hotel_Reviews_NLP.csv fájlt az alábbi NLP kihívásban
+
+### Következtetés
+
+Amikor elkezdted, volt egy adatállományod oszlopokkal és adatokkal, de nem mindegyik volt ellenőrizhető vagy használható. Feltártad az adatokat, kiszűrted, amire nincs szükséged, átalakítottad a címkéket valami hasznosabbá, kiszámítottad a saját átlagokat, hozzáadtál néhány érzelem oszlopot, és remélhetőleg érdekes dolgokat tanultál a természetes szöveg feldolgozásáról.
+
+## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Kihívás
+
+Most, hogy elemezted az adatállományt érzelem szempontjából, próbáld meg alkalmazni azokat a stratégiákat, amelyeket ebben a tananyagban tanultál (például klaszterezést), hogy mintákat találj az érzelmek körül.
+
+## Áttekintés és önálló tanulás
+
+Vedd fel [ezt a Learn modult](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott), hogy többet tanulj, és különböző eszközöket használj az érzelmek feltárására a szövegben.
+
+## Feladat
+
+[Próbálj ki egy másik adatállományt](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos 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
diff --git a/translations/hu/6-NLP/5-Hotel-Reviews-2/assignment.md b/translations/hu/6-NLP/5-Hotel-Reviews-2/assignment.md
new file mode 100644
index 00000000..4877f573
--- /dev/null
+++ b/translations/hu/6-NLP/5-Hotel-Reviews-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Próbálj ki egy másik adatállományt
+
+## Útmutató
+
+Most, hogy megtanultad, hogyan használhatod az NLTK-t szövegek érzelmi töltetének meghatározására, próbálj ki egy másik adatállományt. Valószínűleg szükséged lesz némi adatfeldolgozásra, ezért hozz létre egy notebookot, és dokumentáld a gondolatmenetedet. Mit fedezel fel?
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------- |
+| | Egy teljes notebook és adatállomány van bemutatva, jól dokumentált cellákkal, amelyek magyarázzák az érzelmi töltet meghatározását | A notebookból hiányoznak jó magyarázatok | A notebook hibás |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.
\ No newline at end of file
diff --git a/translations/hu/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md b/translations/hu/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
new file mode 100644
index 00000000..64eaaaf4
--- /dev/null
+++ b/translations/hu/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/hu/6-NLP/5-Hotel-Reviews-2/solution/R/README.md b/translations/hu/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
new file mode 100644
index 00000000..f6e38541
--- /dev/null
+++ b/translations/hu/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ez egy ideiglenes helyőrző
+
+---
+
+**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. Fontos 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
diff --git a/translations/hu/6-NLP/README.md b/translations/hu/6-NLP/README.md
new file mode 100644
index 00000000..e8a1131f
--- /dev/null
+++ b/translations/hu/6-NLP/README.md
@@ -0,0 +1,38 @@
+
+# Bevezetés a természetes nyelvfeldolgozásba
+
+A természetes nyelvfeldolgozás (NLP) egy számítógépes program képessége arra, hogy megértse az emberi nyelvet, ahogyan azt beszélik és írják – ezt nevezzük természetes nyelvnek. Ez a mesterséges intelligencia (AI) egyik összetevője. Az NLP több mint 50 éve létezik, és a nyelvészet területén gyökerezik. Az egész terület célja, hogy segítse a gépeket az emberi nyelv megértésében és feldolgozásában. Ezután olyan feladatok elvégzésére használható, mint például a helyesírás-ellenőrzés vagy a gépi fordítás. Számos valós alkalmazása van különböző területeken, például orvosi kutatásban, keresőmotorokban és üzleti intelligenciában.
+
+## Regionális téma: Európai nyelvek és irodalom, valamint romantikus szállodák Európában ❤️
+
+A tananyag ezen részében megismerkedhetsz a gépi tanulás egyik legelterjedtebb alkalmazásával: a természetes nyelvfeldolgozással (NLP). A számítógépes nyelvészetből származó mesterséges intelligencia ezen kategóriája hidat képez az emberek és gépek között hang- vagy szöveges kommunikáció révén.
+
+Ezekben a leckékben megtanuljuk az NLP alapjait, kis beszélgető botok építésével, hogy megértsük, hogyan segíti a gépi tanulás ezeknek a beszélgetéseknek az egyre "okosabbá" tételét. Időutazást teszel, és beszélgetsz Elizabeth Bennett-tel és Mr. Darcy-val Jane Austen klasszikus regényéből, a **Büszkeség és balítéletből**, amely 1813-ban jelent meg. Ezután tovább mélyíted tudásodat az érzelemelemzésről európai szállodai vélemények alapján.
+
+
+> Fotó: Elaine Howlin az Unsplash oldalán
+
+## Leckék
+
+1. [Bevezetés a természetes nyelvfeldolgozásba](1-Introduction-to-NLP/README.md)
+2. [Gyakori NLP feladatok és technikák](2-Tasks/README.md)
+3. [Fordítás és érzelemelemzés gépi tanulással](3-Translation-Sentiment/README.md)
+4. [Adatok előkészítése](4-Hotel-Reviews-1/README.md)
+5. [NLTK az érzelemelemzéshez](5-Hotel-Reviews-2/README.md)
+
+## Köszönetnyilvánítás
+
+Ezeket a természetes nyelvfeldolgozási leckéket ☕-val írta [Stephen Howell](https://twitter.com/Howell_MSFT)
+
+---
+
+**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
diff --git a/translations/hu/6-NLP/data/README.md b/translations/hu/6-NLP/data/README.md
new file mode 100644
index 00000000..be7f263f
--- /dev/null
+++ b/translations/hu/6-NLP/data/README.md
@@ -0,0 +1,15 @@
+
+Töltse le a szállodai értékelési adatokat ebbe a mappába.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/7-TimeSeries/1-Introduction/README.md b/translations/hu/7-TimeSeries/1-Introduction/README.md
new file mode 100644
index 00000000..52aaf28e
--- /dev/null
+++ b/translations/hu/7-TimeSeries/1-Introduction/README.md
@@ -0,0 +1,199 @@
+
+# Bevezetés az idősoros előrejelzésbe
+
+
+
+> Vázlatrajz: [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Ebben és a következő leckében megismerkedhetsz az idősoros előrejelzéssel, amely a gépi tanulás tudományának egy érdekes és értékes, bár kevésbé ismert területe. Az idősoros előrejelzés olyan, mint egy „varázsgömb”: egy változó, például ár múltbeli teljesítménye alapján megjósolhatod annak jövőbeli potenciális értékét.
+
+[](https://youtu.be/cBojo1hsHiI "Bevezetés az idősoros előrejelzésbe")
+
+> 🎥 Kattints a fenti képre az idősoros előrejelzésről szóló videóért
+
+## [Előzetes kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+Ez egy hasznos és érdekes terület, amely valódi értéket képvisel az üzleti életben, mivel közvetlenül alkalmazható árképzési, készletgazdálkodási és ellátási lánc problémákra. Bár a mélytanulási technikák egyre inkább használatosak a jövőbeli teljesítmény jobb előrejelzésére, az idősoros előrejelzés továbbra is nagyrészt a klasszikus gépi tanulási technikákra támaszkodik.
+
+> A Penn State hasznos idősoros tananyaga [itt található](https://online.stat.psu.edu/stat510/lesson/1)
+
+## Bevezetés
+
+Tegyük fel, hogy egy sor okos parkolóórát üzemeltetsz, amelyek adatokat szolgáltatnak arról, hogy milyen gyakran és mennyi ideig használják őket az idő múlásával.
+
+> Mi lenne, ha meg tudnád jósolni a parkolóóra jövőbeli értékét a kereslet és kínálat törvényei alapján, a múltbeli teljesítményére alapozva?
+
+Pontosan megjósolni, mikor kell cselekedni a cél elérése érdekében, egy olyan kihívás, amelyet az idősoros előrejelzés segítségével lehet megoldani. Bár nem örülnének az emberek, ha forgalmas időszakokban többet kellene fizetniük parkolóhelyért, ez biztos módja lenne a bevétel növelésének, például az utcák tisztítására.
+
+Nézzük meg néhány idősoros algoritmus típusát, és kezdjünk el egy notebookot az adatok tisztítására és előkészítésére. Az elemzendő adatok a GEFCom2014 előrejelzési versenyből származnak. Ez 3 évnyi óránkénti villamosenergia-fogyasztási és hőmérsékleti adatokat tartalmaz 2012 és 2014 között. A villamosenergia-fogyasztás és a hőmérséklet történelmi mintái alapján megjósolhatod a villamosenergia-fogyasztás jövőbeli értékeit.
+
+Ebben a példában megtanulod, hogyan lehet egy időlépést előre jelezni, kizárólag a történelmi fogyasztási adatok alapján. Mielőtt azonban elkezdenéd, hasznos megérteni, mi zajlik a háttérben.
+
+## Néhány definíció
+
+Amikor az „idősor” kifejezéssel találkozol, fontos megérteni annak használatát különböző kontextusokban.
+
+🎓 **Idősor**
+
+A matematikában az „idősor egy időrendben indexelt (vagy listázott vagy grafikonon ábrázolt) adatpontok sorozata. Leggyakrabban az idősor egy sorozat, amelyet egymást követő, egyenlő időközönként vesznek fel.” Az idősor egyik példája a [Dow Jones ipari átlag](https://wikipedia.org/wiki/Time_series) napi záróértéke. Az idősorok grafikonjainak és statisztikai modellezésének használata gyakran előfordul jelanalízisben, időjárás-előrejelzésben, földrengés-előrejelzésben és más olyan területeken, ahol események történnek, és adatpontokat lehet időben ábrázolni.
+
+🎓 **Idősoros elemzés**
+
+Az idősoros elemzés az előbb említett idősoros adatok elemzése. Az idősoros adatok különböző formákat ölthetnek, beleértve az „megszakított idősorokat”, amelyek mintákat észlelnek egy idősor fejlődésében egy megszakító esemény előtt és után. Az idősorhoz szükséges elemzés típusa az adatok természetétől függ. Az idősoros adatok maguk is lehetnek számok vagy karakterek sorozatai.
+
+Az elvégzendő elemzés különféle módszereket használ, beleértve a frekvenciatartományt és az időtartományt, lineáris és nemlineáris módszereket, és még sok mást. [Tudj meg többet](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) az ilyen típusú adatok elemzésének számos módjáról.
+
+🎓 **Idősoros előrejelzés**
+
+Az idősoros előrejelzés egy modell használata a jövőbeli értékek megjóslására, a korábban gyűjtött adatok által mutatott minták alapján. Bár regressziós modellekkel is lehet idősoros adatokat vizsgálni, ahol az időindexek x változóként jelennek meg egy grafikonon, az ilyen adatokat leginkább speciális típusú modellekkel lehet elemezni.
+
+Az idősoros adatok egy rendezett megfigyelések listája, szemben a lineáris regresszióval elemezhető adatokkal. A leggyakoribb modell az ARIMA, amely az „Autoregresszív Integrált Mozgó Átlag” rövidítése.
+
+[ARIMA modellek](https://online.stat.psu.edu/stat510/lesson/1/1.1) „kapcsolatot teremtenek egy sorozat jelenlegi értéke és a múltbeli értékek, valamint a múltbeli előrejelzési hibák között.” Ezek leginkább az időtartományban rendezett adatok elemzésére alkalmasak.
+
+> Az ARIMA modelleknek több típusa van, amelyekről [itt](https://people.duke.edu/~rnau/411arim.htm) tudhatsz meg többet, és amelyeket a következő leckében érinteni fogsz.
+
+A következő leckében egy ARIMA modellt fogsz építeni [Univariáns Idősorok](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm) használatával, amely egyetlen változóra összpontosít, amely idővel változtatja értékét. Az ilyen típusú adatok egyik példája [ez az adatállomány](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm), amely a Mauna Loa Obszervatóriumban mért havi CO2 koncentrációt rögzíti:
+
+| CO2 | YearMonth | Year | Month |
+| :----: | :-------: | :---: | :---: |
+| 330.62 | 1975.04 | 1975 | 1 |
+| 331.40 | 1975.13 | 1975 | 2 |
+| 331.87 | 1975.21 | 1975 | 3 |
+| 333.18 | 1975.29 | 1975 | 4 |
+| 333.92 | 1975.38 | 1975 | 5 |
+| 333.43 | 1975.46 | 1975 | 6 |
+| 331.85 | 1975.54 | 1975 | 7 |
+| 330.01 | 1975.63 | 1975 | 8 |
+| 328.51 | 1975.71 | 1975 | 9 |
+| 328.41 | 1975.79 | 1975 | 10 |
+| 329.25 | 1975.88 | 1975 | 11 |
+| 330.97 | 1975.96 | 1975 | 12 |
+
+✅ Azonosítsd a változót, amely idővel változik ebben az adatállományban.
+
+## Az idősoros adatok jellemzői, amelyeket figyelembe kell venni
+
+Amikor idősoros adatokat vizsgálsz, észreveheted, hogy [bizonyos jellemzőkkel](https://online.stat.psu.edu/stat510/lesson/1/1.1) rendelkeznek, amelyeket figyelembe kell venni és csökkenteni kell, hogy jobban megértsd a mintáikat. Ha az idősoros adatokat potenciálisan egy „jelként” tekinted, amelyet elemezni szeretnél, ezek a jellemzők „zajként” is felfoghatók. Gyakran szükséges csökkenteni ezt a „zajt” bizonyos statisztikai technikák alkalmazásával.
+
+Íme néhány fogalom, amelyet ismerned kell ahhoz, hogy idősoros adatokkal dolgozhass:
+
+🎓 **Trendek**
+
+A trendek idővel mérhető növekedéseket és csökkenéseket jelentenek. [Olvass többet](https://machinelearningmastery.com/time-series-trends-in-python). Az idősorok kontextusában arról van szó, hogyan lehet használni, és ha szükséges, eltávolítani a trendeket az idősorokból.
+
+🎓 **[Szezonális hatások](https://machinelearningmastery.com/time-series-seasonality-with-python/)**
+
+A szezonális hatások olyan időszakos ingadozások, mint például az ünnepi rohamok, amelyek befolyásolhatják az értékesítést. [Nézd meg](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm), hogyan jelennek meg a szezonális hatások különböző típusú grafikonokon.
+
+🎓 **Szélsőséges értékek**
+
+A szélsőséges értékek messze esnek az adatok szokásos szórásától.
+
+🎓 **Hosszú távú ciklus**
+
+A szezonális hatásoktól függetlenül az adatok hosszú távú ciklust is mutathatnak, például egy gazdasági visszaesést, amely egy évnél tovább tart.
+
+🎓 **Állandó szórás**
+
+Idővel néhány adat állandó ingadozásokat mutat, például napi és éjszakai energiafogyasztás.
+
+🎓 **Hirtelen változások**
+
+Az adatok hirtelen változást mutathatnak, amely további elemzést igényelhet. Például a COVID miatt hirtelen bezáró üzletek változásokat okoztak az adatokban.
+
+✅ Itt van egy [példa idősoros grafikon](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python), amely néhány év alatt napi játékon belüli pénzköltést mutat. Felismered az adatokban a fent felsorolt jellemzők bármelyikét?
+
+
+
+## Gyakorlat - kezdjük az energiafogyasztási adatokkal
+
+Kezdjünk el létrehozni egy idősoros modellt, amely a múltbeli fogyasztás alapján megjósolja a jövőbeli energiafogyasztást.
+
+> Az adatok ebben a példában a GEFCom2014 előrejelzési versenyből származnak. Ez 3 évnyi óránkénti villamosenergia-fogyasztási és hőmérsékleti adatokat tartalmaz 2012 és 2014 között.
+>
+> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli és Rob J. Hyndman, "Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016.
+
+1. Nyisd meg a `working` mappában található _notebook.ipynb_ fájlt. Kezdd azzal, hogy hozzáadod azokat a könyvtárakat, amelyek segítenek az adatok betöltésében és vizualizálásában:
+
+ ```python
+ import os
+ import matplotlib.pyplot as plt
+ from common.utils import load_data
+ %matplotlib inline
+ ```
+
+ Figyelj arra, hogy a `common` mappában található fájlokat használod, amelyek beállítják a környezetet és kezelik az adatok letöltését.
+
+2. Ezután vizsgáld meg az adatokat egy dataframe-ként, a `load_data()` és `head()` hívásával:
+
+ ```python
+ data_dir = './data'
+ energy = load_data(data_dir)[['load']]
+ energy.head()
+ ```
+
+ Láthatod, hogy két oszlop van, amelyek az időpontot és a fogyasztást képviselik:
+
+ | | load |
+ | :-----------------: | :----: |
+ | 2012-01-01 00:00:00 | 2698.0 |
+ | 2012-01-01 01:00:00 | 2558.0 |
+ | 2012-01-01 02:00:00 | 2444.0 |
+ | 2012-01-01 03:00:00 | 2402.0 |
+ | 2012-01-01 04:00:00 | 2403.0 |
+
+3. Most ábrázold az adatokat a `plot()` hívásával:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+4. Ezután ábrázold 2014 júliusának első hetét, az `energy` bemenetként való megadásával `[kezdő dátum]:[záró dátum]` mintában:
+
+ ```python
+ energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Gyönyörű grafikon! Nézd meg ezeket a grafikonokat, és próbáld meg meghatározni a fent felsorolt jellemzők bármelyikét. Mit tudunk megállapítani az adatok vizualizálásával?
+
+A következő leckében egy ARIMA modellt fogsz létrehozni, hogy előrejelzéseket készíts.
+
+---
+
+## 🚀Kihívás
+
+Készíts listát az összes olyan iparágról és kutatási területről, amely szerinted hasznot húzhat az idősoros előrejelzésből. Eszedbe jut olyan alkalmazás ezekre a technikákra a művészetekben? Az ökonometriában? Az ökológiában? A kiskereskedelemben? Az iparban? A pénzügyekben? Hol máshol?
+
+## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Bár itt nem foglalkozunk velük, a neurális hálózatokat néha használják az idősoros előrejelzés klasszikus módszereinek kiegészítésére. Olvass róluk többet [ebben a cikkben](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412)
+
+## Feladat
+
+[Vizualizálj további idősorokat](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az [Co-op Translator](https://github.com/Azure/co-op-translator) AI fordítási szolgáltatás segítségével került lefordításra. 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
diff --git a/translations/hu/7-TimeSeries/1-Introduction/assignment.md b/translations/hu/7-TimeSeries/1-Introduction/assignment.md
new file mode 100644
index 00000000..375dde9b
--- /dev/null
+++ b/translations/hu/7-TimeSeries/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Vizualizálj néhány további idősort
+
+## Útmutató
+
+Elkezdted megismerni az idősort előrejelző modellezést azáltal, hogy megvizsgáltad azokat az adattípusokat, amelyekhez ez a speciális modellezés szükséges. Már vizualizáltál néhány adatot az energiával kapcsolatban. Most keress más adatokat, amelyek hasznosak lehetnek az idősort előrejelző modellezéshez. Találj három példát (próbáld ki a [Kaggle](https://kaggle.com) és az [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott) oldalakat), és készíts egy notebookot, amelyben vizualizálod őket. Jegyezd fel a notebookban az adatok bármilyen különleges jellemzőit (szezonális minták, hirtelen változások vagy más trendek).
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szoruló |
+| --------- | ---------------------------------------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| | Három adatkészlet van ábrázolva és magyarázva a notebookban | Két adatkészlet van ábrázolva és magyarázva a notebookban | Kevés adatkészlet van ábrázolva vagy magyarázva a notebookban, vagy az adatok nem elegendőek |
+
+---
+
+**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
diff --git a/translations/hu/7-TimeSeries/1-Introduction/solution/Julia/README.md b/translations/hu/7-TimeSeries/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..51273c63
--- /dev/null
+++ b/translations/hu/7-TimeSeries/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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 az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.
\ No newline at end of file
diff --git a/translations/hu/7-TimeSeries/1-Introduction/solution/R/README.md b/translations/hu/7-TimeSeries/1-Introduction/solution/R/README.md
new file mode 100644
index 00000000..e8231290
--- /dev/null
+++ b/translations/hu/7-TimeSeries/1-Introduction/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ez egy ideiglenes helyőrző
+
+---
+
+**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
diff --git a/translations/hu/7-TimeSeries/2-ARIMA/README.md b/translations/hu/7-TimeSeries/2-ARIMA/README.md
new file mode 100644
index 00000000..0cfbcbcd
--- /dev/null
+++ b/translations/hu/7-TimeSeries/2-ARIMA/README.md
@@ -0,0 +1,406 @@
+
+# Idősorok előrejelzése ARIMA-val
+
+Az előző leckében megismerkedtél az idősorok előrejelzésének alapjaival, és betöltöttél egy adatállományt, amely az elektromos terhelés ingadozásait mutatja egy időszak alatt.
+
+[](https://youtu.be/IUSk-YDau10 "Bevezetés az ARIMA-ba")
+
+> 🎥 Kattints a fenti képre egy videóért: Rövid bevezetés az ARIMA modellekbe. Az példa R-ben készült, de a koncepciók univerzálisak.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Bevezetés
+
+Ebben a leckében megismerkedsz az [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average) modellek építésének egy konkrét módjával. Az ARIMA modellek különösen alkalmasak olyan adatok illesztésére, amelyek [nem állomásosak](https://wikipedia.org/wiki/Stationary_process).
+
+## Általános fogalmak
+
+Ahhoz, hogy ARIMA-val dolgozhass, néhány alapfogalmat ismerned kell:
+
+- 🎓 **Állomásosság**. Statisztikai értelemben az állomásosság olyan adatokra utal, amelyek eloszlása nem változik időbeli eltolás esetén. A nem állomásos adatok ingadozásokat mutatnak trendek miatt, amelyeket át kell alakítani az elemzéshez. Például a szezonális hatások ingadozásokat okozhatnak az adatokban, amelyeket 'szezonális differenciálás' révén lehet eltávolítani.
+
+- 🎓 **[Differenciálás](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**. A differenciálás statisztikai értelemben az a folyamat, amely során a nem állomásos adatokat állomásossá alakítjuk az állandó trend eltávolításával. "A differenciálás eltávolítja az idősor szintjének változásait, megszünteti a trendet és a szezonális hatásokat, ezáltal stabilizálja az idősor átlagát." [Shixiong et al tanulmánya](https://arxiv.org/abs/1904.07632)
+
+## ARIMA az idősorok kontextusában
+
+Nézzük meg az ARIMA részeit, hogy jobban megértsük, hogyan segít az idősorok modellezésében és előrejelzések készítésében.
+
+- **AR - AutoRegresszív**. Az autoregresszív modellek, ahogy a nevük is sugallja, visszatekintenek az időben, hogy elemezzék az adatok korábbi értékeit, és feltételezéseket tegyenek róluk. Ezeket a korábbi értékeket 'késéseknek' nevezzük. Példa lehet a havi ceruzaeladások adatai. Minden hónap eladási összesítése az adathalmazban egy 'változó' lenne. Ez a modell úgy épül fel, hogy "az érdeklődésre számot tartó változót saját késleltetett (azaz korábbi) értékeire regresszálják." [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)
+
+- **I - Integrált**. Az ARIMA modellekben az 'I' az *[integrált](https://wikipedia.org/wiki/Order_of_integration)* aspektusra utal. Az adatok 'integrálása' a differenciálási lépések alkalmazásával történik, hogy megszüntessük a nem állomásosságot.
+
+- **MA - Mozgó Átlag**. A [mozgó átlag](https://wikipedia.org/wiki/Moving-average_model) aspektus az output változóra utal, amelyet a késések aktuális és korábbi értékeinek megfigyelésével határozunk meg.
+
+Összefoglalva: Az ARIMA-t arra használjuk, hogy a modell minél jobban illeszkedjen az idősorok speciális formájához.
+
+## Gyakorlat - ARIMA modell építése
+
+Nyisd meg a [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) mappát ebben a leckében, és keresd meg a [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb) fájlt.
+
+1. Futtasd a notebookot, hogy betöltsd a `statsmodels` Python könyvtárat; erre szükséged lesz az ARIMA modellekhez.
+
+1. Töltsd be a szükséges könyvtárakat.
+
+1. Most tölts be néhány további könyvtárat, amelyek hasznosak az adatok ábrázolásához:
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from pandas.plotting import autocorrelation_plot
+ from statsmodels.tsa.statespace.sarimax import SARIMAX
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ from IPython.display import Image
+
+ %matplotlib inline
+ pd.options.display.float_format = '{:,.2f}'.format
+ np.set_printoptions(precision=2)
+ warnings.filterwarnings("ignore") # specify to ignore warning messages
+ ```
+
+1. Töltsd be az adatokat a `/data/energy.csv` fájlból egy Pandas dataframe-be, és nézd meg:
+
+ ```python
+ energy = load_data('./data')[['load']]
+ energy.head(10)
+ ```
+
+1. Ábrázold az összes elérhető energiaadatot 2012 januárjától 2014 decemberéig. Nem lesz meglepetés, hiszen ezt az adatot láttuk az előző leckében:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ Most építsünk egy modellt!
+
+### Képzési és tesztelési adathalmazok létrehozása
+
+Most, hogy betöltötted az adatokat, szétválaszthatod őket képzési és tesztelési halmazokra. A modell képzését a képzési halmazon végzed. Szokás szerint, miután a modell befejezte a képzést, a tesztelési halmazzal értékeled annak pontosságát. Biztosítanod kell, hogy a tesztelési halmaz egy későbbi időszakot fed le, mint a képzési halmaz, hogy a modell ne szerezzen információt a jövőbeli időszakokról.
+
+1. Jelölj ki egy két hónapos időszakot 2014. szeptember 1-től október 31-ig a képzési halmaz számára. A tesztelési halmaz a 2014. november 1-től december 31-ig tartó két hónapos időszakot foglalja magában:
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+ Mivel ezek az adatok az energia napi fogyasztását tükrözik, erős szezonális mintázat figyelhető meg, de a fogyasztás leginkább a legutóbbi napok fogyasztásához hasonló.
+
+1. Vizualizáld a különbségeket:
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Ezért viszonylag kis időablak használata elegendő lehet az adatok képzéséhez.
+
+ > Megjegyzés: Mivel az ARIMA modell illesztéséhez használt függvény a fitting során mintán belüli validációt alkalmaz, kihagyjuk a validációs adatokat.
+
+### Az adatok előkészítése a képzéshez
+
+Most elő kell készítened az adatokat a képzéshez, szűréssel és skálázással. Szűrd az adathalmazt, hogy csak a szükséges időszakokat és oszlopokat tartalmazza, és skálázd az adatokat, hogy az értékek a 0 és 1 közötti intervallumba essenek.
+
+1. Szűrd az eredeti adathalmazt, hogy csak az említett időszakokat és a szükséges 'load' oszlopot, valamint a dátumot tartalmazza:
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ Megnézheted az adatok alakját:
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+1. Skálázd az adatokat, hogy a (0, 1) tartományba essenek.
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ train.head(10)
+ ```
+
+1. Vizualizáld az eredeti és a skálázott adatokat:
+
+ ```python
+ energy[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']].rename(columns={'load':'original load'}).plot.hist(bins=100, fontsize=12)
+ train.rename(columns={'load':'scaled load'}).plot.hist(bins=100, fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ > Az eredeti adatok
+
+ 
+
+ > A skálázott adatok
+
+1. Most, hogy kalibráltad a skálázott adatokat, skálázd a tesztadatokat is:
+
+ ```python
+ test['load'] = scaler.transform(test)
+ test.head()
+ ```
+
+### ARIMA megvalósítása
+
+Elérkezett az idő az ARIMA megvalósítására! Most használni fogod a korábban telepített `statsmodels` könyvtárat.
+
+Kövesd az alábbi lépéseket:
+
+ 1. Határozd meg a modellt a `SARIMAX()` meghívásával, és add meg a modell paramétereit: p, d, és q paraméterek, valamint P, D, és Q paraméterek.
+ 2. Készítsd elő a modellt a képzési adatokhoz a fit() függvény meghívásával.
+ 3. Készíts előrejelzéseket a `forecast()` függvény meghívásával, és add meg az előrejelzés lépéseinek számát (a `horizontot`).
+
+> 🎓 Mire valók ezek a paraméterek? Az ARIMA modellben három paramétert használunk, amelyek segítenek az idősorok főbb aspektusainak modellezésében: szezonális hatások, trendek és zaj. Ezek a paraméterek:
+
+`p`: az autoregresszív aspektushoz kapcsolódó paraméter, amely a *múltbeli* értékeket veszi figyelembe.
+`d`: az integrált részhez kapcsolódó paraméter, amely meghatározza, hogy mennyi *differenciálást* (🎓 emlékszel a differenciálásra 👆?) kell alkalmazni az idősorra.
+`q`: a mozgó átlag részhez kapcsolódó paraméter.
+
+> Megjegyzés: Ha az adatok szezonális aspektussal rendelkeznek - mint ezek -, akkor szezonális ARIMA modellt (SARIMA) használunk. Ebben az esetben egy másik paraméterkészletet kell használni: `P`, `D`, és `Q`, amelyek ugyanazokat az összefüggéseket írják le, mint `p`, `d`, és `q`, de a modell szezonális komponenseire vonatkoznak.
+
+1. Kezdd azzal, hogy beállítod a preferált horizontértéket. Próbáljunk ki 3 órát:
+
+ ```python
+ # Specify the number of steps to forecast ahead
+ HORIZON = 3
+ print('Forecasting horizon:', HORIZON, 'hours')
+ ```
+
+ Az ARIMA modell paramétereinek legjobb értékeinek kiválasztása kihívást jelenthet, mivel ez némileg szubjektív és időigényes. Érdemes lehet használni az `auto_arima()` függvényt a [`pyramid` könyvtárból](https://alkaline-ml.com/pmdarima/0.9.0/modules/generated/pyramid.arima.auto_arima.html).
+
+1. Egyelőre próbálj ki néhány manuális beállítást, hogy jó modellt találj.
+
+ ```python
+ order = (4, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ model = SARIMAX(endog=train, order=order, seasonal_order=seasonal_order)
+ results = model.fit()
+
+ print(results.summary())
+ ```
+
+ Egy eredménytábla jelenik meg.
+
+Elkészítetted az első modelledet! Most meg kell találnunk egy módot annak értékelésére.
+
+### A modell értékelése
+
+A modell értékeléséhez alkalmazhatod az úgynevezett `lépésről lépésre` validációt. A gyakorlatban az idősor modelleket minden alkalommal újra kell tanítani, amikor új adatok válnak elérhetővé. Ez lehetővé teszi, hogy a modell minden időlépésnél a legjobb előrejelzést készítse.
+
+Ezzel a technikával az idősor elején kezdve tanítsd a modellt a képzési adathalmazon. Ezután készíts előrejelzést a következő időlépésre. Az előrejelzést összehasonlítjuk az ismert értékkel. A képzési halmazt ezután kibővítjük az ismert értékkel, és a folyamatot megismételjük.
+
+> Megjegyzés: A képzési halmaz ablakát érdemes fixen tartani a hatékonyabb képzés érdekében, így minden alkalommal, amikor új megfigyelést adsz hozzá a képzési halmazhoz, eltávolítod az ablak elejéről a megfigyelést.
+
+Ez a folyamat robusztusabb becslést nyújt arról, hogy a modell hogyan fog teljesíteni a gyakorlatban. Ugyanakkor számítási költséggel jár, mivel sok modellt kell létrehozni. Ez elfogadható, ha az adatok kicsik vagy a modell egyszerű, de problémát jelenthet nagyobb léptékben.
+
+A lépésről lépésre validáció az idősor modellek értékelésének arany standardja, és ajánlott saját projektjeidhez.
+
+1. Először hozz létre egy tesztadatpontot minden HORIZONT lépéshez.
+
+ ```python
+ test_shifted = test.copy()
+
+ for t in range(1, HORIZON+1):
+ test_shifted['load+'+str(t)] = test_shifted['load'].shift(-t, freq='H')
+
+ test_shifted = test_shifted.dropna(how='any')
+ test_shifted.head(5)
+ ```
+
+ | | | load | load+1 | load+2 |
+ | ---------- | -------- | ---- | ------ | ------ |
+ | 2014-12-30 | 00:00:00 | 0.33 | 0.29 | 0.27 |
+ | 2014-12-30 | 01:00:00 | 0.29 | 0.27 | 0.27 |
+ | 2014-12-30 | 02:00:00 | 0.27 | 0.27 | 0.30 |
+ | 2014-12-30 | 03:00:00 | 0.27 | 0.30 | 0.41 |
+ | 2014-12-30 | 04:00:00 | 0.30 | 0.41 | 0.57 |
+
+ Az adatok vízszintesen eltolódnak a horizont pontja szerint.
+
+1. Készíts előrejelzéseket a tesztadatokon ezzel a csúszó ablak megközelítéssel, a tesztadatok hosszának megfelelő méretű ciklusban:
+
+ ```python
+ %%time
+ training_window = 720 # dedicate 30 days (720 hours) for training
+
+ train_ts = train['load']
+ test_ts = test_shifted
+
+ history = [x for x in train_ts]
+ history = history[(-training_window):]
+
+ predictions = list()
+
+ order = (2, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ for t in range(test_ts.shape[0]):
+ model = SARIMAX(endog=history, order=order, seasonal_order=seasonal_order)
+ model_fit = model.fit()
+ yhat = model_fit.forecast(steps = HORIZON)
+ predictions.append(yhat)
+ obs = list(test_ts.iloc[t])
+ # move the training window
+ history.append(obs[0])
+ history.pop(0)
+ print(test_ts.index[t])
+ print(t+1, ': predicted =', yhat, 'expected =', obs)
+ ```
+
+ Nézheted a képzés folyamatát:
+
+ ```output
+ 2014-12-30 00:00:00
+ 1 : predicted = [0.32 0.29 0.28] expected = [0.32945389435989236, 0.2900626678603402, 0.2739480752014323]
+
+ 2014-12-30 01:00:00
+ 2 : predicted = [0.3 0.29 0.3 ] expected = [0.2900626678603402, 0.2739480752014323, 0.26812891674127126]
+
+ 2014-12-30 02:00:00
+ 3 : predicted = [0.27 0.28 0.32] expected = [0.2739480752014323, 0.26812891674127126, 0.3025962399283795]
+ ```
+
+1. Hasonlítsd össze az előrejelzéseket a tényleges terheléssel:
+
+ ```python
+ eval_df = pd.DataFrame(predictions, columns=['t+'+str(t) for t in range(1, HORIZON+1)])
+ eval_df['timestamp'] = test.index[0:len(test.index)-HORIZON+1]
+ eval_df = pd.melt(eval_df, id_vars='timestamp', value_name='prediction', var_name='h')
+ eval_df['actual'] = np.array(np.transpose(test_ts)).ravel()
+ eval_df[['prediction', 'actual']] = scaler.inverse_transform(eval_df[['prediction', 'actual']])
+ eval_df.head()
+ ```
+
+ Kimenet
+ | | | timestamp | h | prediction | actual |
+ | --- | ---------- | --------- | --- | ---------- | -------- |
+ | 0 | 2014-12-30 | 00:00:00 | t+1 | 3,008.74 | 3,023.00 |
+ | 1 | 2014-12-30 | 01:00:00 | t+1 | 2,955.53 | 2,935.00 |
+ | 2 | 2014-12-30 | 02:00:00 | t+1 | 2,900.17 | 2,899.00 |
+ | 3 | 2014-12-30 | 03:00:00 | t+1 | 2,917.69 | 2,886.00 |
+ | 4 | 2014-12-30 | 04:00:00 | t+1 | 2,946.99 | 2,963.00 |
+
+ Figyeld meg az óránkénti adatok előrejelzését, összehasonlítva a tényleges terheléssel. Mennyire pontos ez?
+
+### A modell pontosságának ellenőrzése
+
+Ellenőrizd a modell pontosságát az összes előrejelzés átlagos abszolút százalékos hibájának (MAPE) tesztelésével.
+> **🧮 Mutasd a matematikát**
+>
+> 
+>
+> A [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) a predikció pontosságát mutatja egy arányként, amelyet a fenti képlet határoz meg. A tényleges és az előrejelzett érték közötti különbséget elosztjuk a tényleges értékkel.
+> "Ennek a számításnak az abszolút értékét minden előrejelzett időpontra összegezzük, majd elosztjuk az illesztett pontok számával, n." [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
+1. Fejezd ki az egyenletet kódban:
+
+ ```python
+ if(HORIZON > 1):
+ eval_df['APE'] = (eval_df['prediction'] - eval_df['actual']).abs() / eval_df['actual']
+ print(eval_df.groupby('h')['APE'].mean())
+ ```
+
+1. Számítsd ki az egy lépésre vonatkozó MAPE értéket:
+
+ ```python
+ print('One step forecast MAPE: ', (mape(eval_df[eval_df['h'] == 't+1']['prediction'], eval_df[eval_df['h'] == 't+1']['actual']))*100, '%')
+ ```
+
+ Egy lépés előrejelzés MAPE: 0.5570581332313952 %
+
+1. Nyomtasd ki a több lépésre vonatkozó előrejelzés MAPE értékét:
+
+ ```python
+ print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%')
+ ```
+
+ ```output
+ Multi-step forecast MAPE: 1.1460048657704118 %
+ ```
+
+ Egy alacsony szám a legjobb: gondolj arra, hogy egy előrejelzés, amelynek MAPE értéke 10, 10%-kal tér el.
+
+1. De mint mindig, az ilyen pontosságmérést vizuálisan könnyebb megérteni, ezért ábrázoljuk:
+
+ ```python
+ if(HORIZON == 1):
+ ## Plotting single step forecast
+ eval_df.plot(x='timestamp', y=['actual', 'prediction'], style=['r', 'b'], figsize=(15, 8))
+
+ else:
+ ## Plotting multi step forecast
+ plot_df = eval_df[(eval_df.h=='t+1')][['timestamp', 'actual']]
+ for t in range(1, HORIZON+1):
+ plot_df['t+'+str(t)] = eval_df[(eval_df.h=='t+'+str(t))]['prediction'].values
+
+ fig = plt.figure(figsize=(15, 8))
+ ax = plt.plot(plot_df['timestamp'], plot_df['actual'], color='red', linewidth=4.0)
+ ax = fig.add_subplot(111)
+ for t in range(1, HORIZON+1):
+ x = plot_df['timestamp'][(t-1):]
+ y = plot_df['t+'+str(t)][0:len(x)]
+ ax.plot(x, y, color='blue', linewidth=4*math.pow(.9,t), alpha=math.pow(0.8,t))
+
+ ax.legend(loc='best')
+
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+🏆 Egy nagyon szép ábra, amely egy jó pontosságú modellt mutat. Szép munka!
+
+---
+
+## 🚀Kihívás
+
+Merülj el az idősor modellek pontosságának tesztelési módjaiban. Ebben a leckében érintjük a MAPE-t, de vannak más módszerek, amelyeket használhatnál? Kutass utána, és jegyzeteld le őket. Egy hasznos dokumentumot itt találhatsz: [itt](https://otexts.com/fpp2/accuracy.html)
+
+## [Utó-leckekvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Ez a lecke csak az ARIMA-val történő idősor előrejelzés alapjait érinti. Szánj időt arra, hogy elmélyítsd tudásodat, és nézd meg [ezt a repót](https://microsoft.github.io/forecasting/) és annak különböző modell típusait, hogy megtanuld, hogyan lehet más módokon idősor modelleket építeni.
+
+## Feladat
+
+[Egy új ARIMA modell](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/7-TimeSeries/2-ARIMA/assignment.md b/translations/hu/7-TimeSeries/2-ARIMA/assignment.md
new file mode 100644
index 00000000..9e9a4fcd
--- /dev/null
+++ b/translations/hu/7-TimeSeries/2-ARIMA/assignment.md
@@ -0,0 +1,25 @@
+
+# Egy új ARIMA modell
+
+## Útmutató
+
+Most, hogy elkészítettél egy ARIMA modellt, készíts egy újat friss adatokkal (próbáld ki [ezeket az adatokat a Duke-tól](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Jegyzeteld a munkádat egy notebookban, vizualizáld az adatokat és a modelledet, majd teszteld annak pontosságát MAPE segítségével.
+
+## Értékelési szempontok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre szorul |
+| --------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------- | ------------------------------------ |
+| | Egy notebook kerül bemutatásra, amelyben egy új ARIMA modell van felépítve, tesztelve és vizualizációkkal, valamint pontossággal magyarázva. | A bemutatott notebook nincs jegyzetelve, vagy hibákat tartalmaz | Egy hiányos notebook kerül bemutatásra |
+
+---
+
+**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 az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.
\ No newline at end of file
diff --git a/translations/hu/7-TimeSeries/2-ARIMA/solution/Julia/README.md b/translations/hu/7-TimeSeries/2-ARIMA/solution/Julia/README.md
new file mode 100644
index 00000000..7a1cfa59
--- /dev/null
+++ b/translations/hu/7-TimeSeries/2-ARIMA/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/hu/7-TimeSeries/2-ARIMA/solution/R/README.md b/translations/hu/7-TimeSeries/2-ARIMA/solution/R/README.md
new file mode 100644
index 00000000..835c3583
--- /dev/null
+++ b/translations/hu/7-TimeSeries/2-ARIMA/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ez egy ideiglenes helyőrző
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/7-TimeSeries/3-SVR/README.md b/translations/hu/7-TimeSeries/3-SVR/README.md
new file mode 100644
index 00000000..d0cca15a
--- /dev/null
+++ b/translations/hu/7-TimeSeries/3-SVR/README.md
@@ -0,0 +1,393 @@
+
+# Idősoros előrejelzés Support Vector Regressor segítségével
+
+Az előző leckében megtanultad, hogyan használhatod az ARIMA modellt idősoros előrejelzések készítésére. Most a Support Vector Regressor modellel fogsz megismerkedni, amely egy regressziós modell folyamatos adatok előrejelzésére.
+
+## [Előzetes kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Bevezetés
+
+Ebben a leckében felfedezheted, hogyan építhetsz modelleket [**SVM**: **S**upport **V**ector **M**achine](https://en.wikipedia.org/wiki/Support-vector_machine) segítségével regresszióhoz, vagyis **SVR: Support Vector Regressor**.
+
+### SVR az idősoros előrejelzés kontextusában [^1]
+
+Mielőtt megértenéd az SVR fontosságát az idősoros előrejelzésben, íme néhány fontos fogalom, amelyet ismerned kell:
+
+- **Regresszió:** Felügyelt tanulási technika, amely folyamatos értékeket jósol meg egy adott bemeneti halmazból. Az ötlet az, hogy egy görbét (vagy egyenes vonalat) illesszünk a jellemzők terébe, amely a legtöbb adatpontot tartalmazza. [Kattints ide](https://en.wikipedia.org/wiki/Regression_analysis) további információért.
+- **Support Vector Machine (SVM):** Egy felügyelt gépi tanulási modell, amelyet osztályozásra, regresszióra és kiugró értékek detektálására használnak. A modell egy hipersík a jellemzők terében, amely osztályozás esetén határként, regresszió esetén pedig legjobban illeszkedő vonalként működik. Az SVM-ben általában Kernel függvényt használnak az adathalmaz magasabb dimenziójú térbe történő átalakítására, hogy könnyebben elválaszthatóak legyenek. [Kattints ide](https://en.wikipedia.org/wiki/Support-vector_machine) további információért az SVM-ekről.
+- **Support Vector Regressor (SVR):** Az SVM egy típusa, amely megtalálja a legjobban illeszkedő vonalat (ami az SVM esetében egy hipersík), amely a legtöbb adatpontot tartalmazza.
+
+### Miért SVR? [^1]
+
+Az előző leckében megismerkedtél az ARIMA modellel, amely egy nagyon sikeres statisztikai lineáris módszer idősoros adatok előrejelzésére. Azonban sok esetben az idősoros adatok *nemlinearitást* mutatnak, amelyet a lineáris modellek nem tudnak leképezni. Ilyen esetekben az SVM képessége, hogy figyelembe vegye az adatok nemlinearitását a regressziós feladatok során, sikeressé teszi az SVR-t az idősoros előrejelzésben.
+
+## Gyakorlat - SVR modell építése
+
+Az első néhány adat-előkészítési lépés megegyezik az előző [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA) leckében tanultakkal.
+
+Nyisd meg a [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/3-SVR/working) mappát ebben a leckében, és keresd meg a [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/3-SVR/working/notebook.ipynb) fájlt. [^2]
+
+1. Futtasd a notebookot, és importáld a szükséges könyvtárakat: [^2]
+
+ ```python
+ import sys
+ sys.path.append('../../')
+ ```
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from sklearn.svm import SVR
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ ```
+
+2. Töltsd be az adatokat a `/data/energy.csv` fájlból egy Pandas dataframe-be, és nézd meg: [^2]
+
+ ```python
+ energy = load_data('../../data')[['load']]
+ ```
+
+3. Ábrázold az összes elérhető energiaadatot 2012 januárjától 2014 decemberéig: [^2]
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Most építsük meg az SVR modellünket.
+
+### Képzési és tesztelési adathalmazok létrehozása
+
+Most, hogy az adatok betöltve vannak, szétválaszthatod őket képzési és tesztelési halmazokra. Ezután átalakítod az adatokat időlépés-alapú adathalmazzá, amelyre szükség lesz az SVR-hez. A modell képzését a képzési halmazon végzed. Miután a modell befejezte a képzést, kiértékeled a pontosságát a képzési halmazon, a tesztelési halmazon, majd az egész adathalmazon, hogy láthasd az általános teljesítményt. Biztosítanod kell, hogy a tesztelési halmaz egy későbbi időszakot fedjen le, mint a képzési halmaz, hogy elkerüld, hogy a modell információt szerezzen a jövőbeli időszakokból [^2] (ezt a helyzetet *túltanulásnak* nevezzük).
+
+1. Jelölj ki egy két hónapos időszakot 2014. szeptember 1-től október 31-ig a képzési halmaz számára. A tesztelési halmaz a 2014. november 1-től december 31-ig tartó két hónapos időszakot fogja tartalmazni: [^2]
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+2. Vizualizáld a különbségeket: [^2]
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+### Adatok előkészítése a képzéshez
+
+Most elő kell készítened az adatokat a képzéshez, szűréssel és skálázással. Szűrd az adathalmazt, hogy csak a szükséges időszakokat és oszlopokat tartalmazza, majd skálázd az adatokat, hogy az értékek a 0 és 1 közötti intervallumba essenek.
+
+1. Szűrd az eredeti adathalmazt, hogy csak az említett időszakokat és a szükséges 'load' oszlopot, valamint a dátumot tartalmazza: [^2]
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+2. Skálázd a képzési adatokat a (0, 1) tartományba: [^2]
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ ```
+
+4. Most skálázd a tesztelési adatokat: [^2]
+
+ ```python
+ test['load'] = scaler.transform(test)
+ ```
+
+### Adatok létrehozása időlépésekkel [^1]
+
+Az SVR-hez az input adatokat `[batch, timesteps]` formára kell átalakítani. Ezért átalakítod a meglévő `train_data` és `test_data` adatokat úgy, hogy legyen egy új dimenzió, amely az időlépéseket jelöli.
+
+```python
+# Converting to numpy arrays
+train_data = train.values
+test_data = test.values
+```
+
+Ebben a példában `timesteps = 5` értéket veszünk. Tehát a modell bemenete az első 4 időlépés adatai lesznek, a kimenet pedig az 5. időlépés adatai.
+
+```python
+timesteps=5
+```
+
+A képzési adatok 2D tensorra való átalakítása beágyazott listakomprehenzióval:
+
+```python
+train_data_timesteps=np.array([[j for j in train_data[i:i+timesteps]] for i in range(0,len(train_data)-timesteps+1)])[:,:,0]
+train_data_timesteps.shape
+```
+
+```output
+(1412, 5)
+```
+
+A tesztelési adatok 2D tensorra való átalakítása:
+
+```python
+test_data_timesteps=np.array([[j for j in test_data[i:i+timesteps]] for i in range(0,len(test_data)-timesteps+1)])[:,:,0]
+test_data_timesteps.shape
+```
+
+```output
+(44, 5)
+```
+
+A képzési és tesztelési adatok bemeneteinek és kimeneteinek kiválasztása:
+
+```python
+x_train, y_train = train_data_timesteps[:,:timesteps-1],train_data_timesteps[:,[timesteps-1]]
+x_test, y_test = test_data_timesteps[:,:timesteps-1],test_data_timesteps[:,[timesteps-1]]
+
+print(x_train.shape, y_train.shape)
+print(x_test.shape, y_test.shape)
+```
+
+```output
+(1412, 4) (1412, 1)
+(44, 4) (44, 1)
+```
+
+### SVR megvalósítása [^1]
+
+Most itt az ideje, hogy megvalósítsd az SVR-t. További információért erről a megvalósításról, olvasd el [ezt a dokumentációt](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html). A mi megvalósításunkban a következő lépéseket követjük:
+
+ 1. Definiáld a modellt az `SVR()` meghívásával, és add meg a modell hiperparamétereit: kernel, gamma, c és epsilon
+ 2. Készítsd elő a modellt a képzési adatokhoz az `fit()` függvény meghívásával
+ 3. Végezz előrejelzéseket az `predict()` függvény meghívásával
+
+Most létrehozzuk az SVR modellt. Itt az [RBF kernel](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel) használatát választjuk, és a hiperparamétereket gamma, C és epsilon értékekre állítjuk: 0.5, 10 és 0.05.
+
+```python
+model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05)
+```
+
+#### Modell illesztése a képzési adatokra [^1]
+
+```python
+model.fit(x_train, y_train[:,0])
+```
+
+```output
+SVR(C=10, cache_size=200, coef0=0.0, degree=3, epsilon=0.05, gamma=0.5,
+ kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)
+```
+
+#### Modell előrejelzések készítése [^1]
+
+```python
+y_train_pred = model.predict(x_train).reshape(-1,1)
+y_test_pred = model.predict(x_test).reshape(-1,1)
+
+print(y_train_pred.shape, y_test_pred.shape)
+```
+
+```output
+(1412, 1) (44, 1)
+```
+
+Elkészítetted az SVR-t! Most ki kell értékelni.
+
+### Modell kiértékelése [^1]
+
+A kiértékeléshez először visszaskálázzuk az adatokat az eredeti skálára. Ezután az eredmény ellenőrzéséhez ábrázoljuk az eredeti és előrejelzett idősoros adatokat, valamint kiírjuk a MAPE eredményt.
+
+Az előrejelzett és eredeti kimenet skálázása:
+
+```python
+# Scaling the predictions
+y_train_pred = scaler.inverse_transform(y_train_pred)
+y_test_pred = scaler.inverse_transform(y_test_pred)
+
+print(len(y_train_pred), len(y_test_pred))
+```
+
+```python
+# Scaling the original values
+y_train = scaler.inverse_transform(y_train)
+y_test = scaler.inverse_transform(y_test)
+
+print(len(y_train), len(y_test))
+```
+
+#### Modell teljesítményének ellenőrzése a képzési és tesztelési adatokon [^1]
+
+Kinyerjük az időbélyegeket az adathalmazból, hogy az x-tengelyen megjelenítsük őket. Ne feledd, hogy az első ```timesteps-1``` értékeket használjuk bemenetként az első kimenethez, így a kimenet időbélyegei ezután kezdődnek.
+
+```python
+train_timestamps = energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)].index[timesteps-1:]
+test_timestamps = energy[test_start_dt:].index[timesteps-1:]
+
+print(len(train_timestamps), len(test_timestamps))
+```
+
+```output
+1412 44
+```
+
+A képzési adatok előrejelzéseinek ábrázolása:
+
+```python
+plt.figure(figsize=(25,6))
+plt.plot(train_timestamps, y_train, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(train_timestamps, y_train_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.title("Training data prediction")
+plt.show()
+```
+
+
+
+MAPE kiírása a képzési adatokra:
+
+```python
+print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')
+```
+
+```output
+MAPE for training data: 1.7195710200875551 %
+```
+
+A tesztelési adatok előrejelzéseinek ábrázolása:
+
+```python
+plt.figure(figsize=(10,3))
+plt.plot(test_timestamps, y_test, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(test_timestamps, y_test_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+MAPE kiírása a tesztelési adatokra:
+
+```python
+print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')
+```
+
+```output
+MAPE for testing data: 1.2623790187854018 %
+```
+
+🏆 Nagyon jó eredményt értél el a tesztelési adathalmazon!
+
+### Modell teljesítményének ellenőrzése a teljes adathalmazon [^1]
+
+```python
+# Extracting load values as numpy array
+data = energy.copy().values
+
+# Scaling
+data = scaler.transform(data)
+
+# Transforming to 2D tensor as per model input requirement
+data_timesteps=np.array([[j for j in data[i:i+timesteps]] for i in range(0,len(data)-timesteps+1)])[:,:,0]
+print("Tensor shape: ", data_timesteps.shape)
+
+# Selecting inputs and outputs from data
+X, Y = data_timesteps[:,:timesteps-1],data_timesteps[:,[timesteps-1]]
+print("X shape: ", X.shape,"\nY shape: ", Y.shape)
+```
+
+```output
+Tensor shape: (26300, 5)
+X shape: (26300, 4)
+Y shape: (26300, 1)
+```
+
+```python
+# Make model predictions
+Y_pred = model.predict(X).reshape(-1,1)
+
+# Inverse scale and reshape
+Y_pred = scaler.inverse_transform(Y_pred)
+Y = scaler.inverse_transform(Y)
+```
+
+```python
+plt.figure(figsize=(30,8))
+plt.plot(Y, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(Y_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+```python
+print('MAPE: ', mape(Y_pred, Y)*100, '%')
+```
+
+```output
+MAPE: 2.0572089029888656 %
+```
+
+🏆 Nagyon szép ábrák, amelyek egy jó pontosságú modellt mutatnak. Szép munka!
+
+---
+
+## 🚀Kihívás
+
+- Próbáld meg módosítani a hiperparamétereket (gamma, C, epsilon) a modell létrehozásakor, és értékeld ki az adatokat, hogy lásd, melyik hiperparaméter-készlet adja a legjobb eredményeket a tesztelési adatokon. További információért ezekről a hiperparaméterekről olvasd el [ezt a dokumentumot](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel).
+- Próbálj ki különböző kernel függvényeket a modellhez, és elemezd a teljesítményüket az adathalmazon. Egy hasznos dokumentumot itt találhatsz: [kernel függvények](https://scikit-learn.org/stable/modules/svm.html#kernel-functions).
+- Próbálj ki különböző értékeket a `timesteps` paraméterhez, hogy a modell visszatekintve készítsen előrejelzést.
+
+## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Ez a lecke az SVR alkalmazását mutatta be idősoros előrejelzéshez. További információért az SVR-ről olvasd el [ezt a blogot](https://www.analyticsvidhya.com/blog/2020/03/support-vector-regression-tutorial-for-machine-learning/). Ez a [scikit-learn dokumentáció](https://scikit-learn.org/stable/modules/svm.html) átfogóbb magyarázatot nyújt az SVM-ekről általában, az [SVR-ekről](https://scikit-learn.org/stable/modules/svm.html#regression), valamint más megvalósítási részletekről, például a különböző [kernel függvényekről](https://scikit-learn.org/stable/modules/svm.html#kernel-functions), amelyek használhatók, és azok paramétereiről.
+
+## Feladat
+
+[Egy új SVR modell](assignment.md)
+
+## Köszönet
+
+[^1]: A szöveget, kódot és kimenetet ebben a szakaszban [@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD) készítette
+[^2]: A szöveget, kódot és kimenetet ebben a szakaszban az [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA) leckéből vettük
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.
\ No newline at end of file
diff --git a/translations/hu/7-TimeSeries/3-SVR/assignment.md b/translations/hu/7-TimeSeries/3-SVR/assignment.md
new file mode 100644
index 00000000..6e4a2f44
--- /dev/null
+++ b/translations/hu/7-TimeSeries/3-SVR/assignment.md
@@ -0,0 +1,29 @@
+
+# Egy új SVR modell
+
+## Útmutató [^1]
+
+Most, hogy elkészítettél egy SVR modellt, hozz létre egy újat friss adatokkal (próbáld ki [ezeket az adatokat a Duke-tól](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Jegyzeteld a munkádat egy notebookban, vizualizáld az adatokat és a modelledet, valamint teszteld annak pontosságát megfelelő grafikonok és MAPE segítségével. Próbáld ki a különböző hiperparaméterek módosítását, valamint különböző értékek használatát az időlépésekhez.
+
+## Értékelési szempontok [^1]
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szoruló |
+| --------- | ----------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------- |
+| | Egy notebook kerül bemutatásra, amelyben egy SVR modell van felépítve, tesztelve és vizualizációkkal, valamint pontossággal magyarázva. | A bemutatott notebook nincs jegyzetelve, vagy hibákat tartalmaz. | Egy hiányos notebook kerül bemutatásra |
+
+
+
+[^1]:A szöveg ebben a szekcióban az [ARIMA feladatból](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/assignment.md) származik.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/7-TimeSeries/README.md b/translations/hu/7-TimeSeries/README.md
new file mode 100644
index 00000000..9528facf
--- /dev/null
+++ b/translations/hu/7-TimeSeries/README.md
@@ -0,0 +1,37 @@
+
+# Bevezetés az időbeli előrejelzésbe
+
+Mi az időbeli előrejelzés? A jövőbeli események előrejelzéséről szól, a múltbeli trendek elemzése alapján.
+
+## Regionális téma: világszintű villamosenergia-felhasználás ✨
+
+Ebben a két leckében megismerkedhetsz az időbeli előrejelzéssel, amely a gépi tanulás egy kevésbé ismert területe, de ennek ellenére rendkívül értékes az ipari és üzleti alkalmazások, valamint más területek számára. Bár neurális hálózatok is használhatók ezeknek a modelleknek a hasznosságának növelésére, mi a klasszikus gépi tanulás kontextusában fogjuk tanulmányozni őket, mivel a modellek segítenek a jövőbeli teljesítmény előrejelzésében a múlt alapján.
+
+Regionális fókuszunk a világ villamosenergia-felhasználása, egy érdekes adatállomány, amely segít megtanulni, hogyan lehet előre jelezni a jövőbeli energiafelhasználást a múltbeli terhelési minták alapján. Láthatod, hogy az ilyen típusú előrejelzés mennyire hasznos lehet egy üzleti környezetben.
+
+
+
+Fotó: [Peddi Sai hrithik](https://unsplash.com/@shutter_log?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) elektromos tornyokról egy úton Rádzsasztánban az [Unsplash](https://unsplash.com/s/photos/electric-india?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) oldalán.
+
+## Leckék
+
+1. [Bevezetés az időbeli előrejelzésbe](1-Introduction/README.md)
+2. [ARIMA időbeli előrejelző modellek építése](2-ARIMA/README.md)
+3. [Support Vector Regressor építése időbeli előrejelzéshez](3-SVR/README.md)
+
+## Köszönetnyilvánítás
+
+Az "Bevezetés az időbeli előrejelzésbe" című anyagot ⚡️ írta [Francesca Lazzeri](https://twitter.com/frlazzeri) és [Jen Looper](https://twitter.com/jenlooper). A jegyzetfüzetek először az [Azure "Deep Learning For Time Series" repo](https://github.com/Azure/DeepLearningForTimeSeriesForecasting) oldalán jelentek meg, amelyet eredetileg Francesca Lazzeri írt. Az SVR leckét [Anirban Mukherjee](https://github.com/AnirbanMukherjeeXD) készítette.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/8-Reinforcement/1-QLearning/README.md b/translations/hu/8-Reinforcement/1-QLearning/README.md
new file mode 100644
index 00000000..dbf0eda5
--- /dev/null
+++ b/translations/hu/8-Reinforcement/1-QLearning/README.md
@@ -0,0 +1,256 @@
+
+# Bevezetés a megerősítéses tanulásba és a Q-tanulásba
+
+
+> Sketchnote: [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+A megerősítéses tanulás három fontos fogalmat foglal magában: az ügynököt, az állapotokat és az állapotonkénti cselekvések halmazát. Egy adott állapotban végrehajtott cselekvésért az ügynök jutalmat kap. Képzeljük el újra a Super Mario számítógépes játékot. Te vagy Mario, egy pályán állsz egy szakadék szélén. Fölötted egy érme van. Az, hogy te Mario vagy, egy adott pályán, egy adott pozícióban... ez az állapotod. Ha egy lépést jobbra lépsz (egy cselekvés), leesel a szakadékba, és alacsony pontszámot kapsz. Ha viszont megnyomod az ugrás gombot, pontot szerzel, és életben maradsz. Ez egy pozitív kimenetel, amiért pozitív pontszámot kell kapnod.
+
+A megerősítéses tanulás és egy szimulátor (a játék) segítségével megtanulhatod, hogyan játszd a játékot úgy, hogy maximalizáld a jutalmat, vagyis életben maradj, és minél több pontot szerezz.
+
+[](https://www.youtube.com/watch?v=lDq_en8RNOo)
+
+> 🎥 Kattints a fenti képre, hogy meghallgasd Dmitry előadását a megerősítéses tanulásról.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Előfeltételek és beállítás
+
+Ebben a leckében Pythonban fogunk kódot kipróbálni. Képesnek kell lenned futtatni a Jupyter Notebook kódját, akár a saját számítógépeden, akár a felhőben.
+
+Megnyithatod [a lecke notebookját](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb), és végigmehetsz a leckén, hogy felépítsd a példát.
+
+> **Megjegyzés:** Ha a kódot a felhőből nyitod meg, le kell töltened az [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py) fájlt is, amelyet a notebook kód használ. Helyezd el ugyanabban a könyvtárban, ahol a notebook található.
+
+## Bevezetés
+
+Ebben a leckében **[Péter és a farkas](https://hu.wikipedia.org/wiki/P%C3%A9ter_%C3%A9s_a_farkas)** világát fogjuk felfedezni, amelyet egy orosz zeneszerző, [Szergej Prokofjev](https://hu.wikipedia.org/wiki/Szergej_Prokofjev) zenés meséje ihletett. A **megerősítéses tanulás** segítségével Pétert irányítjuk, hogy felfedezze a környezetét, ízletes almákat gyűjtsön, és elkerülje a farkassal való találkozást.
+
+A **megerősítéses tanulás** (RL) egy olyan tanulási technika, amely lehetővé teszi számunkra, hogy egy **ügynök** optimális viselkedését tanuljuk meg egy adott **környezetben**, számos kísérlet lefuttatásával. Az ügynöknek ebben a környezetben van egy **célja**, amelyet egy **jutalomfüggvény** határoz meg.
+
+## A környezet
+
+Egyszerűség kedvéért tekintsük Péter világát egy `szélesség` x `magasság` méretű négyzet alakú táblának, például így:
+
+
+
+A tábla minden cellája lehet:
+
+* **talaj**, amin Péter és más lények járhatnak.
+* **víz**, amin nyilvánvalóan nem lehet járni.
+* **fa** vagy **fű**, ahol pihenni lehet.
+* egy **alma**, amit Péter örömmel találna meg, hogy táplálkozzon.
+* egy **farkas**, ami veszélyes, és el kell kerülni.
+
+Van egy külön Python modul, az [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), amely tartalmazza a kódot a környezettel való munkához. Mivel ez a kód nem fontos a fogalmak megértéséhez, importáljuk a modult, és használjuk a minta tábla létrehozásához (kódblokk 1):
+
+```python
+from rlboard import *
+
+width, height = 8,8
+m = Board(width,height)
+m.randomize(seed=13)
+m.plot()
+```
+
+Ez a kód egy, a fentiekhez hasonló környezetet fog megjeleníteni.
+
+## Cselekvések és stratégia
+
+Példánkban Péter célja az alma megtalálása, miközben elkerüli a farkast és más akadályokat. Ehhez lényegében addig sétálhat, amíg meg nem találja az almát.
+
+Ezért bármely pozícióban választhat a következő cselekvések közül: fel, le, balra és jobbra.
+
+Ezeket a cselekvéseket egy szótárként definiáljuk, és a megfelelő koordinátaváltozásokhoz rendeljük. Például a jobbra mozgás (`R`) egy `(1,0)` párnak felel meg. (kódblokk 2):
+
+```python
+actions = { "U" : (0,-1), "D" : (0,1), "L" : (-1,0), "R" : (1,0) }
+action_idx = { a : i for i,a in enumerate(actions.keys()) }
+```
+
+Összefoglalva, a forgatókönyv stratégiája és célja a következő:
+
+- **A stratégia**, az ügynökünk (Péter) stratégiáját egy úgynevezett **politika** határozza meg. A politika egy olyan függvény, amely bármely adott állapotban visszaadja a cselekvést. Esetünkben a probléma állapotát a tábla és a játékos aktuális pozíciója képviseli.
+
+- **A cél**, a megerősítéses tanulás célja egy jó politika megtanulása, amely lehetővé teszi a probléma hatékony megoldását. Az alapként vegyük figyelembe a legegyszerűbb politikát, az úgynevezett **véletlenszerű sétát**.
+
+## Véletlenszerű séta
+
+Először oldjuk meg a problémát egy véletlenszerű séta stratégiával. A véletlenszerű séta során véletlenszerűen választjuk ki a következő cselekvést az engedélyezett cselekvések közül, amíg el nem érjük az almát (kódblokk 3).
+
+1. Valósítsd meg a véletlenszerű sétát az alábbi kóddal:
+
+ ```python
+ def random_policy(m):
+ return random.choice(list(actions))
+
+ def walk(m,policy,start_position=None):
+ n = 0 # number of steps
+ # set initial position
+ if start_position:
+ m.human = start_position
+ else:
+ m.random_start()
+ while True:
+ if m.at() == Board.Cell.apple:
+ return n # success!
+ if m.at() in [Board.Cell.wolf, Board.Cell.water]:
+ return -1 # eaten by wolf or drowned
+ while True:
+ a = actions[policy(m)]
+ new_pos = m.move_pos(m.human,a)
+ if m.is_valid(new_pos) and m.at(new_pos)!=Board.Cell.water:
+ m.move(a) # do the actual move
+ break
+ n+=1
+
+ walk(m,random_policy)
+ ```
+
+ A `walk` hívás visszaadja a megfelelő útvonal hosszát, amely futtatásonként változhat.
+
+1. Futtasd le a séta kísérletet többször (például 100-szor), és nyomtasd ki az eredményeket (kódblokk 4):
+
+ ```python
+ def print_statistics(policy):
+ s,w,n = 0,0,0
+ for _ in range(100):
+ z = walk(m,policy)
+ if z<0:
+ w+=1
+ else:
+ s += z
+ n += 1
+ print(f"Average path length = {s/n}, eaten by wolf: {w} times")
+
+ print_statistics(random_policy)
+ ```
+
+ Figyeld meg, hogy az útvonal átlagos hossza körülbelül 30-40 lépés, ami elég sok, tekintve, hogy az átlagos távolság a legközelebbi almáig körülbelül 5-6 lépés.
+
+ Azt is láthatod, hogyan mozog Péter a véletlenszerű séta során:
+
+ 
+
+## Jutalomfüggvény
+
+Ahhoz, hogy a politikánk intelligensebb legyen, meg kell értenünk, mely lépések "jobbak", mint mások. Ehhez meg kell határoznunk a célunkat.
+
+A cél egy **jutalomfüggvény** segítségével határozható meg, amely minden állapothoz visszaad egy pontszámot. Minél magasabb a szám, annál jobb a jutalomfüggvény. (kódblokk 5)
+
+```python
+move_reward = -0.1
+goal_reward = 10
+end_reward = -10
+
+def reward(m,pos=None):
+ pos = pos or m.human
+ if not m.is_valid(pos):
+ return end_reward
+ x = m.at(pos)
+ if x==Board.Cell.water or x == Board.Cell.wolf:
+ return end_reward
+ if x==Board.Cell.apple:
+ return goal_reward
+ return move_reward
+```
+
+A jutalomfüggvények érdekessége, hogy a legtöbb esetben *csak a játék végén kapunk jelentős jutalmat*. Ez azt jelenti, hogy az algoritmusunknak valahogy emlékeznie kell a "jó" lépésekre, amelyek pozitív jutalomhoz vezettek a végén, és növelnie kell azok fontosságát. Hasonlóképpen, minden olyan lépést, amely rossz eredményhez vezet, el kell kerülni.
+
+## Q-tanulás
+
+Az algoritmus, amelyet itt tárgyalunk, a **Q-tanulás**. Ebben az algoritmusban a politika egy **Q-tábla** nevű függvénnyel (vagy adatszerkezettel) van meghatározva. Ez rögzíti az egyes cselekvések "jóságát" egy adott állapotban.
+
+Q-táblának hívják, mert gyakran kényelmes táblázatként vagy többdimenziós tömbként ábrázolni. Mivel a táblánk mérete `szélesség` x `magasság`, a Q-táblát egy numpy tömbként ábrázolhatjuk, amelynek alakja `szélesség` x `magasság` x `len(cselekvések)`: (kódblokk 6)
+
+```python
+Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)
+```
+
+Figyeld meg, hogy a Q-tábla összes értékét egyenlő értékkel inicializáljuk, esetünkben 0,25-tel. Ez megfelel a "véletlenszerű séta" politikának, mert minden lépés minden állapotban egyformán jó. A Q-táblát átadhatjuk a `plot` függvénynek, hogy vizualizáljuk a táblát a táblán: `m.plot(Q)`.
+
+
+
+A cellák közepén egy "nyíl" látható, amely a mozgás preferált irányát jelzi. Mivel minden irány egyenlő, egy pont jelenik meg.
+
+Most el kell indítanunk a szimulációt, felfedeznünk a környezetet, és meg kell tanulnunk a Q-tábla értékeinek jobb eloszlását, amely lehetővé teszi számunkra, hogy sokkal gyorsabban megtaláljuk az utat az almához.
+
+## A Q-tanulás lényege: Bellman-egyenlet
+
+Amint elkezdünk mozogni, minden cselekvéshez tartozik egy megfelelő jutalom, azaz elméletileg kiválaszthatjuk a következő cselekvést a legmagasabb azonnali jutalom alapján. Azonban a legtöbb állapotban a lépés nem éri el a célunkat, hogy elérjük az almát, így nem tudjuk azonnal eldönteni, melyik irány a jobb.
+
+> Ne feledd, hogy nem az azonnali eredmény számít, hanem a végső eredmény, amelyet a szimuláció végén kapunk.
+
+Ahhoz, hogy figyelembe vegyük ezt a késleltetett jutalmat, a **[dinamikus programozás](https://hu.wikipedia.org/wiki/Dinamikus_programoz%C3%A1s)** elveit kell alkalmaznunk, amelyek lehetővé teszik, hogy rekurzívan gondolkodjunk a problémánkról.
+
+Tegyük fel, hogy most az *s* állapotban vagyunk, és a következő állapotba, *s'*-be akarunk lépni. Ezzel megkapjuk az azonnali jutalmat, *r(s,a)*, amelyet a jutalomfüggvény határoz meg, plusz némi jövőbeli jutalmat. Ha feltételezzük, hogy a Q-táblánk helyesen tükrözi az egyes cselekvések "vonzerejét", akkor az *s'* állapotban egy olyan *a* cselekvést választunk, amely a *Q(s',a')* maximális értékének felel meg. Így az *s* állapotban elérhető legjobb jövőbeli jutalom a következőképpen lesz meghatározva: `max`
+
+## A szabály ellenőrzése
+
+Mivel a Q-tábla felsorolja az egyes állapotokban végrehajtható cselekvések "vonzerejét", könnyen használható hatékony navigáció meghatározására a világunkban. A legegyszerűbb esetben kiválaszthatjuk azt a cselekvést, amely a legmagasabb Q-tábla értékhez tartozik: (kód blokk 9)
+
+```python
+def qpolicy_strict(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = list(actions)[np.argmax(v)]
+ return a
+
+walk(m,qpolicy_strict)
+```
+
+> Ha többször kipróbálod a fenti kódot, észreveheted, hogy néha "elakad", és a jegyzetfüzetben a STOP gombot kell megnyomnod a megszakításhoz. Ez azért történik, mert előfordulhatnak olyan helyzetek, amikor két állapot "mutat" egymásra az optimális Q-értékek alapján, ilyenkor az ügynök végtelenül mozoghat ezek között az állapotok között.
+
+## 🚀Kihívás
+
+> **Feladat 1:** Módosítsd a `walk` függvényt úgy, hogy korlátozza az út maximális hosszát egy bizonyos lépésszámra (például 100), és figyeld meg, hogy a fenti kód időnként visszaadja ezt az értéket.
+
+> **Feladat 2:** Módosítsd a `walk` függvényt úgy, hogy ne térjen vissza olyan helyekre, ahol korábban már járt. Ez megakadályozza, hogy a `walk` ciklusba kerüljön, azonban az ügynök még mindig "csapdába" eshet egy olyan helyen, ahonnan nem tud kijutni.
+
+## Navigáció
+
+Egy jobb navigációs szabály az lenne, amit a tanulás során használtunk, amely kombinálja a kihasználást és a felfedezést. Ebben a szabályban minden cselekvést egy bizonyos valószínűséggel választunk ki, amely arányos a Q-tábla értékeivel. Ez a stratégia még mindig eredményezheti, hogy az ügynök visszatér egy már felfedezett helyre, de ahogy az alábbi kódból látható, ez nagyon rövid átlagos útvonalat eredményez a kívánt helyre (ne feledd, hogy a `print_statistics` 100-szor futtatja a szimulációt): (kód blokk 10)
+
+```python
+def qpolicy(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = random.choices(list(actions),weights=v)[0]
+ return a
+
+print_statistics(qpolicy)
+```
+
+A kód futtatása után sokkal rövidebb átlagos útvonalhosszt kell kapnod, 3-6 lépés körül.
+
+## A tanulási folyamat vizsgálata
+
+Ahogy említettük, a tanulási folyamat egyensúlyozás a felfedezés és a problématér szerkezetéről szerzett tudás kihasználása között. Láttuk, hogy a tanulás eredményei (az ügynök képessége, hogy rövid utat találjon a célhoz) javultak, de az is érdekes, hogy megfigyeljük, hogyan viselkedik az átlagos útvonalhossz a tanulási folyamat során:
+
+## A tanulságok összefoglalása:
+
+- **Az átlagos útvonalhossz növekszik**. Amit itt látunk, az az, hogy eleinte az átlagos útvonalhossz növekszik. Ez valószínűleg azért van, mert amikor semmit sem tudunk a környezetről, hajlamosak vagyunk rossz állapotokba, vízbe vagy farkasok közé kerülni. Ahogy többet tanulunk és elkezdjük használni ezt a tudást, hosszabb ideig tudjuk felfedezni a környezetet, de még mindig nem tudjuk pontosan, hol vannak az almák.
+
+- **Az útvonalhossz csökken, ahogy többet tanulunk**. Miután eleget tanultunk, az ügynök számára könnyebbé válik a cél elérése, és az útvonalhossz csökkenni kezd. Azonban még mindig nyitottak vagyunk a felfedezésre, így gyakran eltérünk az optimális úttól, és új lehetőségeket fedezünk fel, ami hosszabb utat eredményez.
+
+- **A hossz hirtelen megnő**. Amit ezen a grafikonon még megfigyelhetünk, az az, hogy egy ponton az útvonalhossz hirtelen megnőtt. Ez a folyamat sztochasztikus természetét jelzi, és azt, hogy bizonyos pontokon "elronthatjuk" a Q-tábla együtthatóit azzal, hogy új értékekkel felülírjuk őket. Ezt ideálisan minimalizálni kellene a tanulási ráta csökkentésével (például a tanulás végéhez közeledve csak kis értékkel módosítjuk a Q-tábla értékeit).
+
+Összességében fontos megjegyezni, hogy a tanulási folyamat sikere és minősége jelentősen függ a paraméterektől, mint például a tanulási ráta, a tanulási ráta csökkenése és a diszkontfaktor. Ezeket gyakran **hiperparamétereknek** nevezik, hogy megkülönböztessék őket a **paraméterektől**, amelyeket a tanulás során optimalizálunk (például a Q-tábla együtthatói). A legjobb hiperparaméter értékek megtalálásának folyamatát **hiperparaméter optimalizációnak** nevezzük, és ez egy külön témát érdemel.
+
+## [Utó-előadás kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Feladat
+[Egy reálisabb világ](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/8-Reinforcement/1-QLearning/assignment.md b/translations/hu/8-Reinforcement/1-QLearning/assignment.md
new file mode 100644
index 00000000..27988415
--- /dev/null
+++ b/translations/hu/8-Reinforcement/1-QLearning/assignment.md
@@ -0,0 +1,41 @@
+
+# Egy Reálisabb Világ
+
+A mi helyzetünkben Péter szinte fáradtság vagy éhség nélkül tudott mozogni. Egy reálisabb világban időnként le kell ülnie pihenni, és ennie is kell. Tegyük világunkat reálisabbá az alábbi szabályok bevezetésével:
+
+1. Amikor Péter egyik helyről a másikra mozog, **energiát** veszít és **fáradtságot** szerez.
+2. Péter több energiát nyerhet, ha almát eszik.
+3. Péter megszabadulhat a fáradtságtól, ha a fa alatt vagy a füvön pihen (azaz olyan mezőre lép, ahol fa vagy fű van - zöld mező).
+4. Péternek meg kell találnia és le kell győznie a farkast.
+5. Ahhoz, hogy legyőzze a farkast, Péternek bizonyos energiaszinttel és fáradtsági szinttel kell rendelkeznie, különben elveszíti a csatát.
+
+## Útmutató
+
+Használd az eredeti [notebook.ipynb](../../../../8-Reinforcement/1-QLearning/notebook.ipynb) jegyzetfüzetet kiindulópontként a megoldáshoz.
+
+Módosítsd a jutalomfüggvényt a játék szabályai szerint, futtasd a megerősítéses tanulási algoritmust, hogy megtaláld a legjobb stratégiát a játék megnyeréséhez, és hasonlítsd össze az eredményeket a véletlenszerű lépésekkel az alapján, hogy hány játékot nyertél vagy vesztettél.
+
+> **Note**: Az új világban az állapot összetettebb, és az ember pozíciója mellett magában foglalja a fáradtság és az energiaszinteket is. Az állapotot ábrázolhatod egy tuple formájában (Board,energy,fatigue), definiálhatsz egy osztályt az állapothoz (akár származtathatod a `Board` osztályból), vagy módosíthatod az eredeti `Board` osztályt a [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py) fájlban.
+
+A megoldásodban tartsd meg a véletlenszerű lépés stratégiájáért felelős kódot, és hasonlítsd össze az algoritmusod eredményeit a véletlenszerű lépésekkel a végén.
+
+> **Note**: Lehet, hogy módosítanod kell a hiperparamétereket, hogy működjön, különösen az epochok számát. Mivel a játék sikere (a farkassal való harc) ritka esemény, sokkal hosszabb tanulási időre számíthatsz.
+
+## Értékelési Szempontok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre Szorul |
+| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| | Egy jegyzetfüzet bemutatja az új világ szabályait, a Q-Learning algoritmust és néhány szöveges magyarázatot. A Q-Learning jelentősen javítja az eredményeket a véletlenszerű lépésekhez képest. | Jegyzetfüzet bemutatva, Q-Learning implementálva és javítja az eredményeket a véletlenszerű lépésekhez képest, de nem jelentősen; vagy a jegyzetfüzet rosszul dokumentált, a kód nem jól strukturált | Kísérlet történt a világ szabályainak újradefiniálására, de a Q-Learning algoritmus nem működik, vagy a jutalomfüggvény nincs teljesen definiálva |
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/8-Reinforcement/1-QLearning/solution/Julia/README.md b/translations/hu/8-Reinforcement/1-QLearning/solution/Julia/README.md
new file mode 100644
index 00000000..e9650de2
--- /dev/null
+++ b/translations/hu/8-Reinforcement/1-QLearning/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos 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
diff --git a/translations/hu/8-Reinforcement/1-QLearning/solution/R/README.md b/translations/hu/8-Reinforcement/1-QLearning/solution/R/README.md
new file mode 100644
index 00000000..dad0ee56
--- /dev/null
+++ b/translations/hu/8-Reinforcement/1-QLearning/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ez egy ideiglenes helyőrző
+
+---
+
+**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
diff --git a/translations/hu/8-Reinforcement/2-Gym/README.md b/translations/hu/8-Reinforcement/2-Gym/README.md
new file mode 100644
index 00000000..d5c76759
--- /dev/null
+++ b/translations/hu/8-Reinforcement/2-Gym/README.md
@@ -0,0 +1,347 @@
+
+# CartPole Gördeszkázás
+
+Az előző leckében megoldott probléma talán játékszerűnek tűnhet, és nem igazán alkalmazhatónak a valós életben. Ez azonban nem így van, mivel sok valós probléma is hasonló helyzetet mutat – például sakk vagy Go játék közben. Ezek hasonlóak, mert van egy táblánk adott szabályokkal és egy **diszkrét állapot**.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Bevezetés
+
+Ebben a leckében ugyanazokat az elveket alkalmazzuk a Q-Learning során egy **folytonos állapotú** problémára, azaz egy olyan állapotra, amelyet egy vagy több valós szám határoz meg. A következő problémával foglalkozunk:
+
+> **Probléma**: Ha Péter el akar menekülni a farkas elől, gyorsabban kell tudnia mozogni. Megnézzük, hogyan tanulhat meg Péter gördeszkázni, különösen egyensúlyozni, a Q-Learning segítségével.
+
+
+
+> Péter és barátai kreatívak lesznek, hogy elmeneküljenek a farkas elől! Kép: [Jen Looper](https://twitter.com/jenlooper)
+
+Egy egyszerűsített egyensúlyozási problémát fogunk használni, amelyet **CartPole** problémának neveznek. A CartPole világában van egy vízszintes csúszka, amely balra vagy jobbra mozoghat, és a cél az, hogy egy függőleges rudat egyensúlyban tartsunk a csúszka tetején.
+
+## Előfeltételek
+
+Ebben a leckében az **OpenAI Gym** nevű könyvtárat fogjuk használni különböző **környezetek** szimulálására. A lecke kódját futtathatod helyben (például Visual Studio Code-ban), ebben az esetben a szimuláció egy új ablakban nyílik meg. Ha online futtatod a kódot, néhány módosítást kell végezned, ahogy azt [itt](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7) leírták.
+
+## OpenAI Gym
+
+Az előző leckében a játék szabályait és az állapotot a saját magunk által definiált `Board` osztály határozta meg. Itt egy speciális **szimulációs környezetet** fogunk használni, amely szimulálja az egyensúlyozó rúd mögötti fizikát. Az egyik legnépszerűbb szimulációs környezet a megerősítéses tanulási algoritmusokhoz a [Gym](https://gym.openai.com/), amelyet az [OpenAI](https://openai.com/) tart fenn. Ezzel a Gymmel különböző **környezeteket** hozhatunk létre, a CartPole szimulációtól kezdve az Atari játékokig.
+
+> **Megjegyzés**: Az OpenAI Gym által elérhető egyéb környezeteket [itt](https://gym.openai.com/envs/#classic_control) találod.
+
+Először telepítsük a Gymet és importáljuk a szükséges könyvtárakat (kódblokk 1):
+
+```python
+import sys
+!{sys.executable} -m pip install gym
+
+import gym
+import matplotlib.pyplot as plt
+import numpy as np
+import random
+```
+
+## Gyakorlat - CartPole környezet inicializálása
+
+Ahhoz, hogy a CartPole egyensúlyozási problémával dolgozzunk, inicializálnunk kell a megfelelő környezetet. Minden környezethez tartozik:
+
+- **Megfigyelési tér**, amely meghatározza az információ szerkezetét, amelyet a környezettől kapunk. A CartPole problémában a rúd helyzetét, sebességét és néhány más értéket kapunk.
+
+- **Akciótér**, amely meghatározza a lehetséges akciókat. Esetünkben az akciótér diszkrét, és két akcióból áll - **balra** és **jobbra**. (kódblokk 2)
+
+1. Az inicializáláshoz írd be a következő kódot:
+
+ ```python
+ env = gym.make("CartPole-v1")
+ print(env.action_space)
+ print(env.observation_space)
+ print(env.action_space.sample())
+ ```
+
+Ahhoz, hogy lássuk, hogyan működik a környezet, futtassunk egy rövid szimulációt 100 lépésig. Minden lépésnél megadunk egy akciót, amelyet végre kell hajtani – ebben a szimulációban véletlenszerűen választunk egy akciót az `action_space`-ből.
+
+1. Futtasd az alábbi kódot, és nézd meg, mi történik.
+
+ ✅ Ne feledd, hogy ezt a kódot helyi Python telepítésen futtatni előnyösebb! (kódblokk 3)
+
+ ```python
+ env.reset()
+
+ for i in range(100):
+ env.render()
+ env.step(env.action_space.sample())
+ env.close()
+ ```
+
+ Valami hasonlót kell látnod, mint ez a kép:
+
+ 
+
+1. A szimuláció során megfigyeléseket kell kapnunk, hogy eldönthessük, hogyan cselekedjünk. Valójában a step függvény visszaadja az aktuális megfigyeléseket, egy jutalomfüggvényt és egy done jelzőt, amely jelzi, hogy van-e értelme folytatni a szimulációt: (kódblokk 4)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ print(f"{obs} -> {rew}")
+ env.close()
+ ```
+
+ A notebook kimenetében valami ilyesmit fogsz látni:
+
+ ```text
+ [ 0.03403272 -0.24301182 0.02669811 0.2895829 ] -> 1.0
+ [ 0.02917248 -0.04828055 0.03248977 0.00543839] -> 1.0
+ [ 0.02820687 0.14636075 0.03259854 -0.27681916] -> 1.0
+ [ 0.03113408 0.34100283 0.02706215 -0.55904489] -> 1.0
+ [ 0.03795414 0.53573468 0.01588125 -0.84308041] -> 1.0
+ ...
+ [ 0.17299878 0.15868546 -0.20754175 -0.55975453] -> 1.0
+ [ 0.17617249 0.35602306 -0.21873684 -0.90998894] -> 1.0
+ ```
+
+ A szimuláció minden lépésénél visszaadott megfigyelési vektor a következő értékeket tartalmazza:
+ - A kocsi helyzete
+ - A kocsi sebessége
+ - A rúd szöge
+ - A rúd forgási sebessége
+
+1. Szerezd meg ezeknek a számoknak a minimum és maximum értékét: (kódblokk 5)
+
+ ```python
+ print(env.observation_space.low)
+ print(env.observation_space.high)
+ ```
+
+ Azt is észreveheted, hogy a jutalomérték minden szimulációs lépésnél mindig 1. Ennek oka, hogy célunk minél tovább életben maradni, azaz a rudat ésszerűen függőleges helyzetben tartani a lehető leghosszabb ideig.
+
+ ✅ Valójában a CartPole szimulációt akkor tekintjük megoldottnak, ha sikerül 195 átlagos jutalmat elérni 100 egymást követő próbálkozás során.
+
+## Állapot diszkretizálása
+
+A Q-Learning során létre kell hoznunk egy Q-táblát, amely meghatározza, mit kell tenni minden állapotban. Ehhez az állapotnak **diszkrétnek** kell lennie, pontosabban véges számú diszkrét értéket kell tartalmaznia. Ezért valahogy **diszkretizálnunk** kell a megfigyeléseinket, és azokat egy véges állapothalmazhoz kell hozzárendelni.
+
+Néhány módon megtehetjük ezt:
+
+- **Felosztás bin-ekre**. Ha ismerjük egy adott érték intervallumát, feloszthatjuk ezt az intervallumot egy bizonyos számú **binre**, majd az értéket lecserélhetjük arra a bin számra, amelyhez tartozik. Ez a numpy [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html) metódusával végezhető el. Ebben az esetben pontosan ismerni fogjuk az állapot méretét, mivel az a digitalizáláshoz kiválasztott bin-ek számától függ.
+
+✅ Használhatunk lineáris interpolációt, hogy az értékeket egy véges intervallumra (például -20-tól 20-ig) hozzuk, majd a számokat kerekítéssel egész számokká alakíthatjuk. Ez valamivel kevesebb kontrollt ad az állapot méretére, különösen, ha nem ismerjük a bemeneti értékek pontos tartományait. Például esetünkben 4 értékből 2-nek nincs felső/alsó határa, ami végtelen számú állapotot eredményezhet.
+
+Példánkban a második megközelítést fogjuk alkalmazni. Ahogy később észreveheted, a meghatározatlan felső/alsó határok ellenére ezek az értékek ritkán vesznek fel bizonyos véges intervallumokon kívüli értékeket, így azok az állapotok, amelyek szélsőséges értékeket tartalmaznak, nagyon ritkák lesznek.
+
+1. Íme egy függvény, amely a modellünk megfigyelését veszi, és egy 4 egész értékű tuple-t állít elő: (kódblokk 6)
+
+ ```python
+ def discretize(x):
+ return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int))
+ ```
+
+1. Nézzük meg egy másik diszkretizálási módszert bin-ek használatával: (kódblokk 7)
+
+ ```python
+ def create_bins(i,num):
+ return np.arange(num+1)*(i[1]-i[0])/num+i[0]
+
+ print("Sample bins for interval (-5,5) with 10 bins\n",create_bins((-5,5),10))
+
+ ints = [(-5,5),(-2,2),(-0.5,0.5),(-2,2)] # intervals of values for each parameter
+ nbins = [20,20,10,10] # number of bins for each parameter
+ bins = [create_bins(ints[i],nbins[i]) for i in range(4)]
+
+ def discretize_bins(x):
+ return tuple(np.digitize(x[i],bins[i]) for i in range(4))
+ ```
+
+1. Most futtassunk egy rövid szimulációt, és figyeljük meg ezeket a diszkrét környezeti értékeket. Nyugodtan próbáld ki a `discretize` és `discretize_bins` függvényeket, és nézd meg, van-e különbség.
+
+ ✅ A `discretize_bins` a bin számát adja vissza, amely 0-alapú. Így a bemeneti változó körüli értékek esetén 0 körül az intervallum közepéből (10) ad vissza számot. A `discretize` esetében nem törődtünk a kimeneti értékek tartományával, lehetővé téve, hogy negatívak legyenek, így az állapotértékek nem tolódnak el, és 0 megfelel 0-nak. (kódblokk 8)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ #env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ #print(discretize_bins(obs))
+ print(discretize(obs))
+ env.close()
+ ```
+
+ ✅ Kommenteld ki az env.render-rel kezdődő sort, ha látni szeretnéd, hogyan hajtja végre a környezet. Ellenkező esetben a háttérben is futtathatod, ami gyorsabb. Ezt a "láthatatlan" végrehajtást fogjuk használni a Q-Learning folyamat során.
+
+## A Q-tábla szerkezete
+
+Az előző leckében az állapot egy egyszerű számpár volt 0-tól 8-ig, így kényelmes volt a Q-táblát egy 8x8x2 alakú numpy tensorral ábrázolni. Ha bin-ek diszkretizálását használjuk, az állapotvektor mérete is ismert, így ugyanazt a megközelítést alkalmazhatjuk, és az állapotot egy 20x20x10x10x2 alakú tömbbel ábrázolhatjuk (itt 2 az akciótér dimenziója, az első dimenziók pedig az egyes paraméterekhez kiválasztott bin-ek számát jelölik a megfigyelési térben).
+
+Azonban néha a megfigyelési tér pontos dimenziói nem ismertek. A `discretize` függvény esetében soha nem lehetünk biztosak abban, hogy az állapot bizonyos határokon belül marad, mivel néhány eredeti érték nincs korlátozva. Ezért kissé eltérő megközelítést alkalmazunk, és a Q-táblát szótárként ábrázoljuk.
+
+1. Használjuk az *(állapot, akció)* párost a szótár kulcsaként, és az érték a Q-tábla bejegyzésének értékét jelöli. (kódblokk 9)
+
+ ```python
+ Q = {}
+ actions = (0,1)
+
+ def qvalues(state):
+ return [Q.get((state,a),0) for a in actions]
+ ```
+
+ Itt definiálunk egy `qvalues()` függvényt is, amely visszaadja a Q-tábla értékeinek listáját egy adott állapothoz, amely az összes lehetséges akcióhoz tartozik. Ha a bejegyzés nem szerepel a Q-táblában, alapértelmezés szerint 0-t adunk vissza.
+
+## Kezdjük a Q-Learninget
+
+Most készen állunk arra, hogy megtanítsuk Pétert egyensúlyozni!
+
+1. Először állítsunk be néhány hiperparamétert: (kódblokk 10)
+
+ ```python
+ # hyperparameters
+ alpha = 0.3
+ gamma = 0.9
+ epsilon = 0.90
+ ```
+
+ Itt az `alpha` a **tanulási ráta**, amely meghatározza, hogy milyen mértékben kell módosítanunk a Q-tábla aktuális értékeit minden lépésnél. Az előző leckében 1-ről indultunk, majd a tanulás során csökkentettük az `alpha` értékét. Ebben a példában egyszerűség kedvéért állandó értéken tartjuk, de később kísérletezhetsz az `alpha` értékek módosításával.
+
+ A `gamma` a **diszkontfaktor**, amely megmutatja, hogy milyen mértékben kell előnyben részesítenünk a jövőbeli jutalmat a jelenlegi jutalommal szemben.
+
+ Az `epsilon` az **exploráció/hasznosítás tényező**, amely meghatározza, hogy az explorációt vagy a hasznosítást kell-e előnyben részesítenünk. Algoritmusunkban az esetek `epsilon` százalékában a következő akciót a Q-tábla értékei alapján választjuk ki, a fennmaradó esetekben pedig véletlenszerű akciót hajtunk végre. Ez lehetővé teszi számunkra, hogy felfedezzük a keresési tér olyan területeit, amelyeket korábban nem láttunk.
+
+ ✅ Az egyensúlyozás szempontjából – véletlenszerű akció választása (exploráció) olyan, mintha véletlenszerű ütést kapnánk rossz irányba, és a rúdnak meg kell tanulnia, hogyan állítsa vissza az egyensúlyt ezekből a "hibákból".
+
+### Az algoritmus fejlesztése
+
+Két fejlesztést is végezhetünk az előző lecke algoritmusán:
+
+- **Átlagos kumulatív jutalom kiszámítása** több szimuláció során. 5000 iterációnként kinyomtatjuk az előrehaladást, és az átlagos kumulatív jutalmat számítjuk ki ezen időszak alatt. Ez azt jelenti, hogy ha több mint 195 pontot érünk el, akkor a problémát megoldottnak tekinthetjük, még a szükségesnél is jobb minőségben.
+
+- **Maximális átlagos kumulatív eredmény kiszámítása**, `Qmax`, és elmentjük a Q-táblát, amely ehhez az eredményhez tartozik. Amikor futtatod a tanulást, észre fogod venni, hogy néha az átlagos kumulatív eredmény csökkenni kezd, és meg akarjuk őrizni a Q-tábla azon értékeit, amelyek a legjobb modellhez tartoznak a tanulás során.
+
+1. Gyűjtsd össze az összes kumulatív jutalmat minden szimulációnál a `rewards` vektorban további ábrázoláshoz. (kódblokk 11)
+
+ ```python
+ def probs(v,eps=1e-4):
+ v = v-v.min()+eps
+ v = v/v.sum()
+ return v
+
+ Qmax = 0
+ cum_rewards = []
+ rewards = []
+ for epoch in range(100000):
+ obs = env.reset()
+ done = False
+ cum_reward=0
+ # == do the simulation ==
+ while not done:
+ s = discretize(obs)
+ if random.random() Qmax:
+ Qmax = np.average(cum_rewards)
+ Qbest = Q
+ cum_rewards=[]
+ ```
+
+A következőket figyelheted meg az eredményekből:
+
+- **Közel a célhoz**. Nagyon közel vagyunk ahhoz, hogy elérjük a 195 kumulatív jutalmat 100+ egymást követő szimuláció futtatása során, vagy akár el is érhettük! Még ha kisebb számokat kapunk is, nem tudhatjuk biztosan, mert 5000 futtatás átlagát számítjuk, és a hivatalos kritériumhoz csak 100 futtatás szükséges.
+
+- **A jutalom csökkenni kezd**. Néha a jutalom csökkenni kezd, ami azt jelenti, hogy "tönkretehetjük" a Q-táblában már megtanult értékeket olyanokkal, amelyek rosszabbá teszik a helyzetet.
+
+Ez a megfigyelés egyértelműbben látható, ha ábrázoljuk a tanulási folyamatot.
+
+## A tanulási folyamat ábrázolása
+
+A tanulás során az iterációk során összegyűjtöttük a kumulatív jutalom értékét a `rewards` vektorba. Így néz ki, amikor ábrázoljuk az iterációk száma ellenében:
+
+```python
+plt.plot(rewards)
+```
+
+
+
+Ebből a grafikonból nem lehet semmit megállapítani, mivel a sztochasztikus tanulási folyamat természetéből adódóan a tanulási szakaszok hossza nagyon változó. Hogy értelmesebbé tegyük ezt a grafikont, kiszámíthatjuk a **futó átlagot** egy sor kísérlet során, mondjuk 100. Ezt kényelmesen elvégezhetjük az `np.convolve` segítségével: (kódblokk 12)
+
+```python
+def running_average(x,window):
+ return np.convolve(x,np.ones(window)/window,mode='valid')
+
+plt.plot(running_average(rewards,100))
+```
+
+
+
+## Hiperparaméterek változtatása
+
+A tanulás stabilabbá tétele érdekében érdemes
+> **Feladat 1**: Játssz a hiperparaméterek értékeivel, és nézd meg, hogy el tudsz-e érni magasabb kumulatív jutalmat. Sikerül 195 fölé jutnod?
+> **2. feladat**: Ahhoz, hogy hivatalosan megoldjuk a problémát, 195-ös átlagos jutalmat kell elérni 100 egymást követő futtatás során. Mérd ezt az edzés alatt, és győződj meg róla, hogy hivatalosan megoldottad a problémát!
+
+## Az eredmény megtekintése működés közben
+
+Érdekes lenne látni, hogyan viselkedik a betanított modell. Futtassuk le a szimulációt, és kövessük ugyanazt az akcióválasztási stratégiát, mint az edzés során, a Q-táblában lévő valószínűségi eloszlás alapján mintázva: (kód blokk 13)
+
+```python
+obs = env.reset()
+done = False
+while not done:
+ s = discretize(obs)
+ env.render()
+ v = probs(np.array(qvalues(s)))
+ a = random.choices(actions,weights=v)[0]
+ obs,_,done,_ = env.step(a)
+env.close()
+```
+
+Valami ilyesmit kellene látnod:
+
+
+
+---
+
+## 🚀Kihívás
+
+> **3. feladat**: Itt a Q-tábla végső verzióját használtuk, ami lehet, hogy nem a legjobb. Ne feledd, hogy a legjobban teljesítő Q-táblát elmentettük a `Qbest` változóba! Próbáld ki ugyanazt a példát a legjobban teljesítő Q-táblával, úgy, hogy átmásolod a `Qbest`-et a `Q`-ba, és nézd meg, észreveszel-e különbséget.
+
+> **4. feladat**: Itt nem a legjobb akciót választottuk minden lépésnél, hanem a megfelelő valószínűségi eloszlás alapján mintáztunk. Ésszerűbb lenne mindig a legjobb akciót választani, amelynek a legmagasabb Q-tábla értéke van? Ezt megteheted az `np.argmax` függvény használatával, amely megadja a legmagasabb Q-tábla értékhez tartozó akció számát. Valósítsd meg ezt a stratégiát, és nézd meg, javítja-e az egyensúlyozást.
+
+## [Utó-előadás kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Feladat
+[Edz egy Mountain Car modellt](assignment.md)
+
+## Összegzés
+
+Mostanra megtanultuk, hogyan lehet ügynököket betanítani arra, hogy jó eredményeket érjenek el pusztán azáltal, hogy egy jutalomfüggvényt biztosítunk számukra, amely meghatározza a játék kívánt állapotát, és lehetőséget adunk nekik arra, hogy intelligensen feltérképezzék a keresési teret. Sikeresen alkalmaztuk a Q-Learning algoritmust diszkrét és folytonos környezetek esetében, de diszkrét akciókkal.
+
+Fontos tanulmányozni azokat a helyzeteket is, ahol az akcióállapot szintén folytonos, és amikor a megfigyelési tér sokkal összetettebb, például az Atari játék képernyőjének képe. Ezekben a problémákban gyakran erősebb gépi tanulási technikákra, például neurális hálókra van szükség ahhoz, hogy jó eredményeket érjünk el. Ezek a fejlettebb témák a következő, haladó AI kurzusunk tárgyát képezik.
+
+---
+
+**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
diff --git a/translations/hu/8-Reinforcement/2-Gym/assignment.md b/translations/hu/8-Reinforcement/2-Gym/assignment.md
new file mode 100644
index 00000000..f2af6ca0
--- /dev/null
+++ b/translations/hu/8-Reinforcement/2-Gym/assignment.md
@@ -0,0 +1,57 @@
+
+# Hegyi Autó Tanítása
+
+[OpenAI Gym](http://gym.openai.com) úgy lett kialakítva, hogy minden környezet ugyanazt az API-t biztosítsa - azaz ugyanazokat a `reset`, `step` és `render` metódusokat, valamint az **akciótér** és **megfigyelési tér** azonos absztrakcióit. Ezért lehetségesnek kell lennie, hogy ugyanazokat a megerősítéses tanulási algoritmusokat minimális kódmódosítással különböző környezetekhez igazítsuk.
+
+## A Hegyi Autó Környezet
+
+A [Hegyi Autó környezet](https://gym.openai.com/envs/MountainCar-v0/) egy völgyben ragadt autót tartalmaz:
+
+A cél az, hogy kijussunk a völgyből és megszerezzük a zászlót, az alábbi akciók egyikének végrehajtásával minden lépésben:
+
+| Érték | Jelentés |
+|---|---|
+| 0 | Balra gyorsítás |
+| 1 | Nem gyorsít |
+| 2 | Jobbra gyorsítás |
+
+A probléma fő trükkje azonban az, hogy az autó motorja nem elég erős ahhoz, hogy egyetlen menetben felmásszon a hegyre. Ezért az egyetlen módja a sikernek az, hogy oda-vissza vezetünk, hogy lendületet gyűjtsünk.
+
+A megfigyelési tér mindössze két értékből áll:
+
+| Szám | Megfigyelés | Min | Max |
+|-----|--------------|-----|-----|
+| 0 | Autó pozíció | -1.2| 0.6 |
+| 1 | Autó sebesség | -0.07 | 0.07 |
+
+A jutalmazási rendszer a hegyi autó esetében meglehetősen trükkös:
+
+ * 0 jutalom jár, ha az ügynök elérte a zászlót (pozíció = 0.5) a hegy tetején.
+ * -1 jutalom jár, ha az ügynök pozíciója kevesebb, mint 0.5.
+
+Az epizód véget ér, ha az autó pozíciója több mint 0.5, vagy ha az epizód hossza meghaladja a 200-at.
+
+## Útmutató
+
+Igazítsd a megerősítéses tanulási algoritmusunkat a hegyi autó probléma megoldásához. Kezdd a meglévő [notebook.ipynb](../../../../8-Reinforcement/2-Gym/notebook.ipynb) kóddal, cseréld ki az új környezetet, módosítsd az állapot diszkretizációs függvényeket, és próbáld meg a meglévő algoritmust minimális kódmódosítással betanítani. Optimalizáld az eredményt a hiperparaméterek beállításával.
+
+> **Megjegyzés**: Valószínűleg szükség lesz a hiperparaméterek beállítására, hogy az algoritmus konvergáljon.
+
+## Értékelési Kritériumok
+
+| Kritérium | Kiváló | Megfelelő | Fejlesztésre szorul |
+| --------- | ------- | --------- | ------------------- |
+| | A Q-Learning algoritmus sikeresen adaptálva lett a CartPole példából, minimális kódmódosítással, és képes megoldani a zászló megszerzésének problémáját 200 lépés alatt. | Egy új Q-Learning algoritmus lett átvéve az internetről, de jól dokumentált; vagy a meglévő algoritmus lett adaptálva, de nem érte el a kívánt eredményeket. | A hallgató nem tudott sikeresen adaptálni semmilyen algoritmust, de jelentős lépéseket tett a megoldás felé (megvalósította az állapot diszkretizációt, Q-Table adatstruktúrát stb.). |
+
+---
+
+**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
diff --git a/translations/hu/8-Reinforcement/2-Gym/solution/Julia/README.md b/translations/hu/8-Reinforcement/2-Gym/solution/Julia/README.md
new file mode 100644
index 00000000..2f71bd87
--- /dev/null
+++ b/translations/hu/8-Reinforcement/2-Gym/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/8-Reinforcement/2-Gym/solution/R/README.md b/translations/hu/8-Reinforcement/2-Gym/solution/R/README.md
new file mode 100644
index 00000000..8f8fea61
--- /dev/null
+++ b/translations/hu/8-Reinforcement/2-Gym/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ez egy ideiglenes helyőrző
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/8-Reinforcement/README.md b/translations/hu/8-Reinforcement/README.md
new file mode 100644
index 00000000..3a1e4cec
--- /dev/null
+++ b/translations/hu/8-Reinforcement/README.md
@@ -0,0 +1,67 @@
+
+# Bevezetés a megerősítéses tanulásba
+
+A megerősítéses tanulás, azaz RL, a gépi tanulás egyik alapvető paradigmájának számít, a felügyelt tanulás és a nem felügyelt tanulás mellett. Az RL a döntésekről szól: helyes döntések meghozatala vagy legalább tanulás a hibákból.
+
+Képzeld el, hogy van egy szimulált környezeted, például a tőzsde. Mi történik, ha bevezetsz egy adott szabályozást? Pozitív vagy negatív hatása lesz? Ha valami negatív történik, akkor ezt _negatív megerősítésként_ kell értelmezned, tanulnod kell belőle, és változtatnod kell az irányon. Ha pozitív eredményt érünk el, akkor arra kell építenünk, _pozitív megerősítésként_.
+
+
+
+> Péternek és barátainak menekülniük kell az éhes farkas elől! Kép: [Jen Looper](https://twitter.com/jenlooper)
+
+## Regionális téma: Péter és a farkas (Oroszország)
+
+A [Péter és a farkas](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) egy zenés mese, amelyet egy orosz zeneszerző, [Szergej Prokofjev](https://en.wikipedia.org/wiki/Sergei_Prokofiev) írt. A történet egy fiatal pionírról, Péterről szól, aki bátran kimegy az erdő tisztására, hogy üldözze a farkast. Ebben a részben gépi tanulási algoritmusokat fogunk tanítani, amelyek segítenek Péternek:
+
+- **Felfedezni** a környező területet és optimális navigációs térképet készíteni.
+- **Megtanulni** gördeszkázni és egyensúlyozni rajta, hogy gyorsabban tudjon közlekedni.
+
+[](https://www.youtube.com/watch?v=Fmi5zHg4QSM)
+
+> 🎥 Kattints a fenti képre, hogy meghallgasd Prokofjev Péter és a farkas című művét.
+
+## Megerősítéses tanulás
+
+Az előző részekben két gépi tanulási problémát láttál:
+
+- **Felügyelt tanulás**, ahol vannak adataink, amelyek mintamegoldásokat javasolnak az általunk megoldani kívánt problémára. A [klasszifikáció](../4-Classification/README.md) és a [regresszió](../2-Regression/README.md) felügyelt tanulási feladatok.
+- **Nem felügyelt tanulás**, ahol nincsenek címkézett tanulási adatok. A nem felügyelt tanulás fő példája a [klaszterezés](../5-Clustering/README.md).
+
+Ebben a részben egy új tanulási problémát mutatunk be, amely nem igényel címkézett tanulási adatokat. Az ilyen problémák több típusa létezik:
+
+- **[Félig felügyelt tanulás](https://wikipedia.org/wiki/Semi-supervised_learning)**, ahol rengeteg címkézetlen adat áll rendelkezésre, amelyet felhasználhatunk a modell előzetes betanítására.
+- **[Megerősítéses tanulás](https://wikipedia.org/wiki/Reinforcement_learning)**, amelyben egy ügynök kísérletek végrehajtásával tanulja meg, hogyan viselkedjen egy szimulált környezetben.
+
+### Példa - számítógépes játék
+
+Tegyük fel, hogy meg akarod tanítani a számítógépet egy játék, például sakk vagy [Super Mario](https://wikipedia.org/wiki/Super_Mario) játszására. Ahhoz, hogy a számítógép játszani tudjon, meg kell tanítanunk neki, hogy minden játékállapotban megjósolja, melyik lépést tegye meg. Bár ez elsőre klasszifikációs problémának tűnhet, valójában nem az – mivel nincs olyan adatbázisunk, amely állapotokat és hozzájuk tartozó lépéseket tartalmazna. Bár lehet, hogy van némi adatunk, például meglévő sakkjátszmák vagy Super Mario játékosok felvételei, valószínű, hogy ezek az adatok nem fedik le eléggé a lehetséges állapotok nagy számát.
+
+Ahelyett, hogy meglévő játékadatokat keresnénk, a **megerősítéses tanulás** (RL) azon az ötleten alapul, hogy *a számítógépet sokszor játszatjuk*, és megfigyeljük az eredményt. Így a megerősítéses tanulás alkalmazásához két dologra van szükségünk:
+
+- **Egy környezetre** és **egy szimulátorra**, amely lehetővé teszi, hogy sokszor játszunk. Ez a szimulátor határozza meg az összes játékszabályt, valamint a lehetséges állapotokat és lépéseket.
+
+- **Egy jutalomfüggvényre**, amely megmondja, mennyire teljesítettünk jól minden lépés vagy játék során.
+
+A fő különbség a többi gépi tanulási típus és az RL között az, hogy az RL-ben általában nem tudjuk, hogy nyerünk vagy veszítünk, amíg be nem fejezzük a játékot. Ezért nem mondhatjuk meg, hogy egy bizonyos lépés önmagában jó-e vagy sem – csak a játék végén kapunk jutalmat. A célunk olyan algoritmusok tervezése, amelyek lehetővé teszik, hogy bizonytalan körülmények között is modelleket tanítsunk. Megismerkedünk egy RL algoritmussal, amelyet **Q-learningnek** hívnak.
+
+## Leckék
+
+1. [Bevezetés a megerősítéses tanulásba és a Q-Learningbe](1-QLearning/README.md)
+2. [Egy gym szimulációs környezet használata](2-Gym/README.md)
+
+## Köszönetnyilvánítás
+
+"A megerősítéses tanulás bevezetése" ♥️-vel készült [Dmitry Soshnikov](http://soshnikov.com) által.
+
+---
+
+**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
diff --git a/translations/hu/9-Real-World/1-Applications/README.md b/translations/hu/9-Real-World/1-Applications/README.md
new file mode 100644
index 00000000..8f1cd0a7
--- /dev/null
+++ b/translations/hu/9-Real-World/1-Applications/README.md
@@ -0,0 +1,145 @@
+
+# Utóirat: Gépi tanulás a való világban
+
+
+> Sketchnote készítette: [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Ebben a tananyagban számos módszert tanultál az adatok előkészítésére és gépi tanulási modellek létrehozására. Klasszikus regressziós, klaszterezési, osztályozási, természetes nyelvfeldolgozási és idősoros modellek sorozatát építetted fel. Gratulálunk! Most talán azon gondolkodsz, hogy mindez mire jó... milyen valós alkalmazásai vannak ezeknek a modelleknek?
+
+Bár az iparban nagy érdeklődést váltott ki az AI, amely általában mély tanulást használ, a klasszikus gépi tanulási modelleknek továbbra is értékes alkalmazásai vannak. Lehet, hogy már ma is használod ezeket az alkalmazásokat! Ebben a leckében megvizsgáljuk, hogyan használja nyolc különböző iparág és szakterület ezeket a modelleket, hogy alkalmazásaik teljesítményét, megbízhatóságát, intelligenciáját és értékét növeljék a felhasználók számára.
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## 💰 Pénzügy
+
+A pénzügyi szektor számos lehetőséget kínál a gépi tanulás számára. Sok probléma ebben a területen modellezhető és megoldható ML segítségével.
+
+### Hitelkártya-csalás észlelése
+
+Korábban tanultunk a [k-means klaszterezésről](../../5-Clustering/2-K-Means/README.md), de hogyan használható ez a hitelkártya-csalásokkal kapcsolatos problémák megoldására?
+
+A k-means klaszterezés hasznos a hitelkártya-csalás észlelésének egyik technikájában, amelyet **szélsőértékek észlelésének** neveznek. A szélsőértékek, vagyis az adathalmaz megfigyeléseiben tapasztalható eltérések, megmutathatják, hogy egy hitelkártyát normál módon használnak-e, vagy valami szokatlan történik. Az alábbi tanulmány szerint a hitelkártya-adatokat k-means klaszterezési algoritmus segítségével lehet rendezni, és minden tranzakciót egy klaszterhez rendelni annak alapján, hogy mennyire tűnik szélsőértéknek. Ezután ki lehet értékelni a legkockázatosabb klasztereket, hogy megállapítsuk, csalásról vagy legitim tranzakcióról van-e szó.
+[Hivatkozás](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.680.1195&rep=rep1&type=pdf)
+
+### Vagyonkezelés
+
+A vagyonkezelés során egy személy vagy cég kezeli ügyfelei befektetéseit. Feladatuk a vagyon hosszú távú fenntartása és növelése, ezért elengedhetetlen, hogy jól teljesítő befektetéseket válasszanak.
+
+Egy befektetés teljesítményének értékelésére az egyik módszer a statisztikai regresszió. A [lineáris regresszió](../../2-Regression/1-Tools/README.md) értékes eszköz annak megértéséhez, hogy egy alap hogyan teljesít egy benchmarkhoz képest. Azt is megállapíthatjuk, hogy a regresszió eredményei statisztikailag szignifikánsak-e, vagy hogy mennyire befolyásolnák az ügyfél befektetéseit. Az elemzést tovább bővítheted többszörös regresszióval, ahol további kockázati tényezőket is figyelembe lehet venni. Egy konkrét alap teljesítményének értékelésére vonatkozó példát az alábbi tanulmányban találhatsz.
+[Hivatkozás](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/)
+
+## 🎓 Oktatás
+
+Az oktatási szektor szintén nagyon érdekes terület, ahol az ML alkalmazható. Érdekes problémák merülhetnek fel, például a csalás észlelése teszteken vagy esszéken, illetve az elfogultság kezelése, akár szándékos, akár nem, a javítási folyamat során.
+
+### Diákok viselkedésének előrejelzése
+
+A [Coursera](https://coursera.com), egy online nyílt kurzusokat kínáló szolgáltató, nagyszerű technológiai blogot vezet, ahol számos mérnöki döntést megvitatnak. Ebben az esettanulmányban regressziós vonalat rajzoltak, hogy megvizsgálják, van-e összefüggés az alacsony NPS (Net Promoter Score) értékelés és a kurzus megtartása vagy lemorzsolódása között.
+[Hivatkozás](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a)
+
+### Elfogultság csökkentése
+
+A [Grammarly](https://grammarly.com), egy írássegítő, amely helyesírási és nyelvtani hibákat ellenőriz, kifinomult [természetes nyelvfeldolgozási rendszereket](../../6-NLP/README.md) használ termékeiben. Érdekes esettanulmányt tettek közzé technológiai blogjukban arról, hogyan kezelték a nemi elfogultságot a gépi tanulásban, amelyről az [igazságosságról szóló bevezető leckénkben](../../1-Introduction/3-fairness/README.md) tanultál.
+[Hivatkozás](https://www.grammarly.com/blog/engineering/mitigating-gender-bias-in-autocorrect/)
+
+## 👜 Kereskedelem
+
+A kereskedelmi szektor jelentős előnyöket élvezhet az ML használatából, kezdve a jobb vásárlói élmény megteremtésétől az optimális készletkezelésig.
+
+### Vásárlói élmény személyre szabása
+
+A Wayfair, egy otthoni termékeket, például bútorokat árusító cég, kiemelten fontosnak tartja, hogy segítsen vásárlóinak megtalálni az ízlésüknek és igényeiknek megfelelő termékeket. Ebben a cikkben a cég mérnökei leírják, hogyan használják az ML-t és az NLP-t, hogy "a megfelelő eredményeket kínálják a vásárlóknak". Különösen a Query Intent Engine-t építették ki, amely entitáskinyerést, osztályozó tanítást, eszköz- és véleménykinyerést, valamint érzelemcímkézést alkalmaz az ügyfélértékelésekben. Ez egy klasszikus példa arra, hogyan működik az NLP az online kereskedelemben.
+[Hivatkozás](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search)
+
+### Készletkezelés
+
+Az innovatív, rugalmas cégek, mint például a [StitchFix](https://stitchfix.com), egy dobozos szolgáltatás, amely ruhákat küld a fogyasztóknak, erősen támaszkodnak az ML-re az ajánlások és készletkezelés terén. Stíluscsapataik együttműködnek a merchandising csapataikkal: "egy adatkutatónk egy genetikus algoritmussal kísérletezett, és alkalmazta azt a ruházatra, hogy megjósolja, milyen sikeres ruhadarab lehet, amely ma még nem létezik. Ezt bemutattuk a merchandising csapatnak, és most már eszközként használhatják."
+[Hivatkozás](https://www.zdnet.com/article/how-stitch-fix-uses-machine-learning-to-master-the-science-of-styling/)
+
+## 🏥 Egészségügy
+
+Az egészségügyi szektor az ML-t kutatási feladatok optimalizálására, valamint logisztikai problémák, például a betegek visszafogadása vagy a betegségek terjedésének megállítása érdekében használhatja.
+
+### Klinikai vizsgálatok kezelése
+
+A klinikai vizsgálatokban a toxicitás komoly aggodalomra ad okot a gyógyszergyártók számára. Mennyi toxicitás tolerálható? Ebben a tanulmányban különböző klinikai vizsgálati módszerek elemzése új megközelítést eredményezett a klinikai vizsgálati eredmények esélyeinek előrejelzésére. Különösen a random forest segítségével hoztak létre egy [osztályozót](../../4-Classification/README.md), amely képes megkülönböztetni a gyógyszercsoportokat.
+[Hivatkozás](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
+
+### Kórházi visszafogadás kezelése
+
+A kórházi ellátás költséges, különösen akkor, ha a betegeket vissza kell fogadni. Ez a tanulmány egy olyan céget tárgyal, amely ML-t használ a visszafogadás potenciáljának előrejelzésére [klaszterezési](../../5-Clustering/README.md) algoritmusok segítségével. Ezek a klaszterek segítenek az elemzőknek "felfedezni olyan visszafogadási csoportokat, amelyeknek közös oka lehet".
+[Hivatkozás](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning)
+
+### Betegségkezelés
+
+A közelmúltbeli járvány rávilágított arra, hogy a gépi tanulás hogyan segíthet a betegségek terjedésének megállításában. Ebben a cikkben felismerheted az ARIMA, logisztikai görbék, lineáris regresszió és SARIMA használatát. "Ez a munka arra irányul, hogy kiszámítsa a vírus terjedési sebességét, és így előre jelezze a haláleseteket, gyógyulásokat és megerősített eseteket, hogy jobban felkészülhessünk és túlélhessünk."
+[Hivatkozás](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/)
+
+## 🌲 Ökológia és zöld technológia
+
+A természet és ökológia számos érzékeny rendszert foglal magában, ahol az állatok és a természet közötti kölcsönhatás kerül előtérbe. Fontos, hogy ezeket a rendszereket pontosan mérjük, és megfelelően cselekedjünk, ha valami történik, például erdőtűz vagy az állatpopuláció csökkenése.
+
+### Erdőgazdálkodás
+
+Korábbi leckékben tanultál a [megerősítéses tanulásról](../../8-Reinforcement/README.md). Ez nagyon hasznos lehet, amikor a természetben előforduló mintázatokat próbáljuk megjósolni. Különösen hasznos lehet ökológiai problémák, például erdőtüzek és invazív fajok terjedésének nyomon követésére. Kanadában egy kutatócsoport megerősítéses tanulást használt erdőtűz dinamikai modellek építésére műholdképek alapján. Egy innovatív "térbeli terjedési folyamat (SSP)" segítségével az erdőtüzet "ügynökként képzelték el a táj bármely cellájában". "Azok az akciók, amelyeket a tűz bármely helyszínen bármely időpontban megtehet, magukban foglalják az északra, délre, keletre vagy nyugatra való terjedést, vagy a nem terjedést."
+
+Ez a megközelítés megfordítja a szokásos RL beállítást, mivel a megfelelő Markov döntési folyamat (MDP) dinamikája ismert funkció az azonnali erdőtűz terjedésére. Olvass többet az algoritmusokról az alábbi linken.
+[Hivatkozás](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full)
+
+### Állatok mozgásának érzékelése
+
+Bár a mély tanulás forradalmat hozott az állatok mozgásának vizuális nyomon követésében (építhetsz saját [jegesmedve nyomkövetőt](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) itt), a klasszikus ML-nek még mindig van helye ebben a feladatban.
+
+Az állatok mozgásának nyomon követésére szolgáló érzékelők és az IoT az ilyen típusú vizuális feldolgozást használják, de az alapvető ML technikák hasznosak az adatok előfeldolgozásában. Például ebben a tanulmányban a juhok testtartását különböző osztályozó algoritmusok segítségével figyelték meg és elemezték. Felismerheted az ROC görbét a 335. oldalon.
+[Hivatkozás](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf)
+
+### ⚡️ Energia menedzsment
+
+Az [idősoros előrejelzésről](../../7-TimeSeries/README.md) szóló leckéinkben megemlítettük az okos parkolóórák koncepcióját, amelyek segítenek bevételt generálni egy város számára a kereslet és kínálat megértése alapján. Ez a cikk részletesen tárgyalja, hogyan kombinálták a klaszterezést, regressziót és idősoros előrejelzést, hogy előre jelezzék Írország jövőbeli energiafelhasználását okos mérés alapján.
+[Hivatkozás](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf)
+
+## 💼 Biztosítás
+
+A biztosítási szektor egy másik terület, amely az ML-t használja életképes pénzügyi és aktuáriusi modellek felépítésére és optimalizálására.
+
+### Volatilitás kezelése
+
+A MetLife, egy életbiztosítási szolgáltató, nyíltan beszél arról, hogyan elemzik és csökkentik a volatilitást pénzügyi modelljeikben. Ebben a cikkben bináris és ordinális osztályozási vizualizációkat találhatsz. Emellett előrejelzési vizualizációkat is felfedezhetsz.
+[Hivatkozás](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf)
+
+## 🎨 Művészetek, kultúra és irodalom
+
+A művészetekben, például az újságírásban, számos érdekes probléma merül fel. A hamis hírek észlelése komoly probléma, mivel bizonyítottan befolyásolja az emberek véleményét, sőt demokráciákat is megingathat. A múzeumok is profitálhatnak az ML használatából, például az artefaktumok közötti kapcsolatok megtalálásában vagy az erőforrások tervezésében.
+
+### Hamis hírek észlelése
+
+A hamis hírek észlelése macska-egér játékká vált a mai médiában. Ebben a cikkben a kutatók azt javasolják, hogy több ML technikát kombináló rendszert teszteljenek, és a legjobb modellt alkalmazzák: "Ez a rendszer természetes nyelvfeldolgozáson alapul, hogy adatokat nyerjen ki, majd ezek az adatok gépi tanulási osztályozók, például Naive Bayes, Support Vector Machine (SVM), Random Forest (RF), Stochastic Gradient Descent (SGD) és Logistic Regression (LR) tanítására szolgálnak."
+[Hivatkozás](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf)
+
+Ez a cikk bemutatja, hogyan lehet különböző ML területeket kombinálni, hogy érdekes eredményeket érjünk el, amelyek segíthetnek megállítani a hamis hírek terjedését és valódi károkat okozását; ebben az esetben az indíték a COVID-kezelésekről szóló pletykák terjedése volt, amelyek tömeges erőszakot váltottak ki.
+
+### Múzeumi ML
+
+A múzeumok az AI forradalmának küszö
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+A Wayfair adatkutató csapata több érdekes videót készített arról, hogyan használják a gépi tanulást a vállalatuknál. Érdemes [megnézni](https://www.youtube.com/channel/UCe2PjkQXqOuwkW1gw6Ameuw/videos)!
+
+## Feladat
+
+[ML kincsvadászat](assignment.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/9-Real-World/1-Applications/assignment.md b/translations/hu/9-Real-World/1-Applications/assignment.md
new file mode 100644
index 00000000..800b0243
--- /dev/null
+++ b/translations/hu/9-Real-World/1-Applications/assignment.md
@@ -0,0 +1,27 @@
+
+# ML Kincsvadászat
+
+## Útmutató
+
+Ebben a leckében számos valós életből vett példát ismertél meg, amelyeket klasszikus gépi tanulással oldottak meg. Bár a mélytanulás, az AI új technikái és eszközei, valamint a neurális hálózatok alkalmazása felgyorsította az eszközök fejlesztését ezekben az ágazatokban, a klasszikus gépi tanulás, amelyet ebben a tananyagban tanultál, továbbra is nagy értéket képvisel.
+
+Ebben a feladatban képzeld el, hogy részt veszel egy hackathonon. Használd fel a tananyagban tanultakat, és javasolj egy megoldást klasszikus gépi tanulás segítségével egy probléma megoldására az egyik ágazatban, amelyet ebben a leckében tárgyaltunk. Készíts egy prezentációt, amelyben bemutatod, hogyan valósítanád meg az ötletedet. Extra pontokat ér, ha mintaadatokat gyűjtesz, és építesz egy gépi tanulási modellt az elképzelésed támogatására!
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ----------------------------------------------------------------- | ----------------------------------------------- | ----------------------- |
+| | PowerPoint prezentáció készül - extra pont a modell építéséért | Egy nem innovatív, alapvető prezentáció készül | A munka hiányos |
+
+---
+
+**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 az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.
\ No newline at end of file
diff --git a/translations/hu/9-Real-World/2-Debugging-ML-Models/README.md b/translations/hu/9-Real-World/2-Debugging-ML-Models/README.md
new file mode 100644
index 00000000..5d30d209
--- /dev/null
+++ b/translations/hu/9-Real-World/2-Debugging-ML-Models/README.md
@@ -0,0 +1,159 @@
+
+# Utószó: Modellhibakeresés gépi tanulásban a Responsible AI dashboard komponenseivel
+
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Bevezetés
+
+A gépi tanulás hatással van mindennapi életünkre. Az AI egyre inkább megjelenik olyan rendszerekben, amelyek alapvetően befolyásolják az egyéneket és a társadalmat, például az egészségügyben, pénzügyekben, oktatásban és foglalkoztatásban. Például rendszerek és modellek vesznek részt napi döntéshozatali feladatokban, mint például egészségügyi diagnózisok vagy csalások észlelése. Az AI fejlődése és gyors elterjedése azonban új társadalmi elvárásokkal és növekvő szabályozással találkozik. Gyakran látjuk, hogy az AI rendszerek nem felelnek meg az elvárásoknak, új kihívásokat vetnek fel, és a kormányok elkezdik szabályozni az AI megoldásokat. Ezért fontos, hogy ezeket a modelleket elemezzük, hogy mindenki számára igazságos, megbízható, befogadó, átlátható és felelősségteljes eredményeket biztosítsanak.
+
+Ebben a tananyagban gyakorlati eszközöket mutatunk be, amelyekkel megvizsgálható, hogy egy modell rendelkezik-e felelősségteljes AI problémákkal. A hagyományos gépi tanulási hibakeresési technikák általában kvantitatív számításokon alapulnak, mint például az összesített pontosság vagy az átlagos hibaveszteség. Gondoljunk bele, mi történik, ha az adatok, amelyeket a modellek építéséhez használunk, bizonyos demográfiai csoportokat nem tartalmaznak, például faji, nemi, politikai nézetek vagy vallási csoportokat, vagy aránytalanul képviselik ezeket. Mi történik akkor, ha a modell kimenete egyes demográfiai csoportokat előnyben részesít? Ez túl- vagy alulképviseletet eredményezhet az érzékeny jellemzőcsoportokban, ami igazságossági, befogadási vagy megbízhatósági problémákat okozhat. Továbbá, a gépi tanulási modelleket gyakran "fekete dobozként" kezelik, ami megnehezíti annak megértését és magyarázatát, hogy mi vezérli a modell előrejelzéseit. Ezek mind olyan kihívások, amelyekkel az adatkutatók és AI fejlesztők szembesülnek, ha nincsenek megfelelő eszközeik a modellek igazságosságának vagy megbízhatóságának hibakeresésére és értékelésére.
+
+Ebben a leckében megtanulhatod, hogyan végezz hibakeresést a modelleken az alábbiak segítségével:
+
+- **Hibaelemzés**: azonosítsd, hogy az adateloszlás mely részeinél magas a modell hibaaránya.
+- **Modelláttekintés**: végezz összehasonlító elemzést különböző adatcsoportok között, hogy felfedezd a modell teljesítménymutatóiban lévő eltéréseket.
+- **Adatelemzés**: vizsgáld meg, hol lehet túl- vagy alulképviselet az adataidban, ami a modellt egy demográfiai csoport előnyben részesítésére késztetheti egy másikkal szemben.
+- **Jellemzők fontossága**: értsd meg, mely jellemzők befolyásolják a modell előrejelzéseit globális vagy lokális szinten.
+
+## Előfeltétel
+
+Előfeltételként kérjük, tekintsd át a [Felelősségteljes AI eszközök fejlesztőknek](https://www.microsoft.com/ai/ai-lab-responsible-ai-dashboard) című anyagot.
+
+> 
+
+## Hibaelemzés
+
+A hagyományos modellteljesítmény-mutatók, amelyeket a pontosság mérésére használnak, többnyire helyes és helytelen előrejelzések alapján végzett számítások. Például egy modell, amely 89%-ban pontos, és 0,001 hibaveszteséggel rendelkezik, jó teljesítményűnek tekinthető. Azonban a hibák gyakran nem oszlanak el egyenletesen az alapul szolgáló adathalmazban. Lehet, hogy 89%-os pontossági eredményt kapsz, de felfedezed, hogy az adatok bizonyos régióiban a modell 42%-ban hibázik. Az ilyen hibaminták következményei bizonyos adatcsoportokkal igazságossági vagy megbízhatósági problémákhoz vezethetnek. Fontos megérteni, hogy a modell hol teljesít jól vagy rosszul. Azok az adatrégiók, ahol a modell pontatlanságai magasak, fontos demográfiai csoportok lehetnek.
+
+
+
+A RAI dashboard Hibaelemzés komponense megmutatja, hogyan oszlanak el a modellhibák különböző csoportok között egy fa vizualizáció segítségével. Ez hasznos annak azonosításában, hogy mely jellemzők vagy területek okoznak magas hibaarányt az adathalmazban. Azáltal, hogy látod, honnan származnak a modell pontatlanságai, elkezdheted vizsgálni a gyökérokokat. Adatcsoportokat is létrehozhatsz az elemzéshez. Ezek az adatcsoportok segítenek a hibakeresési folyamatban annak meghatározásában, hogy miért teljesít jól a modell az egyik csoportban, de hibázik a másikban.
+
+
+
+A fa térkép vizuális jelzői segítenek gyorsabban megtalálni a problémás területeket. Például minél sötétebb piros színű egy fa csomópont, annál magasabb a hibaarány.
+
+A hőtérkép egy másik vizualizációs funkció, amelyet a felhasználók használhatnak a hibaarány vizsgálatára egy vagy két jellemző alapján, hogy megtalálják a modellhibák hozzájáruló tényezőit az egész adathalmazban vagy csoportokban.
+
+
+
+Használj hibaelemzést, ha:
+
+* Mélyebb megértést szeretnél szerezni arról, hogyan oszlanak el a modellhibák az adathalmazon és több bemeneti és jellemző dimenzión keresztül.
+* Fel szeretnéd bontani az összesített teljesítménymutatókat, hogy automatikusan felfedezd a hibás csoportokat, és célzott enyhítési lépéseket tegyél.
+
+## Modelláttekintés
+
+Egy gépi tanulási modell teljesítményének értékelése átfogó megértést igényel a viselkedéséről. Ez több mutató, például hibaarány, pontosság, visszahívás, precizitás vagy MAE (átlagos abszolút hiba) áttekintésével érhető el, hogy feltárjuk a teljesítménymutatók közötti eltéréseket. Egy mutató lehet, hogy kiválóan néz ki, de egy másik mutatóban pontatlanságok derülhetnek ki. Ezenkívül a mutatók összehasonlítása az egész adathalmazon vagy csoportokon belül segít rávilágítani arra, hogy a modell hol teljesít jól vagy rosszul. Ez különösen fontos annak megértésében, hogy a modell hogyan teljesít érzékeny és nem érzékeny jellemzők között (pl. beteg faja, neme vagy életkora), hogy feltárjuk a modell esetleges igazságtalanságait. Például, ha felfedezzük, hogy a modell hibásabb egy érzékeny jellemzőket tartalmazó csoportban, az igazságtalanságot jelezhet.
+
+A RAI dashboard Modelláttekintés komponense nemcsak az adatreprezentáció teljesítménymutatóinak elemzésében segít egy csoportban, hanem lehetőséget ad a modell viselkedésének összehasonlítására különböző csoportok között.
+
+
+
+A komponens jellemző-alapú elemzési funkciója lehetővé teszi a felhasználók számára, hogy szűkítsék az adatcsoportokat egy adott jellemzőn belül, hogy anomáliákat azonosítsanak részletes szinten. Például a dashboard beépített intelligenciával automatikusan generál csoportokat egy felhasználó által kiválasztott jellemző alapján (pl. *"time_in_hospital < 3"* vagy *"time_in_hospital >= 7"*). Ez lehetővé teszi a felhasználó számára, hogy egy adott jellemzőt elkülönítsen egy nagyobb adatcsoportból, hogy lássa, ez-e a kulcsfontosságú tényező a modell hibás eredményeiben.
+
+
+
+A Modelláttekintés komponens két osztályú eltérési mutatót támogat:
+
+**Eltérés a modell teljesítményében**: Ezek a mutatók kiszámítják az eltérést (különbséget) a kiválasztott teljesítménymutató értékei között az adatcsoportokban. Néhány példa:
+
+* Pontossági arány eltérése
+* Hibaarány eltérése
+* Precizitás eltérése
+* Visszahívás eltérése
+* Átlagos abszolút hiba (MAE) eltérése
+
+**Eltérés a kiválasztási arányban**: Ez a mutató tartalmazza a kiválasztási arány (kedvező előrejelzés) különbségét az adatcsoportok között. Példa erre a hiteljóváhagyási arány eltérése. A kiválasztási arány azt jelenti, hogy az egyes osztályok adatpontjainak hány százalékát osztályozzák 1-nek (bináris osztályozásban) vagy az előrejelzési értékek eloszlását (regresszióban).
+
+## Adatelemzés
+
+> "Ha elég sokáig kínozod az adatokat, bármit bevallanak" - Ronald Coase
+
+Ez az állítás szélsőségesen hangzik, de igaz, hogy az adatok manipulálhatók bármilyen következtetés támogatására. Az ilyen manipuláció néha akaratlanul történik. Emberek vagyunk, és mindannyian rendelkezünk előítéletekkel, amelyeket gyakran nehéz tudatosan felismerni, amikor adatokat torzítunk. Az igazságosság biztosítása az AI-ban és a gépi tanulásban továbbra is összetett kihívás.
+
+Az adatok nagy vakfoltot jelentenek a hagyományos modellteljesítmény-mutatók számára. Lehet, hogy magas pontossági eredményeket kapsz, de ez nem mindig tükrözi az adathalmazban lévő alapvető adatelfogultságot. Például, ha egy vállalat alkalmazottainak adathalmazában az ügyvezető pozíciókban 27% nő és 73% férfi van, egy álláshirdetési AI modell, amelyet ezen adatok alapján képeztek, valószínűleg főként férfi közönséget céloz meg vezetői pozíciókra. Az adatokban lévő egyensúlyhiány a modell előrejelzését egy nem előnyben részesítésére késztette. Ez igazságossági problémát tár fel, ahol nemi elfogultság van az AI modellben.
+
+A RAI dashboard Adatelemzés komponense segít azonosítani azokat a területeket, ahol túl- vagy alulképviselet van az adathalmazban. Segít a felhasználóknak diagnosztizálni azokat a hibák és igazságossági problémák gyökérokait, amelyeket az adatok egyensúlyhiánya vagy egy adott adatcsoport hiánya okoz. Ez lehetőséget ad a felhasználóknak arra, hogy vizualizálják az adathalmazokat előrejelzett és valós eredmények, hibacsoportok és konkrét jellemzők alapján. Néha egy alulképviselt adatcsoport felfedezése azt is feltárhatja, hogy a modell nem tanul jól, ezért magas a pontatlanság. Egy adatelfogultsággal rendelkező modell nemcsak igazságossági problémát jelent, hanem azt is mutatja, hogy a modell nem befogadó vagy megbízható.
+
+
+
+Használj adatelemzést, ha:
+
+* Felfedezni szeretnéd az adathalmaz statisztikáit különböző szűrők kiválasztásával, hogy az adatokat különböző dimenziókra (más néven csoportokra) bontsd.
+* Megérteni szeretnéd az adathalmaz eloszlását különböző csoportok és jellemzőcsoportok között.
+* Meghatározni szeretnéd, hogy az igazságossággal, hibaelemzéssel és ok-okozati összefüggésekkel kapcsolatos megállapításaid (amelyeket más dashboard komponensekből származtattál) az adathalmaz eloszlásának eredményei-e.
+* Eldönteni, hogy mely területeken gyűjts több adatot, hogy enyhítsd azokat a hibákat, amelyek reprezentációs problémákból, címkezajból, jellemzőzajból, címkeelfogultságból és hasonló tényezőkből származnak.
+
+## Modellérthetőség
+
+A gépi tanulási modellek gyakran "fekete dobozként" működnek. Nehéz megérteni, hogy mely kulcsfontosságú adatjellemzők vezérlik a modell előrejelzéseit. Fontos, hogy átláthatóságot biztosítsunk arra vonatkozóan, hogy miért hoz egy modell bizonyos előrejelzést. Például, ha egy AI rendszer azt jósolja, hogy egy cukorbeteg páciensnél fennáll a kockázata annak, hogy 30 napon belül visszakerül a kórházba, akkor képesnek kell lennie arra, hogy támogató adatokat nyújtson, amelyek az előrejelzéséhez vezettek. A támogató adatjelzők átláthatóságot biztosítanak, hogy segítsenek az orvosoknak vagy kórházaknak jól informált döntéseket hozni. Ezenkívül az, hogy megmagyarázható, miért hozott egy modell előrejelzést egy adott páciens esetében, lehetővé teszi az egészségügyi szabályozásokkal való megfelelést. Amikor gépi tanulási modelleket használsz olyan módon, amely hatással van az emberek életére, elengedhetetlen megérteni és megmagyarázni, mi befolyásolja a modell viselkedését. A modell magyarázhatósága és érthetősége segít választ adni az alábbi helyzetekben:
+
+* Modellhibakeresés: Miért követte el a modell ezt a hibát? Hogyan javíthatom a modellemet?
+* Ember-AI együttműködés: Hogyan érthetem meg és bízhatok a modell döntéseiben?
+* Szabályozási megfelelés: Megfelel-e a modellem a jogi követelményeknek?
+
+A RAI dashboard Jellemzők fontossága komponense segít hibakeresésben és átfogó megértést nyújt arról, hogyan hoz egy modell előrejelzéseket. Ez egy hasznos eszköz gépi tanulási szakemberek és döntéshozók számára, hogy megmagyarázzák és bizonyítékot mutassanak arra, hogy mely jellemzők befolyásolják a modell viselkedését a szabályozási megfelelés érdekében. A felhasználók globális és lokális magyarázatokat is felfedezhetnek, hogy érvényesítsék, mely jellemzők vezérlik a modell előrejelzéseit. A globális magyarázatok felsorolják azokat a legfontosabb j
+- **Túl- vagy alulreprezentáció**. Az elképzelés az, hogy egy bizonyos csoport nem jelenik meg egy adott szakmában, és bármely szolgáltatás vagy funkció, amely ezt tovább erősíti, káros hatást gyakorol.
+
+### Azure RAI dashboard
+
+Az [Azure RAI dashboard](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) nyílt forráskódú eszközökre épül, amelyeket vezető akadémiai intézmények és szervezetek, köztük a Microsoft fejlesztettek ki. Ezek az eszközök segítik az adatkutatókat és AI fejlesztőket abban, hogy jobban megértsék a modellek viselkedését, és hogy felfedezzék és enyhítsék az AI modellek nem kívánt problémáit.
+
+- Ismerd meg, hogyan használhatod a különböző komponenseket az RAI dashboard [dokumentációjának](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) átnézésével.
+
+- Nézd meg néhány RAI dashboard [példa notebookot](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks), amelyek segítenek felelősségteljesebb AI forgatókönyvek hibakeresésében az Azure Machine Learning-ben.
+
+---
+
+## 🚀 Kihívás
+
+Annak érdekében, hogy statisztikai vagy adatbeli torzítások már eleve ne kerüljenek bevezetésre, a következőket kell tennünk:
+
+- biztosítsuk, hogy a rendszereken dolgozó emberek különböző háttérrel és nézőpontokkal rendelkezzenek
+- fektessünk be olyan adathalmazokba, amelyek tükrözik társadalmunk sokszínűségét
+- fejlesszünk jobb módszereket a torzítások észlelésére és kijavítására, amikor azok előfordulnak
+
+Gondolj valós életbeli helyzetekre, ahol az igazságtalanság nyilvánvaló a modellek építése és használata során. Mit kellene még figyelembe vennünk?
+
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Áttekintés és önálló tanulás
+
+Ebben a leckében megismerkedtél néhány gyakorlati eszközzel, amelyek segítenek a felelősségteljes AI beépítésében a gépi tanulásba.
+
+Nézd meg ezt a workshopot, hogy mélyebben elmerülj a témákban:
+
+- Responsible AI Dashboard: Egyablakos megoldás a felelősségteljes AI gyakorlati alkalmazásához, előadók: Besmira Nushi és Mehrnoosh Sameki
+
+[](https://www.youtube.com/watch?v=f1oaDNl3djg "Responsible AI Dashboard: Egyablakos megoldás a felelősségteljes AI gyakorlati alkalmazásához")
+
+> 🎥 Kattints a fenti képre a videóért: Responsible AI Dashboard: Egyablakos megoldás a felelősségteljes AI gyakorlati alkalmazásához, előadók: Besmira Nushi és Mehrnoosh Sameki
+
+Használd az alábbi anyagokat, hogy többet megtudj a felelősségteljes AI-ról és arról, hogyan építhetsz megbízhatóbb modelleket:
+
+- Microsoft RAI dashboard eszközei ML modellek hibakereséséhez: [Responsible AI tools resources](https://aka.ms/rai-dashboard)
+
+- Fedezd fel a Responsible AI eszköztárat: [Github](https://github.com/microsoft/responsible-ai-toolbox)
+
+- Microsoft RAI erőforrásközpontja: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Microsoft FATE kutatócsoportja: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+## Feladat
+
+[Ismerd meg az RAI dashboardot](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
diff --git a/translations/hu/9-Real-World/2-Debugging-ML-Models/assignment.md b/translations/hu/9-Real-World/2-Debugging-ML-Models/assignment.md
new file mode 100644
index 00000000..e392ef3b
--- /dev/null
+++ b/translations/hu/9-Real-World/2-Debugging-ML-Models/assignment.md
@@ -0,0 +1,25 @@
+
+# Fedezd fel a Responsible AI (RAI) dashboardot
+
+## Útmutató
+
+Ebben a leckében megismerkedtél a RAI dashboarddal, amely egy "nyílt forráskódú" eszközökre épülő komponenscsomag, amely segíti az adatkutatókat hibaanalízis, adatfeltárás, méltányossági értékelés, modellérthetőség, ellenpélda/mi lenne ha értékelések és ok-okozati elemzések elvégzésében AI rendszereken. Ehhez a feladathoz fedezd fel a RAI dashboard néhány mintapéldáját [notebookok](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) formájában, és számolj be az eredményeidről egy dolgozatban vagy prezentációban.
+
+## Értékelési szempontok
+
+| Kritérium | Kiemelkedő | Megfelelő | Fejlesztésre szorul |
+| --------- | ---------- | --------- | ------------------- |
+| | Egy dolgozat vagy PowerPoint prezentáció bemutatja a RAI dashboard komponenseit, a futtatott notebookot és az abból levont következtetéseket | Egy dolgozat bemutatásra kerül, de következtetések nélkül | Nem kerül bemutatásra dolgozat |
+
+---
+
+**Felelősség kizárása**:
+Ez 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 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
diff --git a/translations/hu/9-Real-World/README.md b/translations/hu/9-Real-World/README.md
new file mode 100644
index 00000000..626c6ac2
--- /dev/null
+++ b/translations/hu/9-Real-World/README.md
@@ -0,0 +1,32 @@
+
+# Utószó: Klasszikus gépi tanulás valós alkalmazásai
+
+A tananyag ezen részében megismerkedhetsz a klasszikus gépi tanulás néhány valós alkalmazásával. Az internetet átkutatva olyan tanulmányokat és cikkeket gyűjtöttünk össze, amelyek ezekkel a stratégiákkal dolgoztak, miközben a neurális hálózatokat, mélytanulást és mesterséges intelligenciát a lehető legnagyobb mértékben elkerülték. Ismerd meg, hogyan használják a gépi tanulást üzleti rendszerekben, ökológiai alkalmazásokban, pénzügyekben, művészetekben és kultúrában, valamint sok más területen.
+
+
+
+> Fotó: Alexis Fauvet az Unsplash oldalán
+
+## Lecke
+
+1. [Gépi tanulás valós alkalmazásai](1-Applications/README.md)
+2. [Modellek hibakeresése gépi tanulásban a Responsible AI dashboard komponenseivel](2-Debugging-ML-Models/README.md)
+
+## Köszönetnyilvánítás
+
+A "Gépi tanulás valós alkalmazásai" című anyagot egy csapat írta, amelynek tagjai többek között [Jen Looper](https://twitter.com/jenlooper) és [Ornella Altunyan](https://twitter.com/ornelladotcom).
+
+A "Modellek hibakeresése gépi tanulásban a Responsible AI dashboard komponenseivel" című anyagot [Ruth Yakubu](https://twitter.com/ruthieyakubu) írta.
+
+---
+
+**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
diff --git a/translations/hu/CODE_OF_CONDUCT.md b/translations/hu/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..a5706c8e
--- /dev/null
+++ b/translations/hu/CODE_OF_CONDUCT.md
@@ -0,0 +1,23 @@
+
+# Microsoft Nyílt Forráskódú Magatartási Kódex
+
+Ez a projekt a [Microsoft Nyílt Forráskódú Magatartási Kódexet](https://opensource.microsoft.com/codeofconduct/) alkalmazza.
+
+Források:
+
+- [Microsoft Nyílt Forráskódú Magatartási Kódex](https://opensource.microsoft.com/codeofconduct/)
+- [Microsoft Magatartási Kódex GYIK](https://opensource.microsoft.com/codeofconduct/faq/)
+- Kérdések vagy aggályok esetén lépjen kapcsolatba a [opencode@microsoft.com](mailto:opencode@microsoft.com) címen
+
+---
+
+**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
diff --git a/translations/hu/CONTRIBUTING.md b/translations/hu/CONTRIBUTING.md
new file mode 100644
index 00000000..1af0741f
--- /dev/null
+++ b/translations/hu/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+
+# Hozzájárulás
+
+Ez a projekt örömmel fogadja a hozzájárulásokat és javaslatokat. A legtöbb hozzájárulás esetében szükséges, hogy elfogadjon egy Hozzájárulói Licencmegállapodást (CLA), amelyben kijelenti, hogy joga van, és ténylegesen megadja nekünk a jogot, hogy felhasználjuk a hozzájárulását. További részletekért látogasson el a https://cla.microsoft.com oldalra.
+
+> Fontos: amikor szöveget fordít ebben a repóban, kérjük, ügyeljen arra, hogy ne használjon gépi fordítást. A fordításokat a közösség ellenőrzi, ezért csak olyan nyelveken vállaljon fordítást, amelyeken jártas.
+
+Amikor benyújt egy pull requestet, egy CLA-bot automatikusan meghatározza, hogy szükséges-e CLA-t biztosítania, és ennek megfelelően megjelöli a PR-t (pl. címke, megjegyzés). Egyszerűen kövesse a bot által megadott utasításokat. Ezt csak egyszer kell megtennie az összes CLA-t használó repó esetében.
+
+Ez a projekt a [Microsoft Nyílt Forráskódú Magatartási Kódexét](https://opensource.microsoft.com/codeofconduct/) alkalmazza. További információért tekintse meg a [Magatartási Kódex GYIK](https://opensource.microsoft.com/codeofconduct/faq/) oldalt, vagy lépjen kapcsolatba a [opencode@microsoft.com](mailto:opencode@microsoft.com) címen bármilyen további kérdéssel vagy megjegyzéssel.
+
+---
+
+**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
diff --git a/translations/hu/README.md b/translations/hu/README.md
new file mode 100644
index 00000000..dd0afa56
--- /dev/null
+++ b/translations/hu/README.md
@@ -0,0 +1,178 @@
+
+[](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
+[](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
+[](http://makeapullrequest.com)
+
+[](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/network/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
+
+### 🌐 Többnyelvű támogatás
+
+#### Támogatott GitHub Action által (Automatikus és mindig naprakész)
+
+[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](./README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
+
+#### Csatlakozz a közösséghez
+
+[](https://discord.gg/kzRShWzttr)
+
+# Gépi tanulás kezdőknek - Tananyag
+
+> 🌍 Utazz körbe a világon, miközben a gépi tanulást különböző kultúrákon keresztül fedezzük fel 🌍
+
+A Microsoft Cloud Advocates csapata örömmel kínál egy 12 hetes, 26 leckéből álló tananyagot a **gépi tanulásról**. Ebben a tananyagban megismerheted az úgynevezett **klasszikus gépi tanulást**, elsősorban a Scikit-learn könyvtár használatával, elkerülve a mély tanulást, amelyet a [AI for Beginners tananyagunkban](https://aka.ms/ai4beginners) tárgyalunk. Párosítsd ezeket a leckéket a ['Data Science for Beginners' tananyagunkkal](https://aka.ms/ds4beginners) is!
+
+Utazz velünk a világ körül, miközben ezeket a klasszikus technikákat alkalmazzuk különböző régiók adataira. Minden lecke tartalmaz előzetes és utólagos kvízeket, írásos útmutatót a lecke elvégzéséhez, megoldást, feladatot és még sok mást. Projektalapú pedagógiai megközelítésünk lehetővé teszi, hogy tanulás közben építs, ami bizonyítottan segíti az új készségek elsajátítását.
+
+**✍️ Köszönet szerzőinknek** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu és Amy Boyd
+
+**🎨 Köszönet illusztrátorainknak** Tomomi Imura, Dasani Madipalli és Jen Looper
+
+**🙏 Külön köszönet 🙏 a Microsoft Student Ambassador szerzőknek, bírálóknak és tartalomhozzájárulóknak**, különösen Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila és Snigdha Agarwal
+
+**🤩 Extra köszönet a Microsoft Student Ambassadoroknak Eric Wanjau, Jasleen Sondhi és Vidushi Gupta az R leckékért!**
+
+# Kezdés
+
+Kövesd az alábbi lépéseket:
+1. **Forkold a repót**: Kattints az oldal jobb felső sarkában található "Fork" gombra.
+2. **Klónozd a repót**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
+
+> [találd meg a kurzushoz kapcsolódó további forrásokat a Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+**[Diákok](https://aka.ms/student-page)**, hogy használjátok ezt a tananyagot, forkold az egész repót a saját GitHub fiókodba, és végezd el a gyakorlatokat egyedül vagy csoportban:
+
+- Kezdd egy előzetes kvízzel.
+- Olvasd el a leckét, és végezd el a tevékenységeket, megállva és reflektálva minden tudásellenőrzésnél.
+- Próbáld meg létrehozni a projekteket a leckék megértésével, ahelyett hogy a megoldás kódját futtatnád; bár a kód elérhető a `/solution` mappákban minden projektalapú leckénél.
+- Töltsd ki az utólagos kvízt.
+- Teljesítsd a kihívást.
+- Teljesítsd a feladatot.
+- Miután befejeztél egy leckecsoportot, látogasd meg a [Vita fórumot](https://github.com/microsoft/ML-For-Beginners/discussions), és "tanulj hangosan" azzal, hogy kitöltöd a megfelelő PAT rubrikát. A 'PAT' egy Haladás Értékelési Eszköz, amely egy rubrika, amit kitöltesz a tanulásod elősegítése érdekében. Mások PAT-jaira is reagálhatsz, hogy együtt tanuljunk.
+
+> További tanulmányokhoz ajánljuk, hogy kövesd ezeket a [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulokat és tanulási útvonalakat.
+
+**Tanárok**, [néhány javaslatot is mellékeltünk](for-teachers.md) arra vonatkozóan, hogyan használjátok ezt a tananyagot.
+
+---
+
+## Videós bemutatók
+
+Néhány lecke rövid videó formájában is elérhető. Ezeket megtalálhatod a leckékben, vagy a [ML for Beginners lejátszási listán a Microsoft Developer YouTube csatornán](https://aka.ms/ml-beginners-videos), ha az alábbi képre kattintasz.
+
+[](https://aka.ms/ml-beginners-videos)
+
+---
+
+## Ismerd meg a csapatot
+
+[](https://youtu.be/Tj1XWrDSYJU)
+
+**Gif készítette** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
+
+> 🎥 Kattints a fenti képre, hogy megnézd a projektet és az alkotókat bemutató videót!
+
+---
+
+## Pedagógia
+
+Két pedagógiai elvet választottunk a tananyag összeállításakor: biztosítani, hogy **projektalapú** legyen, és hogy **gyakori kvízeket** tartalmazzon. Emellett a tananyagnak van egy közös **témája**, amely összefogja az anyagot.
+
+Azáltal, hogy a tartalom projektekhez kapcsolódik, a folyamat érdekesebbé válik a diákok számára, és a fogalmak jobban rögzülnek. Emellett egy alacsony tétű kvíz az óra előtt a diákot a téma tanulására irányítja, míg egy második kvíz az óra után tovább erősíti a tanultakat. Ez a tananyag rugalmas és szórakoztató, és egészében vagy részleteiben is elvégezhető. A projektek kicsiben kezdődnek, és a 12 hetes ciklus végére egyre összetettebbé válnak. A tananyag tartalmaz egy utószót is a gépi tanulás valós alkalmazásairól, amelyet extra kreditként vagy vitaalapként lehet használni.
+
+> Találd meg a [Magatartási kódexünket](CODE_OF_CONDUCT.md), [Hozzájárulási](CONTRIBUTING.md) és [Fordítási](TRANSLATIONS.md) irányelveinket. Örömmel fogadjuk az építő jellegű visszajelzéseidet!
+
+## Minden lecke tartalmaz
+
+- opcionális sketchnote
+- opcionális kiegészítő videó
+- videós bemutató (csak néhány leckénél)
+- [előzetes kvíz](https://ff-quizzes.netlify.app/en/ml/)
+- írásos lecke
+- projektalapú leckéknél lépésről lépésre útmutató a projekt elkészítéséhez
+- tudásellenőrzések
+- kihívás
+- kiegészítő olvasmány
+- feladat
+- [utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+
+> **Megjegyzés a nyelvekről**: Ezek a leckék elsősorban Python nyelven íródtak, de sok elérhető R nyelven is. Az R leckék elvégzéséhez menj a `/solution` mappába, és keresd az R leckéket. Ezek `.rmd` kiterjesztést tartalmaznak, amely egy **R Markdown** fájlt jelöl, amely egyszerűen definiálható úgy, mint `kódrészletek` (R vagy más nyelvek) és egy `YAML fejléc` (amely irányítja az outputok formázását, például PDF) beágyazása egy `Markdown dokumentumba`. Ezáltal kiváló szerzői keretet biztosít az adatkutatáshoz, mivel lehetővé teszi, hogy kombináld a kódodat, annak eredményét és a gondolataidat, azáltal hogy Markdownban leírod őket. Továbbá, az R Markdown dokumentumok olyan output formátumokra renderelhetők, mint PDF, HTML vagy Word.
+
+> **Megjegyzés a kvízekről**: Minden kvíz a [Quiz App mappában](../../quiz-app) található, összesen 52 darab három kérdéses kvízzel. Ezek a leckékből vannak linkelve, de a kvíz alkalmazás helyileg is futtatható; kövesd az utasításokat a `quiz-app` mappában, hogy helyileg futtasd vagy Azure-ra telepítsd.
+
+| Lecke száma | Téma | Leckecsoport | Tanulási célok | Kapcsolódó lecke | Szerző |
+| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
+| 01 | Bevezetés a gépi tanulásba | [Bevezetés](1-Introduction/README.md) | Ismerd meg a gépi tanulás alapfogalmait | [Lecke](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
+| 02 | A gépi tanulás története | [Bevezetés](1-Introduction/README.md) | Ismerd meg a terület történetét | [Lecke](1-Introduction/2-history-of-ML/README.md) | Jen és Amy |
+| 03 | Méltányosság és gépi tanulás | [Bevezetés](1-Introduction/README.md) | Milyen fontos filozófiai kérdéseket kell figyelembe venni a méltányosság kapcsán, amikor ML modelleket építünk és alkalmazunk? | [Lecke](1-Introduction/3-fairness/README.md) | Tomomi |
+| 04 | Gépi tanulási technikák | [Bevezetés](1-Introduction/README.md) | Milyen technikákat használnak a gépi tanulás kutatói modellek építéséhez? | [Lecke](1-Introduction/4-techniques-of-ML/README.md) | Chris és Jen |
+| 05 | Bevezetés a regresszióba | [Regresszió](2-Regression/README.md) | Ismerkedj meg a Python és Scikit-learn használatával regressziós modellekhez |
+
|
+| 09 | Egy webalkalmazás 🔌 | [Webalkalmazás](3-Web-App/README.md) | Építs egy webalkalmazást a betanított modelled használatához | [Python](3-Web-App/1-Web-App/README.md) | Jen |
+| 10 | Bevezetés az osztályozásba | [Osztályozás](4-Classification/README.md) | Adatok tisztítása, előkészítése és vizualizálása; bevezetés az osztályozásba |
|
+| 13 | Finom ázsiai és indiai ételek 🍜 | [Osztályozás](4-Classification/README.md) | Ajánló webalkalmazás építése a modelled használatával | [Python](4-Classification/4-Applied/README.md) | Jen |
+| 14 | Bevezetés a klaszterezésbe | [Klaszterezés](5-Clustering/README.md) | Adatok tisztítása, előkészítése és vizualizálása; bevezetés a klaszterezésbe |
|
+| 16 | Bevezetés a természetes nyelvfeldolgozásba ☕️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Ismerd meg az NLP alapjait egy egyszerű bot építésével | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
+| 17 | Gyakori NLP feladatok ☕️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Mélyítsd el az NLP tudásodat, megértve a nyelvi struktúrákkal kapcsolatos gyakori feladatokat | [Python](6-NLP/2-Tasks/README.md) | Stephen |
+| 18 | Fordítás és érzelemelemzés ♥️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Fordítás és érzelemelemzés Jane Austen műveivel | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
+| 19 | Romantikus európai hotelek ♥️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Érzelemelemzés hotelértékelésekkel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
+| 20 | Romantikus európai hotelek ♥️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Érzelemelemzés hotelértékelésekkel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
+| 21 | Bevezetés az időbeli előrejelzésbe | [Idősorok](7-TimeSeries/README.md) | Bevezetés az időbeli előrejelzésbe | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
+| 22 | ⚡️ Világ energiafelhasználása ⚡️ - időbeli előrejelzés ARIMA-val | [Idősorok](7-TimeSeries/README.md) | Idősorok előrejelzése ARIMA-val | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
+| 23 | ⚡️ Világ energiafelhasználása ⚡️ - időbeli előrejelzés SVR-rel | [Idősorok](7-TimeSeries/README.md) | Idősorok előrejelzése Support Vector Regressorral | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
+| 24 | Bevezetés a megerősítéses tanulásba | [Megerősítéses tanulás](8-Reinforcement/README.md) | Bevezetés a megerősítéses tanulásba Q-Learning segítségével | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
+| 25 | Segíts Péternek elkerülni a farkast! 🐺 | [Megerősítéses tanulás](8-Reinforcement/README.md) | Megerősítéses tanulás Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
+| Utószó | Valós gépi tanulási forgatókönyvek és alkalmazások | [ML a gyakorlatban](9-Real-World/README.md) | Érdekes és tanulságos valós alkalmazások a klasszikus gépi tanulás területén | [Lecke](9-Real-World/1-Applications/README.md) | Csapat |
+| Utószó | Modell hibakeresés gépi tanulásban RAI dashboarddal | [ML a gyakorlatban](9-Real-World/README.md) | Modell hibakeresés gépi tanulásban a Responsible AI dashboard komponenseivel | [Lecke](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
+
+> [találd meg a kurzus további forrásait a Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+## Offline hozzáférés
+
+A dokumentációt offline is futtathatod a [Docsify](https://docsify.js.org/#/) használatával. Forkold ezt a repót, [telepítsd a Docsify-t](https://docsify.js.org/#/quickstart) a helyi gépedre, majd a repó gyökérmappájában írd be: `docsify serve`. A weboldal a localhost 3000-es portján lesz elérhető: `localhost:3000`.
+
+## PDF-ek
+
+A tananyag PDF változatát linkekkel [itt találod](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
+
+
+## 🎒 Egyéb kurzusok
+
+Csapatunk más kurzusokat is készít! Nézd meg:
+
+- [Generatív AI kezdőknek](https://aka.ms/genai-beginners)
+- [Generatív AI kezdőknek .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
+- [Generatív AI JavaScripttel](https://github.com/microsoft/generative-ai-with-javascript)
+- [Generatív AI Java-val](https://github.com/microsoft/Generative-AI-for-beginners-java)
+- [AI kezdőknek](https://aka.ms/ai-beginners)
+- [Adattudomány kezdőknek](https://aka.ms/datascience-beginners)
+- [ML kezdőknek](https://aka.ms/ml-beginners)
+- [Kiberbiztonság kezdőknek](https://github.com/microsoft/Security-101)
+- [Webfejlesztés kezdőknek](https://aka.ms/webdev-beginners)
+- [IoT kezdőknek](https://aka.ms/iot-beginners)
+- [XR fejlesztés kezdőknek](https://github.com/microsoft/xr-development-for-beginners)
+- [GitHub Copilot elsajátítása páros programozáshoz](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
+- [GitHub Copilot elsajátítása C#/.NET fejlesztőknek](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
+- [Válaszd ki a saját Copilot kalandodat](https://github.com/microsoft/CopilotAdventures)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/SECURITY.md b/translations/hu/SECURITY.md
new file mode 100644
index 00000000..e56d4d1e
--- /dev/null
+++ b/translations/hu/SECURITY.md
@@ -0,0 +1,51 @@
+
+## Biztonság
+
+A Microsoft komolyan veszi szoftvertermékei és szolgáltatásai biztonságát, beleértve az összes forráskód-tárházat, amelyeket GitHub szervezeteinken keresztül kezelünk, mint például [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin) és [GitHub szervezeteink](https://opensource.microsoft.com/).
+
+Ha úgy gondolja, hogy biztonsági sebezhetőséget talált bármely Microsoft tulajdonában lévő tárházban, amely megfelel [a Microsoft biztonsági sebezhetőség definíciójának](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)?WT.mc_id=academic-77952-leestott), kérjük, jelentse nekünk az alábbiakban leírt módon.
+
+## Biztonsági problémák jelentése
+
+**Kérjük, ne jelentsen biztonsági sebezhetőségeket nyilvános GitHub problémákon keresztül.**
+
+Ehelyett jelentse őket a Microsoft Security Response Center (MSRC) oldalán: [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
+
+Ha inkább bejelentkezés nélkül szeretne jelentést tenni, küldjön e-mailt a [secure@microsoft.com](mailto:secure@microsoft.com) címre. Ha lehetséges, titkosítsa üzenetét PGP kulcsunkkal; töltse le azt a [Microsoft Security Response Center PGP Key oldaláról](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
+
+24 órán belül választ kell kapnia. Ha valamilyen okból nem kap választ, kérjük, kövesse nyomon e-mailben, hogy megbizonyosodjon arról, hogy megkaptuk az eredeti üzenetét. További információkért látogasson el a [microsoft.com/msrc](https://www.microsoft.com/msrc) oldalra.
+
+Kérjük, hogy az alábbiakban felsorolt kért információkat (amennyit csak tud) adja meg, hogy jobban megértsük a lehetséges probléma természetét és terjedelmét:
+
+ * A probléma típusa (pl. puffer túlcsordulás, SQL injekció, cross-site scripting stb.)
+ * Az érintett forrásfájl(ok) teljes elérési útja
+ * Az érintett forráskód helye (tag/ág/commit vagy közvetlen URL)
+ * Bármilyen speciális konfiguráció, amely szükséges a probléma reprodukálásához
+ * Lépésről lépésre bemutatott utasítások a probléma reprodukálásához
+ * Proof-of-concept vagy exploit kód (ha lehetséges)
+ * A probléma hatása, beleértve azt, hogy egy támadó hogyan használhatná ki a problémát
+
+Ez az információ segít gyorsabban feldolgozni a jelentését.
+
+Ha hibajutalomért jelent, a részletesebb jelentések hozzájárulhatnak magasabb jutalomhoz. Kérjük, látogasson el a [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) oldalára, ahol további információkat talál az aktív programjainkról.
+
+## Előnyben részesített nyelvek
+
+Előnyben részesítjük, ha minden kommunikáció angol nyelven történik.
+
+## Irányelv
+
+A Microsoft a [Koordinált sebezhetőség közzététel](https://www.microsoft.com/en-us/msrc/cvd) elvét követi.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/SUPPORT.md b/translations/hu/SUPPORT.md
new file mode 100644
index 00000000..b4890f27
--- /dev/null
+++ b/translations/hu/SUPPORT.md
@@ -0,0 +1,24 @@
+
+# Támogatás
+## Hogyan lehet hibákat jelenteni és segítséget kérni
+
+Ez a projekt a GitHub Issues-t használja a hibák és funkciókérések nyomon követésére. Kérjük, keresse meg a meglévő hibákat, mielőtt újakat jelentene, hogy elkerülje a duplikációkat. Új hibák esetén jelentse a hibát vagy funkciókérést új Issue-ként.
+
+Ha segítségre van szüksége, vagy kérdése van a projekt használatával kapcsolatban, nyújtson be egy Issue-t.
+
+## Microsoft Támogatási Irányelv
+
+Ennek a tárolónak a támogatása az itt felsorolt erőforrásokra korlátozódik.
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/docs/_sidebar.md b/translations/hu/docs/_sidebar.md
new file mode 100644
index 00000000..981ad9e7
--- /dev/null
+++ b/translations/hu/docs/_sidebar.md
@@ -0,0 +1,57 @@
+
+- Bevezetés
+ - [Bevezetés a gépi tanulásba](../1-Introduction/1-intro-to-ML/README.md)
+ - [A gépi tanulás története](../1-Introduction/2-history-of-ML/README.md)
+ - [Gépi tanulás és méltányosság](../1-Introduction/3-fairness/README.md)
+ - [A gépi tanulás technikái](../1-Introduction/4-techniques-of-ML/README.md)
+
+- Regresszió
+ - [A szakma eszközei](../2-Regression/1-Tools/README.md)
+ - [Adatok](../2-Regression/2-Data/README.md)
+ - [Lineáris regresszió](../2-Regression/3-Linear/README.md)
+ - [Logisztikus regresszió](../2-Regression/4-Logistic/README.md)
+
+- Webalkalmazás készítése
+ - [Webalkalmazás](../3-Web-App/1-Web-App/README.md)
+
+- Osztályozás
+ - [Bevezetés az osztályozásba](../4-Classification/1-Introduction/README.md)
+ - [Osztályozók 1](../4-Classification/2-Classifiers-1/README.md)
+ - [Osztályozók 2](../4-Classification/3-Classifiers-2/README.md)
+ - [Alkalmazott gépi tanulás](../4-Classification/4-Applied/README.md)
+
+- Klaszterezés
+ - [Adatok vizualizálása](../5-Clustering/1-Visualize/README.md)
+ - [K-Means](../5-Clustering/2-K-Means/README.md)
+
+- NLP
+ - [Bevezetés az NLP-be](../6-NLP/1-Introduction-to-NLP/README.md)
+ - [NLP feladatok](../6-NLP/2-Tasks/README.md)
+ - [Fordítás és érzelemelemzés](../6-NLP/3-Translation-Sentiment/README.md)
+ - [Hotel vélemények 1](../6-NLP/4-Hotel-Reviews-1/README.md)
+ - [Hotel vélemények 2](../6-NLP/5-Hotel-Reviews-2/README.md)
+
+- Idősoros előrejelzés
+ - [Bevezetés az idősoros előrejelzésbe](../7-TimeSeries/1-Introduction/README.md)
+ - [ARIMA](../7-TimeSeries/2-ARIMA/README.md)
+ - [SVR](../7-TimeSeries/3-SVR/README.md)
+
+- Megerősítéses tanulás
+ - [Q-Learning](../8-Reinforcement/1-QLearning/README.md)
+ - [Gym](../8-Reinforcement/2-Gym/README.md)
+
+- Gépi tanulás a való életben
+ - [Alkalmazások](../9-Real-World/1-Applications/README.md)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/for-teachers.md b/translations/hu/for-teachers.md
new file mode 100644
index 00000000..ed7f42c1
--- /dev/null
+++ b/translations/hu/for-teachers.md
@@ -0,0 +1,37 @@
+
+## Oktatóknak
+
+Szeretné használni ezt a tananyagot az osztályában? Nyugodtan tegye meg!
+
+Valójában a GitHub segítségével is használhatja, a GitHub Classroom funkcióval.
+
+Ehhez forkolja ezt a repót. Minden egyes leckéhez létre kell hoznia egy külön repót, tehát ki kell emelnie minden mappát egy külön repóba. Így a [GitHub Classroom](https://classroom.github.com/classrooms) külön-külön tudja kezelni az egyes leckéket.
+
+Ezek az [részletes útmutatók](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) segítenek abban, hogyan állítsa be az osztálytermet.
+
+## A repó használata jelenlegi formájában
+
+Ha szeretné a repót úgy használni, ahogy most van, GitHub Classroom nélkül, az is lehetséges. Ebben az esetben kommunikálnia kell a diákokkal, hogy melyik leckén dolgozzanak együtt.
+
+Online formátumban (Zoom, Teams vagy más platform) létrehozhat kisebb csoportokat a kvízekhez, és mentorálhatja a diákokat, hogy felkészüljenek a tanulásra. Ezután meghívhatja őket a kvízekre, és arra kérheti őket, hogy 'issues' formájában adják be válaszaikat egy meghatározott időpontban. Ugyanezt teheti a feladatokkal is, ha azt szeretné, hogy a diákok nyíltan, együttműködve dolgozzanak.
+
+Ha inkább privát formátumot szeretne, kérje meg a diákokat, hogy forkolják a tananyagot, leckéről leckére, saját privát GitHub repóikba, és adjanak Önnek hozzáférést. Így a kvízeket és feladatokat privát módon tudják elvégezni, és az Ön osztálytermi repóján keresztül issues formájában tudják benyújtani.
+
+Számos módja van annak, hogy ez működjön egy online osztálytermi formátumban. Kérjük, ossza meg velünk, hogy Önnek mi válik be a legjobban!
+
+## Kérjük, ossza meg velünk a véleményét!
+
+Szeretnénk, hogy ez a tananyag az Ön és diákjai számára is jól működjön. Kérjük, ossza meg velünk [visszajelzését](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u).
+
+---
+
+**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. Fontos 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
diff --git a/translations/hu/quiz-app/README.md b/translations/hu/quiz-app/README.md
new file mode 100644
index 00000000..feb13a61
--- /dev/null
+++ b/translations/hu/quiz-app/README.md
@@ -0,0 +1,127 @@
+
+# Kvízek
+
+Ezek a kvízek az ML tananyag előtti és utáni kvízei a https://aka.ms/ml-beginners oldalon.
+
+## Projekt beállítása
+
+```
+npm install
+```
+
+### Fejlesztéshez való fordítás és gyors újratöltés
+
+```
+npm run serve
+```
+
+### Fordítás és minimalizálás produkciós környezethez
+
+```
+npm run build
+```
+
+### Fájlok ellenőrzése és javítása
+
+```
+npm run lint
+```
+
+### Konfiguráció testreszabása
+
+Lásd [Konfigurációs Referencia](https://cli.vuejs.org/config/).
+
+Köszönet: Köszönet az eredeti kvíz alkalmazás verziójáért: https://github.com/arpan45/simple-quiz-vue
+
+## Azure-ra történő telepítés
+
+Íme egy lépésről lépésre útmutató, hogy elkezdhesd:
+
+1. Forkolj egy GitHub repozitóriumot
+Győződj meg róla, hogy a statikus webalkalmazásod kódja a GitHub repozitóriumodban van. Forkold ezt a repozitóriumot.
+
+2. Hozz létre egy Azure Statikus Webalkalmazást
+- Hozz létre egy [Azure fiókot](http://azure.microsoft.com)
+- Lépj be az [Azure portálra](https://portal.azure.com)
+- Kattints a „Create a resource” gombra, és keress rá a „Static Web App”-ra.
+- Kattints a „Create” gombra.
+
+3. Konfiguráld a Statikus Webalkalmazást
+- Alapok:
+ - Előfizetés: Válaszd ki az Azure előfizetésedet.
+ - Erőforráscsoport: Hozz létre egy új erőforráscsoportot, vagy használj egy meglévőt.
+ - Név: Adj nevet a statikus webalkalmazásodnak.
+ - Régió: Válaszd ki a felhasználóidhoz legközelebbi régiót.
+
+- #### Telepítési részletek:
+ - Forrás: Válaszd a „GitHub”-ot.
+ - GitHub fiók: Engedélyezd az Azure számára, hogy hozzáférjen a GitHub fiókodhoz.
+ - Szervezet: Válaszd ki a GitHub szervezetedet.
+ - Repozitórium: Válaszd ki azt a repozitóriumot, amely tartalmazza a statikus webalkalmazásodat.
+ - Ág: Válaszd ki azt az ágat, amelyből telepíteni szeretnél.
+
+- #### Build részletek:
+ - Build előbeállítások: Válaszd ki azt a keretrendszert, amelyre az alkalmazásod épül (pl. React, Angular, Vue stb.).
+ - Alkalmazás helye: Add meg azt a mappát, amely tartalmazza az alkalmazásod kódját (pl. / ha a gyökérben van).
+ - API helye: Ha van API-d, add meg annak helyét (opcionális).
+ - Kimeneti hely: Add meg azt a mappát, ahol a build kimenet generálódik (pl. build vagy dist).
+
+4. Áttekintés és létrehozás
+Tekintsd át a beállításaidat, majd kattints a „Create” gombra. Az Azure létrehozza a szükséges erőforrásokat, és létrehoz egy GitHub Actions munkafolyamatot a repozitóriumodban.
+
+5. GitHub Actions munkafolyamat
+Az Azure automatikusan létrehoz egy GitHub Actions munkafolyamat fájlt a repozitóriumodban (.github/workflows/azure-static-web-apps-.yml). Ez a munkafolyamat kezeli a build és telepítési folyamatot.
+
+6. A telepítés nyomon követése
+Lépj a GitHub repozitóriumod „Actions” fülére.
+Látnod kell egy futó munkafolyamatot. Ez a munkafolyamat felépíti és telepíti a statikus webalkalmazásodat az Azure-ra.
+Amint a munkafolyamat befejeződik, az alkalmazásod élő lesz az Azure által biztosított URL-en.
+
+### Példa munkafolyamat fájl
+
+Íme, hogyan nézhet ki egy GitHub Actions munkafolyamat fájl:
+name: Azure Static Web Apps CI/CD
+```
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ types: [opened, synchronize, reopened, closed]
+ branches:
+ - main
+
+jobs:
+ build_and_deploy_job:
+ runs-on: ubuntu-latest
+ name: Build and Deploy Job
+ steps:
+ - uses: actions/checkout@v2
+ - name: Build And Deploy
+ id: builddeploy
+ uses: Azure/static-web-apps-deploy@v1
+ with:
+ azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ action: "upload"
+ app_location: "/quiz-app" # App source code path
+ api_location: ""API source code path optional
+ output_location: "dist" #Built app content directory - optional
+```
+
+### További források
+- [Azure Statikus Webalkalmazások Dokumentáció](https://learn.microsoft.com/azure/static-web-apps/getting-started)
+- [GitHub Actions Dokumentáció](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/hu/sketchnotes/LICENSE.md b/translations/hu/sketchnotes/LICENSE.md
new file mode 100644
index 00000000..dcd4c2f1
--- /dev/null
+++ b/translations/hu/sketchnotes/LICENSE.md
@@ -0,0 +1,114 @@
+
+Attribution-ShareAlike 4.0 Nemzetközi
+
+=======================================================================
+
+A Creative Commons Corporation ("Creative Commons") nem ügyvédi iroda, és nem nyújt jogi szolgáltatásokat vagy jogi tanácsadást. A Creative Commons nyilvános licencének terjesztése nem hoz létre ügyvéd-ügyfél vagy más kapcsolatot. A Creative Commons licencét és kapcsolódó információit "ahogy van" alapon teszi elérhetővé. A Creative Commons nem vállal garanciát licencére, a licenc feltételei szerint engedélyezett anyagokra vagy bármely kapcsolódó információra vonatkozóan. A Creative Commons a lehető legteljesebb mértékben elhárít minden felelősséget az ezek használatából eredő károkért.
+
+Creative Commons nyilvános licencek használata
+
+A Creative Commons nyilvános licencek egy szabványos feltételrendszert biztosítanak, amelyet az alkotók és más jogtulajdonosok használhatnak szerzői jogvédelem alatt álló eredeti művek és más anyagok megosztására, valamint bizonyos jogokra, amelyeket az alábbi nyilvános licenc határoz meg. Az alábbi megfontolások csak tájékoztató jellegűek, nem kimerítőek, és nem képezik részét a licencünknek.
+
+ Megfontolások licencadók számára: Nyilvános licencünk azok számára készült, akik jogosultak engedélyt adni a nyilvánosságnak az anyagok olyan módon történő használatára, amelyet egyébként a szerzői jog és bizonyos más jogok korlátoznának. Licencünk visszavonhatatlan. A licencadóknak el kell olvasniuk és meg kell érteniük a választott licenc feltételeit, mielőtt alkalmaznák azt. A licencadóknak biztosítaniuk kell minden szükséges jogot, mielőtt alkalmaznák licencünket, hogy a nyilvánosság az elvárásoknak megfelelően újra felhasználhassa az anyagot. A licencadóknak egyértelműen meg kell jelölniük minden olyan anyagot, amely nem tartozik a licenc hatálya alá. Ez magában foglalja más CC-licencelt anyagokat, vagy olyan anyagokat, amelyek kivétel vagy korlátozás alá esnek a szerzői jogban. További megfontolások licencadók számára:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Megfontolások a nyilvánosság számára: A nyilvános licencünk használatával a licencadó engedélyt ad a nyilvánosságnak az engedélyezett anyag meghatározott feltételek és körülmények szerinti használatára. Ha a licencadó engedélye valamilyen okból nem szükséges – például egy alkalmazandó kivétel vagy korlátozás miatt a szerzői jogban –, akkor az ilyen használatot nem szabályozza a licenc. Licencünk csak a szerzői jog és bizonyos más jogok alapján ad engedélyeket, amelyeket a licencadó jogosult megadni. Az engedélyezett anyag használata más okokból továbbra is korlátozott lehet, például azért, mert másoknak szerzői joguk vagy más jogaik vannak az anyagban. A licencadó különleges kéréseket tehet, például kérheti, hogy minden módosítást jelöljenek meg vagy írjanak le. Bár licencünk nem követeli meg ezeket, ajánlott tiszteletben tartani az ilyen kéréseket, ha ésszerűek. További megfontolások a nyilvánosság számára:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution-ShareAlike 4.0 Nemzetközi Nyilvános Licenc
+
+Az Engedélyezett Jogok (lent meghatározva) gyakorlásával Ön elfogadja és beleegyezik a Creative Commons Attribution-ShareAlike 4.0 Nemzetközi Nyilvános Licenc ("Nyilvános Licenc") feltételeibe. Amennyiben ez a Nyilvános Licenc szerződésként értelmezhető, az Engedélyezett Jogokat az Ön ezen feltételek elfogadásáért kapja, és a Licencadó az anyag elérhetővé tételével kapott előnyökért biztosítja Önnek ezeket a jogokat.
+
+1. szakasz – Fogalommeghatározások.
+
+ a. Adaptált Anyag olyan szerzői jog és hasonló jogok által védett anyag, amely az Engedélyezett Anyagból származik vagy arra épül, és amelyben az Engedélyezett Anyagot lefordítják, átalakítják, elrendezik, átalakítják vagy más módon módosítják oly módon, hogy az a Licencadó szerzői jog és hasonló jogok szerinti engedélyét igényli. E Nyilvános Licenc céljából, ha az Engedélyezett Anyag zenei mű, előadás vagy hangfelvétel, az Adaptált Anyag mindig létrejön, ha az Engedélyezett Anyagot időben szinkronizálják egy mozgóképpel.
+
+ b. Adapter Licenc az a licenc, amelyet Ön alkalmaz a szerzői jog és hasonló jogok alapján az Ön hozzájárulásaira az Adaptált Anyagban, e Nyilvános Licenc feltételeinek megfelelően.
+
+ c. BY-SA Kompatibilis Licenc olyan licenc, amelyet a creativecommons.org/compatiblelicenses oldalon sorolnak fel, és amelyet a Creative Commons lényegében e Nyilvános Licenc egyenértékűjének tekint.
+
+ d. Szerzői jog és hasonló jogok a szerzői jog és/vagy a szerzői joghoz szorosan kapcsolódó hasonló jogok, beleértve, de nem kizárólagosan, az előadói jogokat, sugárzási jogokat, hangfelvételi jogokat és az egyedi adatbázis-jogokat, függetlenül attól, hogy a jogokat hogyan címkézik vagy kategorizálják. E Nyilvános Licenc céljából azokat a jogokat, amelyeket a 2. szakasz (b)(1)-(2) határoz meg, nem tekintjük szerzői jog és hasonló jogoknak.
+
+ e. Hatékony Technológiai Intézkedések azok az intézkedések, amelyeket megfelelő hatóság hiányában nem lehet megkerülni a WIPO Szerzői Jogi Egyezmény 1996. december 20-án elfogadott 11. cikkének és/vagy hasonló nemzetközi megállapodásoknak megfelelő törvények alapján.
+
+ f. Kivételek és korlátozások olyan jogi fogalmak, mint a méltányos használat, méltányos kezelés és/vagy bármely más kivétel vagy korlátozás a szerzői jog és hasonló jogok alkalmazásában, amelyek az Ön Engedélyezett Anyag használatára vonatkoznak.
+
+ g. Licenc Elemei a Creative Commons Nyilvános Licenc nevében felsorolt licenc attribútumok. E Nyilvános Licenc Licenc Elemei az Attribution és a ShareAlike.
+
+ h. Engedélyezett Anyag az a művészeti vagy irodalmi alkotás, adatbázis vagy más anyag, amelyre a Licencadó alkalmazta e Nyilvános Licencet.
+
+ i. Engedélyezett Jogok azok a jogok, amelyeket Ön e Nyilvános Licenc feltételei szerint kap, és amelyek korlátozódnak az Ön Engedélyezett Anyag használatára vonatkozó szerzői jog és hasonló jogokra, amelyeket a Licencadó jogosult engedélyezni.
+
+ j. Licencadó az a személy(ek) vagy szervezet(ek), akik e Nyilvános Licenc alapján jogokat biztosítanak.
+
+ k. Megosztás az anyag nyilvánosság számára történő elérhetővé tétele bármilyen módon vagy folyamatban, amely engedélyt igényel az Engedélyezett Jogok alapján, például reprodukció, nyilvános megjelenítés, nyilvános előadás, terjesztés, közvetítés, kommunikáció vagy importálás, valamint az anyag nyilvánosság számára történő elérhetővé tétele oly módon, hogy a nyilvánosság tagjai egyénileg választott helyről és időben hozzáférhessenek az anyaghoz.
+
+ l. Egyedi Adatbázis-Jogok olyan jogok, amelyek nem szerzői jogból származnak, és amelyek az Európai Parlament és a Tanács 1996. március 11-i 96/9/EK irányelvéből erednek az adatbázisok jogi védelméről, módosítva és/vagy utódjogszabályokkal, valamint más lényegében egyenértékű jogok bárhol a világon.
+
+ m. Ön az a személy vagy szervezet, amely e Nyilvános Licenc alapján gyakorolja az Engedélyezett Jogokat. Az Önnek megfelelő jelentése van.
+Jogok, majd az adatbázis, amelyben Önnek Sui Generis Adatbázis Jogai vannak (de nem az egyes tartalmai), Adaptált Anyagnak minősül,
+
+beleértve a 3(b) szakasz céljait; és
+c. Be kell tartania a 3(a) szakasz feltételeit, ha megosztja az adatbázis teljes vagy jelentős részét.
+
+A félreértések elkerülése végett, ez a 4. szakasz kiegészíti és nem helyettesíti az Ön kötelezettségeit ezen Nyilvános Licenc alapján, ha a Licencelt Jogok más Szerzői Jogokat és Hasonló Jogokat is tartalmaznak.
+
+### 5. szakasz – Jótállás kizárása és felelősség korlátozása
+
+a. HACSAK A LICENCADÓ KÜLÖN NEM VÁLLALJA, AMENNYIBEN LEHETSÉGES, A LICENCADÓ AZ ENGEDÉLYEZETT ANYAGOT "AHOGY VAN" ÉS "AHOGY ELÉRHETŐ" FORMÁBAN BIZTOSÍTJA, ÉS SEMMILYEN KÉPVISELETET VAGY GARANCIÁT NEM VÁLLAL AZ ENGEDÉLYEZETT ANYAGGAL KAPCSOLATBAN, LEGYEN AZ KIFEJEZETT, HALLGATÓLAGOS, TÖRVÉNYI VAGY MÁS. EZ MAGÁBAN FOGLALJA, DE NEM KORLÁTOZÓDIK A TULAJDONJOGRA, ÉRTÉKESÍTHETŐSÉGRE, MEGHATÁROZOTT CÉLRA VALÓ ALKALMASSÁGRA, JOGSÉRTÉS HIÁNYÁRA, REJTETT VAGY MÁS HIBÁK HIÁNYÁRA, PONTOSSÁGRA, VAGY HIBÁK JELENLÉTÉRE VAGY HIÁNYÁRA, LEGYENEK AZOK ISMERTEK VAGY FELFEDEZHETŐEK. AHOL A GARANCIÁK KIZÁRÁSA NEM ENGEDÉLYEZETT TELJESEN VAGY RÉSZBEN, EZ A KIZÁRÁS ÖNRE NEM VONATKOZHAT.
+
+b. AMENNYIBEN LEHETSÉGES, A LICENCADÓ SEMMILYEN JOGI ELV ALAPJÁN (BELEÉRTVE, DE NEM KORLÁTOZVA A GONDATLANSÁGOT) VAGY MÁS MÓDON NEM FELEL ÖNNEK SEMMILYEN KÖZVETLEN, KÜLÖNLEGES, KÖZVETETT, VÉLETLENSZERŰ, KÖVETKEZMÉNYES, BÜNTETŐ, PÉLDAÉRTÉKŰ VAGY MÁS VESZTESÉGÉRT, KÖLTSÉGÉRT, KIADÁSÉRT VAGY KÁRÉRT, AMELY EZEN NYILVÁNOS LICENC VAGY AZ ENGEDÉLYEZETT ANYAG HASZNÁLATÁBÓL ERED, MÉG AKKOR IS, HA A LICENCADÓT TÁJÉKOZTATTÁK AZ ILYEN VESZTESÉGEK, KÖLTSÉGEK, KIADÁSOK VAGY KÁROK LEHETŐSÉGÉRŐL. AHOL A FELELŐSSÉG KORLÁTOZÁSA NEM ENGEDÉLYEZETT TELJESEN VAGY RÉSZBEN, EZ A KORLÁTOZÁS ÖNRE NEM VONATKOZHAT.
+
+c. A fent említett jótállás kizárása és felelősség korlátozása oly módon értelmezendő, hogy amennyiben lehetséges, a lehető legjobban megközelítse az abszolút kizárást és minden felelősség lemondását.
+
+### 6. szakasz – Időtartam és megszűnés
+
+a. Ez a Nyilvános Licenc a licencelt Szerzői Jogok és Hasonló Jogok időtartamára vonatkozik. Azonban, ha Ön nem tartja be ezt a Nyilvános Licencet, akkor az Ön jogai ezen Nyilvános Licenc alapján automatikusan megszűnnek.
+
+b. Ha az Ön joga az Engedélyezett Anyag használatára a 6(a) szakasz alapján megszűnt, az újra érvénybe lép:
+
+1. automatikusan attól a naptól kezdve, amikor a jogsértés orvoslásra kerül, feltéve, hogy az orvoslás az Ön által a jogsértés felfedezésétől számított 30 napon belül megtörténik; vagy
+2. a Licencadó kifejezett visszaállítása révén.
+
+A félreértések elkerülése végett, ez a 6(b) szakasz nem érinti a Licencadó jogát arra, hogy jogorvoslatot keressen az Ön ezen Nyilvános Licenc megsértése miatt.
+
+c. A félreértések elkerülése végett, a Licencadó az Engedélyezett Anyagot külön feltételek vagy kikötések alapján is kínálhatja, vagy bármikor leállíthatja az Engedélyezett Anyag terjesztését; azonban ez nem szünteti meg ezt a Nyilvános Licencet.
+
+d. Az 1., 5., 6., 7. és 8. szakaszok túlélnek ezen Nyilvános Licenc megszűnését.
+
+### 7. szakasz – Egyéb feltételek és kikötések
+
+a. A Licencadó nem köteles betartani semmilyen további vagy eltérő feltételt vagy kikötést, amelyet Ön közöl, hacsak kifejezetten nem egyezett bele.
+
+b. Az Engedélyezett Anyaggal kapcsolatos bármilyen megállapodás, megértés vagy egyezség, amelyet itt nem rögzítettek, különálló és független ezen Nyilvános Licenc feltételeitől és kikötéseitől.
+
+### 8. szakasz – Értelmezés
+
+a. A félreértések elkerülése végett, ez a Nyilvános Licenc nem csökkenti, korlátozza, szűkíti vagy szab feltételeket az Engedélyezett Anyag bármilyen olyan használatára, amely jogszerűen engedély nélkül is megvalósítható ezen Nyilvános Licenc alapján.
+
+b. Amennyiben lehetséges, ha ezen Nyilvános Licenc bármely rendelkezése végrehajthatatlannak minősül, automatikusan átalakításra kerül a minimális mértékben, hogy végrehajtható legyen. Ha a rendelkezés nem alakítható át, az elválik ezen Nyilvános Licenctől anélkül, hogy a fennmaradó feltételek és kikötések végrehajthatóságát befolyásolná.
+
+c. Ezen Nyilvános Licenc egyetlen feltétele vagy kikötése sem mondható le, és egyetlen nem teljesítés sem tekinthető elfogadottnak, hacsak a Licencadó kifejezetten bele nem egyezett.
+
+d. Semmi ezen Nyilvános Licencben nem korlátozza vagy értelmezhető úgy, hogy korlátozza vagy lemondjon bármilyen kiváltságról és mentességről, amely a Licencadóra vagy Önre vonatkozik, beleértve bármely joghatóság vagy hatóság jogi eljárásait.
+
+---
+
+A Creative Commons nem részese a nyilvános licenceinek. Ennek ellenére a Creative Commons dönthet úgy, hogy alkalmazza valamelyik nyilvános licencét az általa közzétett anyagra, és ezekben az esetekben "Licencadóként" tekintendő. A Creative Commons nyilvános licenceinek szövege a CC0 Nyilvános Domain Dedikáció keretében a nyilvános domainnek van szentelve. Kivéve azt a korlátozott célt, hogy jelezze, hogy az anyag megosztásra került egy Creative Commons nyilvános licenc alatt, vagy ahogy azt a Creative Commons irányelvei a creativecommons.org/policies oldalon engedélyezik, a Creative Commons nem engedélyezi a "Creative Commons" védjegy vagy bármely más védjegy vagy logó használatát előzetes írásos beleegyezése nélkül, beleértve, de nem kizárólagosan, a nyilvános licencek bármilyen jogosulatlan módosításával vagy bármely más megállapodással, megértéssel vagy egyezséggel kapcsolatban az engedélyezett anyag használatáról. A félreértések elkerülése végett, ez a bekezdés nem képezi részét a nyilvános licenceknek.
+
+A Creative Commons elérhető a creativecommons.org címen.
+
+---
+
+**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
diff --git a/translations/hu/sketchnotes/README.md b/translations/hu/sketchnotes/README.md
new file mode 100644
index 00000000..b9a9ce2e
--- /dev/null
+++ b/translations/hu/sketchnotes/README.md
@@ -0,0 +1,21 @@
+
+Az összes tananyaghoz tartozó sketchnote-ok innen letölthetők.
+
+🖨 Nyomtatáshoz, nagy felbontású TIFF verziók elérhetők ebben a repóban: [this repo](https://github.com/girliemac/a-picture-is-worth-a-1000-words/tree/main/ml/tiff).
+
+🎨 Készítette: [Tomomi Imura](https://github.com/girliemac) (Twitter: [@girlie_mac](https://twitter.com/girlie_mac))
+
+[](https://creativecommons.org/licenses/by-sa/4.0/)
+
+---
+
+**Felelősség kizárása**:
+Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális, emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/1-intro-to-ML/README.md b/translations/ro/1-Introduction/1-intro-to-ML/README.md
new file mode 100644
index 00000000..5f0d2d92
--- /dev/null
+++ b/translations/ro/1-Introduction/1-intro-to-ML/README.md
@@ -0,0 +1,159 @@
+
+# Introducere în învățarea automată
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/6mSx_KJxcHI "ML pentru începători - Introducere în Învățarea Automată pentru Începători")
+
+> 🎥 Click pe imaginea de mai sus pentru un scurt videoclip despre această lecție.
+
+Bine ai venit la acest curs despre învățarea automată clasică pentru începători! Indiferent dacă ești complet nou în acest subiect sau un practician experimentat în ML care dorește să își reîmprospăteze cunoștințele, suntem bucuroși să te avem alături! Ne dorim să creăm un punct de plecare prietenos pentru studiul tău în ML și am fi încântați să evaluăm, să răspundem și să integrăm [feedback-ul tău](https://github.com/microsoft/ML-For-Beginners/discussions).
+
+[](https://youtu.be/h0e2HAPTGF4 "Introducere în ML")
+
+> 🎥 Click pe imaginea de mai sus pentru un videoclip: John Guttag de la MIT introduce învățarea automată
+
+---
+## Începerea cu învățarea automată
+
+Înainte de a începe acest curriculum, trebuie să îți configurezi computerul pentru a putea rula notebook-uri local.
+
+- **Configurează-ți dispozitivul cu aceste videoclipuri**. Folosește următoarele linkuri pentru a învăța [cum să instalezi Python](https://youtu.be/CXZYvNRIAKM) pe sistemul tău și [cum să configurezi un editor de text](https://youtu.be/EU8eayHWoZg) pentru dezvoltare.
+- **Învață Python**. Este recomandat să ai o înțelegere de bază a [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), un limbaj de programare util pentru oamenii de știință în domeniul datelor pe care îl folosim în acest curs.
+- **Învață Node.js și JavaScript**. Vom folosi JavaScript de câteva ori în acest curs pentru a construi aplicații web, așa că va trebui să ai [node](https://nodejs.org) și [npm](https://www.npmjs.com/) instalate, precum și [Visual Studio Code](https://code.visualstudio.com/) disponibil pentru dezvoltarea atât în Python, cât și în JavaScript.
+- **Creează un cont GitHub**. Deoarece ne-ai găsit aici pe [GitHub](https://github.com), este posibil să ai deja un cont, dar dacă nu, creează unul și apoi clonează acest curriculum pentru a-l folosi pe cont propriu. (Nu ezita să ne dai și o stea 😊)
+- **Explorează Scikit-learn**. Familiarizează-te cu [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), un set de biblioteci ML pe care le referim în aceste lecții.
+
+---
+## Ce este învățarea automată?
+
+Termenul 'învățare automată' este unul dintre cele mai populare și frecvent utilizate termene din zilele noastre. Există o posibilitate considerabilă ca să fi auzit acest termen cel puțin o dată dacă ai o oarecare familiaritate cu tehnologia, indiferent de domeniul în care lucrezi. Mecanismele învățării automate, însă, sunt un mister pentru majoritatea oamenilor. Pentru un începător în învățarea automată, subiectul poate părea uneori copleșitor. Prin urmare, este important să înțelegem ce este de fapt învățarea automată și să o studiem pas cu pas, prin exemple practice.
+
+---
+## Curba hype-ului
+
+
+
+> Google Trends arată curba recentă de 'hype' a termenului 'învățare automată'
+
+---
+## Un univers misterios
+
+Trăim într-un univers plin de mistere fascinante. Mari oameni de știință precum Stephen Hawking, Albert Einstein și mulți alții și-au dedicat viețile căutării de informații semnificative care să dezvăluie misterele lumii din jurul nostru. Aceasta este condiția umană a învățării: un copil învață lucruri noi și descoperă structura lumii sale an de an pe măsură ce crește.
+
+---
+## Creierul copilului
+
+Creierul și simțurile unui copil percep faptele din mediul înconjurător și învață treptat tiparele ascunse ale vieții, care ajută copilul să creeze reguli logice pentru a identifica tiparele învățate. Procesul de învățare al creierului uman face ca oamenii să fie cele mai sofisticate ființe vii ale acestei lumi. Învățarea continuă prin descoperirea tiparelor ascunse și apoi inovarea pe baza acestor tipare ne permite să ne îmbunătățim constant pe parcursul vieții. Această capacitate de învățare și evoluție este legată de un concept numit [plasticitatea creierului](https://www.simplypsychology.org/brain-plasticity.html). Superficial, putem trasa unele similitudini motivaționale între procesul de învățare al creierului uman și conceptele de învățare automată.
+
+---
+## Creierul uman
+
+[Creierul uman](https://www.livescience.com/29365-human-brain.html) percepe lucruri din lumea reală, procesează informațiile percepute, ia decizii raționale și efectuează anumite acțiuni în funcție de circumstanțe. Acesta este ceea ce numim comportament inteligent. Când programăm o replică a procesului comportamental inteligent într-o mașină, aceasta se numește inteligență artificială (AI).
+
+---
+## Un pic de terminologie
+
+Deși termenii pot fi confundați, învățarea automată (ML) este un subset important al inteligenței artificiale. **ML se ocupă de utilizarea algoritmilor specializați pentru a descoperi informații semnificative și a găsi tipare ascunse din datele percepute pentru a susține procesul de luare a deciziilor raționale**.
+
+---
+## AI, ML, Învățare profundă
+
+
+
+> Un diagramă care arată relațiile dintre AI, ML, învățarea profundă și știința datelor. Infografic de [Jen Looper](https://twitter.com/jenlooper) inspirat de [acest grafic](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
+
+---
+## Concepte de acoperit
+
+În acest curriculum, vom acoperi doar conceptele de bază ale învățării automate pe care un începător trebuie să le cunoască. Vom aborda ceea ce numim 'învățare automată clasică', utilizând în principal Scikit-learn, o bibliotecă excelentă pe care mulți studenți o folosesc pentru a învăța elementele de bază. Pentru a înțelege conceptele mai largi ale inteligenței artificiale sau ale învățării profunde, o cunoaștere fundamentală solidă a învățării automate este indispensabilă, și dorim să o oferim aici.
+
+---
+## În acest curs vei învăța:
+
+- conceptele de bază ale învățării automate
+- istoria ML
+- ML și echitatea
+- tehnici de regresie ML
+- tehnici de clasificare ML
+- tehnici de grupare ML
+- procesarea limbajului natural ML
+- tehnici de prognoză a seriilor temporale ML
+- învățare prin întărire
+- aplicații reale pentru ML
+
+---
+## Ce nu vom acoperi
+
+- învățarea profundă
+- rețele neuronale
+- AI
+
+Pentru a oferi o experiență de învățare mai bună, vom evita complexitățile rețelelor neuronale, 'învățarea profundă' - construirea de modele cu multe straturi folosind rețele neuronale - și AI, pe care le vom discuta într-un alt curriculum. De asemenea, vom oferi un curriculum viitor despre știința datelor pentru a ne concentra pe acest aspect al acestui domeniu mai larg.
+
+---
+## De ce să studiezi învățarea automată?
+
+Învățarea automată, din perspectiva sistemelor, este definită ca crearea de sisteme automate care pot învăța tipare ascunse din date pentru a ajuta la luarea deciziilor inteligente.
+
+Această motivație este vag inspirată de modul în care creierul uman învață anumite lucruri pe baza datelor pe care le percepe din lumea exterioară.
+
+✅ Gândește-te un minut de ce o afacere ar dori să folosească strategii de învățare automată în loc să creeze un motor bazat pe reguli codificate manual.
+
+---
+## Aplicații ale învățării automate
+
+Aplicațiile învățării automate sunt acum aproape peste tot și sunt la fel de omniprezente ca datele care circulă în societățile noastre, generate de telefoanele noastre inteligente, dispozitivele conectate și alte sisteme. Având în vedere potențialul imens al algoritmilor de învățare automată de ultimă generație, cercetătorii au explorat capacitatea lor de a rezolva probleme multidimensionale și multidisciplinare din viața reală cu rezultate pozitive remarcabile.
+
+---
+## Exemple de ML aplicat
+
+**Poți folosi învățarea automată în multe moduri**:
+
+- Pentru a prezice probabilitatea unei boli pe baza istoricului medical sau a rapoartelor unui pacient.
+- Pentru a utiliza datele meteorologice pentru a prezice evenimente meteorologice.
+- Pentru a înțelege sentimentul unui text.
+- Pentru a detecta știrile false și a opri răspândirea propagandei.
+
+Finanțe, economie, știința pământului, explorarea spațiului, ingineria biomedicală, știința cognitivă și chiar domenii din științele umaniste au adaptat învățarea automată pentru a rezolva problemele grele de procesare a datelor din domeniul lor.
+
+---
+## Concluzie
+
+Învățarea automată automatizează procesul de descoperire a tiparelor prin găsirea de informații semnificative din datele reale sau generate. S-a dovedit a fi extrem de valoroasă în aplicații de afaceri, sănătate și financiare, printre altele.
+
+În viitorul apropiat, înțelegerea elementelor de bază ale învățării automate va deveni o necesitate pentru oamenii din orice domeniu datorită adoptării sale pe scară largă.
+
+---
+# 🚀 Provocare
+
+Desenează, pe hârtie sau folosind o aplicație online precum [Excalidraw](https://excalidraw.com/), înțelegerea ta despre diferențele dintre AI, ML, învățarea profundă și știința datelor. Adaugă câteva idei despre problemele pe care fiecare dintre aceste tehnici le rezolvă bine.
+
+# [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+# Recapitulare & Studiu individual
+
+Pentru a afla mai multe despre cum poți lucra cu algoritmi ML în cloud, urmează acest [Parcurs de învățare](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
+
+Urmează un [Parcurs de învățare](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) despre elementele de bază ale ML.
+
+---
+# Temă
+
+[Începe să lucrezi](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/1-intro-to-ML/assignment.md b/translations/ro/1-Introduction/1-intro-to-ML/assignment.md
new file mode 100644
index 00000000..e9a2fbf6
--- /dev/null
+++ b/translations/ro/1-Introduction/1-intro-to-ML/assignment.md
@@ -0,0 +1,23 @@
+
+# Începe și pornește
+
+## Instrucțiuni
+
+În această sarcină fără notare, ar trebui să îți reîmprospătezi cunoștințele de Python și să îți configurezi mediul astfel încât să poți rula notebook-uri.
+
+Urmează acest [Parcurs de Învățare Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), apoi configurează-ți sistemele parcurgând aceste videoclipuri introductive:
+
+https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/2-history-of-ML/README.md b/translations/ro/1-Introduction/2-history-of-ML/README.md
new file mode 100644
index 00000000..fa6aebc2
--- /dev/null
+++ b/translations/ro/1-Introduction/2-history-of-ML/README.md
@@ -0,0 +1,164 @@
+
+# Istoria învățării automate
+
+
+> Schiță realizată de [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/N6wxM4wZ7V0 "ML pentru începători - Istoria învățării automate")
+
+> 🎥 Click pe imaginea de mai sus pentru un scurt videoclip despre această lecție.
+
+În această lecție, vom parcurge principalele momente din istoria învățării automate și a inteligenței artificiale.
+
+Istoria inteligenței artificiale (IA) ca domeniu este strâns legată de istoria învățării automate, deoarece algoritmii și progresele computaționale care stau la baza ML au contribuit la dezvoltarea IA. Este util să ne amintim că, deși aceste domenii ca arii distincte de cercetare au început să se cristalizeze în anii 1950, descoperiri importante [algoritmice, statistice, matematice, computaționale și tehnice](https://wikipedia.org/wiki/Timeline_of_machine_learning) au precedat și s-au suprapus cu această perioadă. De fapt, oamenii au reflectat asupra acestor întrebări de [sute de ani](https://wikipedia.org/wiki/History_of_artificial_intelligence): acest articol discută fundamentele intelectuale istorice ale ideii de 'mașină care gândește'.
+
+---
+## Descoperiri notabile
+
+- 1763, 1812 [Teorema lui Bayes](https://wikipedia.org/wiki/Bayes%27_theorem) și predecesorii săi. Această teoremă și aplicațiile sale stau la baza inferenței, descriind probabilitatea unui eveniment pe baza cunoștințelor anterioare.
+- 1805 [Teoria celor mai mici pătrate](https://wikipedia.org/wiki/Least_squares) de matematicianul francez Adrien-Marie Legendre. Această teorie, pe care o veți învăța în unitatea noastră despre regresie, ajută la ajustarea datelor.
+- 1913 [Lanțurile Markov](https://wikipedia.org/wiki/Markov_chain), numite după matematicianul rus Andrey Markov, sunt utilizate pentru a descrie o secvență de evenimente posibile bazate pe o stare anterioară.
+- 1957 [Perceptronul](https://wikipedia.org/wiki/Perceptron) este un tip de clasificator liniar inventat de psihologul american Frank Rosenblatt, care stă la baza progreselor în învățarea profundă.
+
+---
+
+- 1967 [Cel mai apropiat vecin](https://wikipedia.org/wiki/Nearest_neighbor) este un algoritm inițial conceput pentru a cartografia rute. În contextul ML, este utilizat pentru a detecta modele.
+- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) este utilizat pentru a antrena [rețele neuronale feedforward](https://wikipedia.org/wiki/Feedforward_neural_network).
+- 1982 [Rețele neuronale recurente](https://wikipedia.org/wiki/Recurrent_neural_network) sunt rețele neuronale artificiale derivate din rețelele neuronale feedforward care creează grafice temporale.
+
+✅ Faceți puțină cercetare. Ce alte date se remarcă ca fiind esențiale în istoria ML și IA?
+
+---
+## 1950: Mașini care gândesc
+
+Alan Turing, o persoană cu adevărat remarcabilă, votat [de public în 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) drept cel mai mare om de știință al secolului XX, este creditat cu punerea bazelor conceptului de 'mașină care poate gândi'. El s-a confruntat cu sceptici și cu propria nevoie de dovezi empirice ale acestui concept, în parte prin crearea [Testului Turing](https://www.bbc.com/news/technology-18475646), pe care îl veți explora în lecțiile noastre despre NLP.
+
+---
+## 1956: Proiectul de cercetare de vară de la Dartmouth
+
+"Proiectul de cercetare de vară de la Dartmouth despre inteligența artificială a fost un eveniment seminal pentru inteligența artificială ca domeniu," și aici a fost inventat termenul 'inteligență artificială' ([sursa](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
+
+> Fiecare aspect al învățării sau orice altă caracteristică a inteligenței poate fi, în principiu, descris atât de precis încât o mașină poate fi construită pentru a o simula.
+
+---
+
+Cercetătorul principal, profesorul de matematică John McCarthy, spera "să procedeze pe baza conjecturii că fiecare aspect al învățării sau orice altă caracteristică a inteligenței poate fi, în principiu, descris atât de precis încât o mașină poate fi construită pentru a o simula." Participanții au inclus o altă personalitate marcantă din domeniu, Marvin Minsky.
+
+Atelierul este creditat cu inițierea și încurajarea mai multor discuții, inclusiv "ascensiunea metodelor simbolice, sistemele axate pe domenii limitate (sisteme expert timpurii) și sistemele deductive versus sistemele inductive." ([sursa](https://wikipedia.org/wiki/Dartmouth_workshop)).
+
+---
+## 1956 - 1974: "Anii de aur"
+
+Din anii 1950 până la mijlocul anilor '70, optimismul era ridicat în speranța că IA ar putea rezolva multe probleme. În 1967, Marvin Minsky afirma cu încredere că "Într-o generație ... problema creării 'inteligenței artificiale' va fi substanțial rezolvată." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
+
+Cercetarea în procesarea limbajului natural a înflorit, căutarea a fost rafinată și făcută mai puternică, iar conceptul de 'micro-lumi' a fost creat, unde sarcini simple erau realizate folosind instrucțiuni în limbaj simplu.
+
+---
+
+Cercetarea era bine finanțată de agențiile guvernamentale, s-au făcut progrese în calcul și algoritmi, iar prototipuri de mașini inteligente au fost construite. Unele dintre aceste mașini includ:
+
+* [Shakey robotul](https://wikipedia.org/wiki/Shakey_the_robot), care putea să se deplaseze și să decidă cum să îndeplinească sarcini 'inteligent'.
+
+ 
+ > Shakey în 1972
+
+---
+
+* Eliza, un 'chatterbot' timpuriu, putea conversa cu oamenii și acționa ca un 'terapeut' primitiv. Veți învăța mai multe despre Eliza în lecțiile despre NLP.
+
+ 
+ > O versiune a Eliza, un chatbot
+
+---
+
+* "Blocks world" era un exemplu de micro-lume unde blocurile puteau fi stivuite și sortate, iar experimentele în învățarea mașinilor să ia decizii puteau fi testate. Progresele realizate cu biblioteci precum [SHRDLU](https://wikipedia.org/wiki/SHRDLU) au ajutat la propulsarea procesării limbajului.
+
+ [](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world cu SHRDLU")
+
+ > 🎥 Click pe imaginea de mai sus pentru un videoclip: Blocks world cu SHRDLU
+
+---
+## 1974 - 1980: "Iarna IA"
+
+Până la mijlocul anilor 1970, devenise evident că complexitatea creării 'mașinilor inteligente' fusese subestimată și că promisiunea sa, având în vedere puterea de calcul disponibilă, fusese exagerată. Finanțarea s-a redus și încrederea în domeniu a încetinit. Unele probleme care au afectat încrederea includ:
+---
+- **Limitări**. Puterea de calcul era prea limitată.
+- **Explozia combinatorică**. Numărul de parametri necesari pentru antrenare creștea exponențial pe măsură ce se cerea mai mult de la computere, fără o evoluție paralelă a puterii și capacității de calcul.
+- **Lipsa de date**. Lipsa datelor a împiedicat procesul de testare, dezvoltare și rafinare a algoritmilor.
+- **Punem întrebările corecte?**. Însăși întrebările care erau puse au început să fie puse sub semnul întrebării. Cercetătorii au început să primească critici cu privire la abordările lor:
+ - Testele Turing au fost puse sub semnul întrebării prin mijloace, printre alte idei, ale 'teoriei camerei chineze', care susținea că "programarea unui computer digital poate face să pară că înțelege limbajul, dar nu poate produce o înțelegere reală." ([sursa](https://plato.stanford.edu/entries/chinese-room/))
+ - Etica introducerii inteligențelor artificiale, cum ar fi "terapeutul" ELIZA, în societate a fost contestată.
+
+---
+
+În același timp, diverse școli de gândire IA au început să se formeze. S-a stabilit o dihotomie între practicile ["scruffy" vs. "neat IA"](https://wikipedia.org/wiki/Neats_and_scruffies). Laboratoarele _scruffy_ ajustau programele ore întregi până obțineau rezultatele dorite. Laboratoarele _neat_ "se concentrau pe logică și rezolvarea formală a problemelor". ELIZA și SHRDLU erau sisteme _scruffy_ bine cunoscute. În anii 1980, pe măsură ce a apărut cererea de a face sistemele ML reproducibile, abordarea _neat_ a preluat treptat prim-planul, deoarece rezultatele sale sunt mai explicabile.
+
+---
+## Sistemele expert din anii 1980
+
+Pe măsură ce domeniul a crescut, beneficiul său pentru afaceri a devenit mai clar, iar în anii 1980 la fel și proliferarea 'sistemelor expert'. "Sistemele expert au fost printre primele forme cu adevărat de succes ale software-ului de inteligență artificială (IA)." ([sursa](https://wikipedia.org/wiki/Expert_system)).
+
+Acest tip de sistem este de fapt _hibrid_, constând parțial dintr-un motor de reguli care definește cerințele de afaceri și un motor de inferență care folosește sistemul de reguli pentru a deduce noi fapte.
+
+Această eră a văzut, de asemenea, o atenție sporită acordată rețelelor neuronale.
+
+---
+## 1987 - 1993: Răcirea IA
+
+Proliferarea hardware-ului specializat pentru sistemele expert a avut efectul nefericit de a deveni prea specializat. Ascensiunea computerelor personale a concurat cu aceste sisteme mari, specializate și centralizate. Democratizarea calculului începuse și, în cele din urmă, a deschis calea pentru explozia modernă a datelor mari.
+
+---
+## 1993 - 2011
+
+Această epocă a marcat o nouă eră pentru ML și IA, care au reușit să rezolve unele dintre problemele cauzate anterior de lipsa datelor și a puterii de calcul. Cantitatea de date a început să crească rapid și să devină mai accesibilă, în bine și în rău, mai ales odată cu apariția smartphone-ului în jurul anului 2007. Puterea de calcul a crescut exponențial, iar algoritmii au evoluat în paralel. Domeniul a început să câștige maturitate pe măsură ce zilele libere ale trecutului au început să se cristalizeze într-o adevărată disciplină.
+
+---
+## Acum
+
+Astăzi, învățarea automată și IA ating aproape fiecare parte a vieților noastre. Această eră necesită o înțelegere atentă a riscurilor și efectelor potențiale ale acestor algoritmi asupra vieților umane. După cum a afirmat Brad Smith de la Microsoft, "Tehnologia informației ridică probleme care ating esența protecțiilor fundamentale ale drepturilor omului, cum ar fi confidențialitatea și libertatea de exprimare. Aceste probleme sporesc responsabilitatea companiilor de tehnologie care creează aceste produse. În opinia noastră, ele cer, de asemenea, reglementări guvernamentale bine gândite și dezvoltarea unor norme privind utilizările acceptabile" ([sursa](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
+
+---
+
+Rămâne de văzut ce ne rezervă viitorul, dar este important să înțelegem aceste sisteme computerizate și software-ul și algoritmii pe care le rulează. Sperăm că acest curriculum vă va ajuta să obțineți o înțelegere mai bună, astfel încât să puteți decide singuri.
+
+[](https://www.youtube.com/watch?v=mTtDfKgLm54 "Istoria învățării profunde")
+> 🎥 Click pe imaginea de mai sus pentru un videoclip: Yann LeCun discută despre istoria învățării profunde în această prelegere
+
+---
+## 🚀Provocare
+
+Explorați unul dintre aceste momente istorice și aflați mai multe despre oamenii din spatele lor. Există personaje fascinante, iar nicio descoperire științifică nu a fost creată într-un vid cultural. Ce descoperiți?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+## Recapitulare și studiu individual
+
+Iată câteva materiale de urmărit și ascultat:
+
+[Acest podcast în care Amy Boyd discută evoluția IA](http://runasradio.com/Shows/Show/739)
+
+[](https://www.youtube.com/watch?v=EJt3_bFYKss "Istoria IA de Amy Boyd")
+
+---
+
+## Temă
+
+[Crearea unei cronologii](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/2-history-of-ML/assignment.md b/translations/ro/1-Introduction/2-history-of-ML/assignment.md
new file mode 100644
index 00000000..aa37c42f
--- /dev/null
+++ b/translations/ro/1-Introduction/2-history-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Creează o cronologie
+
+## Instrucțiuni
+
+Folosind [acest depozit](https://github.com/Digital-Humanities-Toolkit/timeline-builder), creează o cronologie a unui aspect din istoria algoritmilor, matematicii, statisticii, AI sau ML, sau o combinație a acestora. Poți să te concentrezi pe o persoană, o idee sau o perioadă lungă de gândire. Asigură-te că adaugi elemente multimedia.
+
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvat | Necesită îmbunătățiri |
+| -------- | ------------------------------------------------- | --------------------------------------- | --------------------------------------------------------------- |
+| | O cronologie implementată este prezentată ca pagină GitHub | Codul este incomplet și neimplementat | Cronologia este incompletă, slab cercetată și neimplementată |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/3-fairness/README.md b/translations/ro/1-Introduction/3-fairness/README.md
new file mode 100644
index 00000000..f6d7e1aa
--- /dev/null
+++ b/translations/ro/1-Introduction/3-fairness/README.md
@@ -0,0 +1,155 @@
+
+# Construirea soluțiilor de învățare automată cu AI responsabil
+
+
+> Schiță realizată de [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Introducere
+
+În acest curriculum, vei începe să descoperi cum învățarea automată poate și influențează viețile noastre de zi cu zi. Chiar și acum, sistemele și modelele sunt implicate în sarcini de luare a deciziilor zilnice, cum ar fi diagnosticarea în sănătate, aprobarea împrumuturilor sau detectarea fraudei. De aceea, este important ca aceste modele să funcționeze bine pentru a oferi rezultate de încredere. La fel ca orice aplicație software, sistemele AI pot să nu îndeplinească așteptările sau să aibă un rezultat nedorit. De aceea, este esențial să putem înțelege și explica comportamentul unui model AI.
+
+Imaginează-ți ce se poate întâmpla atunci când datele pe care le folosești pentru a construi aceste modele nu includ anumite demografii, cum ar fi rasa, genul, opiniile politice, religia sau reprezintă disproporționat astfel de demografii. Ce se întâmplă când rezultatul modelului este interpretat astfel încât să favorizeze o anumită demografie? Care este consecința pentru aplicație? În plus, ce se întâmplă când modelul are un rezultat advers și este dăunător pentru oameni? Cine este responsabil pentru comportamentul sistemelor AI? Acestea sunt câteva întrebări pe care le vom explora în acest curriculum.
+
+În această lecție, vei:
+
+- Conștientiza importanța echității în învățarea automată și daunele legate de echitate.
+- Deveni familiar cu practica de explorare a valorilor extreme și scenariilor neobișnuite pentru a asigura fiabilitatea și siguranța.
+- Înțelege necesitatea de a împuternici pe toată lumea prin proiectarea de sisteme incluzive.
+- Explora cât de vital este să protejezi confidențialitatea și securitatea datelor și a oamenilor.
+- Observa importanța unei abordări transparente pentru a explica comportamentul modelelor AI.
+- Fi conștient de faptul că responsabilitatea este esențială pentru a construi încrederea în sistemele AI.
+
+## Prerechizite
+
+Ca prerechizite, te rugăm să urmezi "Principiile AI Responsabil" pe Learn Path și să vizionezi videoclipul de mai jos pe acest subiect:
+
+Află mai multe despre AI Responsabil urmând acest [Learning Path](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott)
+
+[](https://youtu.be/dnC8-uUZXSc "Abordarea Microsoft pentru AI Responsabil")
+
+> 🎥 Click pe imaginea de mai sus pentru un videoclip: Abordarea Microsoft pentru AI Responsabil
+
+## Echitate
+
+Sistemele AI ar trebui să trateze pe toată lumea în mod echitabil și să evite să afecteze grupuri similare de oameni în moduri diferite. De exemplu, atunci când sistemele AI oferă recomandări pentru tratamente medicale, aplicații de împrumut sau angajare, acestea ar trebui să facă aceleași recomandări pentru toți cei cu simptome, circumstanțe financiare sau calificări profesionale similare. Fiecare dintre noi, ca oameni, purtăm prejudecăți moștenite care ne afectează deciziile și acțiunile. Aceste prejudecăți pot fi evidente în datele pe care le folosim pentru a antrena sistemele AI. Astfel de manipulări pot apărea uneori neintenționat. Este adesea dificil să conștientizezi când introduci prejudecăți în date.
+
+**„Nedreptatea”** cuprinde impacturi negative sau „daune” pentru un grup de oameni, cum ar fi cei definiți în termeni de rasă, gen, vârstă sau statut de dizabilitate. Principalele daune legate de echitate pot fi clasificate astfel:
+
+- **Alocare**, dacă un gen sau o etnie, de exemplu, este favorizată în detrimentul alteia.
+- **Calitatea serviciului**. Dacă antrenezi datele pentru un scenariu specific, dar realitatea este mult mai complexă, aceasta duce la un serviciu slab. De exemplu, un dozator de săpun care nu pare să detecteze persoanele cu pielea închisă la culoare. [Referință](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773)
+- **Denigrare**. Criticarea și etichetarea nedreaptă a ceva sau a cuiva. De exemplu, o tehnologie de etichetare a imaginilor a etichetat în mod infam imagini ale persoanelor cu pielea închisă la culoare ca fiind gorile.
+- **Reprezentare excesivă sau insuficientă**. Ideea este că un anumit grup nu este văzut într-o anumită profesie, iar orice serviciu sau funcție care continuă să promoveze acest lucru contribuie la daune.
+- **Stereotipizare**. Asocierea unui grup dat cu atribute predefinite. De exemplu, un sistem de traducere între engleză și turcă poate avea inexactități din cauza cuvintelor asociate stereotipic cu genul.
+
+
+> traducere în turcă
+
+
+> traducere înapoi în engleză
+
+Când proiectăm și testăm sisteme AI, trebuie să ne asigurăm că AI este echitabil și nu este programat să ia decizii părtinitoare sau discriminatorii, pe care nici oamenii nu au voie să le ia. Garantarea echității în AI și învățarea automată rămâne o provocare complexă sociotehnică.
+
+### Fiabilitate și siguranță
+
+Pentru a construi încredere, sistemele AI trebuie să fie fiabile, sigure și consistente în condiții normale și neașteptate. Este important să știm cum se vor comporta sistemele AI într-o varietate de situații, mai ales când sunt valori extreme. Când construim soluții AI, trebuie să ne concentrăm substanțial pe modul de gestionare a unei varietăți largi de circumstanțe pe care soluțiile AI le-ar putea întâlni. De exemplu, o mașină autonomă trebuie să pună siguranța oamenilor pe primul loc. Ca rezultat, AI-ul care alimentează mașina trebuie să ia în considerare toate scenariile posibile pe care mașina le-ar putea întâlni, cum ar fi noaptea, furtuni, viscol, copii care traversează strada, animale de companie, construcții pe drum etc. Cât de bine poate gestiona un sistem AI o gamă largă de condiții în mod fiabil și sigur reflectă nivelul de anticipare pe care l-a avut specialistul în date sau dezvoltatorul AI în timpul proiectării sau testării sistemului.
+
+> [🎥 Click aici pentru un videoclip: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
+
+### Incluziune
+
+Sistemele AI ar trebui să fie proiectate pentru a implica și împuternici pe toată lumea. Când proiectează și implementează sisteme AI, specialiștii în date și dezvoltatorii AI identifică și abordează barierele potențiale din sistem care ar putea exclude neintenționat oamenii. De exemplu, există 1 miliard de persoane cu dizabilități în întreaga lume. Cu avansarea AI, acestea pot accesa o gamă largă de informații și oportunități mai ușor în viața lor de zi cu zi. Abordarea barierelor creează oportunități de a inova și dezvolta produse AI cu experiențe mai bune care beneficiază pe toată lumea.
+
+> [🎥 Click aici pentru un videoclip: incluziunea în AI](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
+
+### Securitate și confidențialitate
+
+Sistemele AI ar trebui să fie sigure și să respecte confidențialitatea oamenilor. Oamenii au mai puțină încredere în sistemele care le pun în pericol confidențialitatea, informațiile sau viețile. Când antrenăm modele de învățare automată, ne bazăm pe date pentru a produce cele mai bune rezultate. În acest proces, originea datelor și integritatea lor trebuie luate în considerare. De exemplu, datele au fost trimise de utilizatori sau sunt disponibile public? Apoi, în timp ce lucrăm cu datele, este crucial să dezvoltăm sisteme AI care pot proteja informațiile confidențiale și rezista atacurilor. Pe măsură ce AI devine mai răspândit, protejarea confidențialității și securizarea informațiilor personale și de afaceri devin din ce în ce mai critice și complexe. Problemele de confidențialitate și securitate a datelor necesită o atenție deosebită pentru AI, deoarece accesul la date este esențial pentru ca sistemele AI să facă predicții și decizii precise și informate despre oameni.
+
+> [🎥 Click aici pentru un videoclip: securitatea în AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Industria a făcut progrese semnificative în confidențialitate și securitate, alimentate în mod semnificativ de reglementări precum GDPR (Regulamentul General privind Protecția Datelor).
+- Totuși, cu sistemele AI trebuie să recunoaștem tensiunea dintre necesitatea mai multor date personale pentru a face sistemele mai personale și eficiente – și confidențialitatea.
+- La fel ca la nașterea computerelor conectate la internet, vedem o creștere semnificativă a numărului de probleme de securitate legate de AI.
+- În același timp, am văzut AI fiind folosit pentru a îmbunătăți securitatea. De exemplu, majoritatea scanerelor antivirus moderne sunt alimentate de euristici AI.
+- Trebuie să ne asigurăm că procesele noastre de știința datelor se îmbină armonios cu cele mai recente practici de confidențialitate și securitate.
+
+### Transparență
+
+Sistemele AI ar trebui să fie ușor de înțeles. O parte crucială a transparenței este explicarea comportamentului sistemelor AI și a componentelor acestora. Îmbunătățirea înțelegerii sistemelor AI necesită ca părțile interesate să înțeleagă cum și de ce funcționează acestea, astfel încât să poată identifica potențiale probleme de performanță, preocupări legate de siguranță și confidențialitate, prejudecăți, practici de excludere sau rezultate neintenționate. De asemenea, credem că cei care folosesc sistemele AI ar trebui să fie sinceri și deschiși cu privire la momentul, motivul și modul în care aleg să le implementeze. La fel ca și limitările sistemelor pe care le folosesc. De exemplu, dacă o bancă folosește un sistem AI pentru a sprijini deciziile de creditare pentru consumatori, este important să examineze rezultatele și să înțeleagă ce date influențează recomandările sistemului. Guvernele încep să reglementeze AI în diverse industrii, astfel încât specialiștii în date și organizațiile trebuie să explice dacă un sistem AI îndeplinește cerințele de reglementare, mai ales atunci când există un rezultat nedorit.
+
+> [🎥 Click aici pentru un videoclip: transparența în AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Deoarece sistemele AI sunt atât de complexe, este dificil să înțelegem cum funcționează și să interpretăm rezultatele.
+- Această lipsă de înțelegere afectează modul în care aceste sisteme sunt gestionate, operaționalizate și documentate.
+- Mai important, această lipsă de înțelegere afectează deciziile luate pe baza rezultatelor produse de aceste sisteme.
+
+### Responsabilitate
+
+Persoanele care proiectează și implementează sisteme AI trebuie să fie responsabile pentru modul în care funcționează sistemele lor. Necesitatea responsabilității este deosebit de crucială în cazul tehnologiilor sensibile, cum ar fi recunoașterea facială. Recent, a existat o cerere tot mai mare pentru tehnologia de recunoaștere facială, mai ales din partea organizațiilor de aplicare a legii care văd potențialul tehnologiei în utilizări precum găsirea copiilor dispăruți. Cu toate acestea, aceste tehnologii ar putea fi utilizate de un guvern pentru a pune în pericol libertățile fundamentale ale cetățenilor săi, de exemplu, prin supravegherea continuă a unor indivizi specifici. Prin urmare, specialiștii în date și organizațiile trebuie să fie responsabili pentru modul în care sistemul lor AI afectează indivizii sau societatea.
+
+[](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Abordarea Microsoft pentru AI Responsabil")
+
+> 🎥 Click pe imaginea de mai sus pentru un videoclip: Avertismente despre supravegherea masivă prin recunoaștere facială
+
+În cele din urmă, una dintre cele mai mari întrebări pentru generația noastră, ca prima generație care aduce AI în societate, este cum să ne asigurăm că computerele vor rămâne responsabile față de oameni și cum să ne asigurăm că persoanele care proiectează computere rămân responsabile față de toți ceilalți.
+
+## Evaluarea impactului
+
+Înainte de a antrena un model de învățare automată, este important să efectuezi o evaluare a impactului pentru a înțelege scopul sistemului AI; utilizarea intenționată; unde va fi implementat; și cine va interacționa cu sistemul. Acestea sunt utile pentru evaluatorii sau testerii care analizează sistemul pentru a ști ce factori să ia în considerare atunci când identifică riscuri potențiale și consecințe așteptate.
+
+Următoarele sunt domenii de interes atunci când se efectuează o evaluare a impactului:
+
+* **Impact negativ asupra indivizilor**. Conștientizarea oricăror restricții sau cerințe, utilizări neacceptate sau limitări cunoscute care împiedică performanța sistemului este vitală pentru a ne asigura că sistemul nu este utilizat într-un mod care ar putea dăuna indivizilor.
+* **Cerințe de date**. Înțelegerea modului și locului în care sistemul va utiliza datele permite evaluatorilor să exploreze orice cerințe de date de care trebuie să fii conștient (de exemplu, reglementările GDPR sau HIPPA). În plus, examinează dacă sursa sau cantitatea de date este suficientă pentru antrenare.
+* **Rezumatul impactului**. Adună o listă de potențiale daune care ar putea apărea din utilizarea sistemului. Pe parcursul ciclului de viață al ML, verifică dacă problemele identificate sunt atenuate sau abordate.
+* **Obiective aplicabile** pentru fiecare dintre cele șase principii de bază. Evaluează dacă obiectivele fiecărui principiu sunt îndeplinite și dacă există lacune.
+
+## Debugging cu AI responsabil
+
+Similar cu depanarea unei aplicații software, depanarea unui sistem AI este un proces necesar de identificare și rezolvare a problemelor din sistem. Există mulți factori care ar putea afecta un model să nu funcționeze conform așteptărilor sau responsabil. Majoritatea metricilor tradiționale de performanță ale modelului sunt agregate cantitative ale performanței modelului, care nu sunt suficiente pentru a analiza modul în care un model încalcă principiile AI responsabil. Mai mult, un model de învățare automată este o cutie neagră, ceea ce face dificilă înțelegerea a ceea ce determină rezultatul său sau oferirea unei explicații atunci când face o greșeală. Mai târziu în acest curs, vom învăța cum să folosim tabloul de bord AI Responsabil pentru a ajuta la depanarea sistemelor AI. Tabloul de bord oferă un instrument holistic pentru specialiștii în date și dezvoltatorii AI pentru a efectua:
+
+* **Analiza erorilor**. Pentru a identifica distribuția erorilor modelului care poate afecta echitatea sau fiabilitatea sistemului.
+* **Prezentarea generală a modelului**. Pentru a descoperi unde există disparități în performanța modelului în diferite cohorte de date.
+* **Analiza datelor**. Pentru a înțelege distribuția datelor și a identifica orice potențială prejudecată în date care ar putea duce la probleme de echitate, incluziune și fiabilitate.
+* **Interpretabilitatea modelului**. Pentru a înțelege ce afectează sau influențează predicțiile modelului. Acest lucru ajută la explicarea comportamentului modelului, ceea ce este important pentru transparență și
+Urmărește acest workshop pentru a aprofunda subiectele:
+
+- În căutarea AI responsabil: Aplicarea principiilor în practică de Besmira Nushi, Mehrnoosh Sameki și Amit Sharma
+
+[](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: Un cadru open-source pentru construirea AI responsabil")
+
+
+> 🎥 Click pe imaginea de mai sus pentru un videoclip: RAI Toolbox: Un cadru open-source pentru construirea AI responsabil de Besmira Nushi, Mehrnoosh Sameki și Amit Sharma
+
+De asemenea, citește:
+
+- Centrul de resurse RAI al Microsoft: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Grupul de cercetare FATE al Microsoft: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+RAI Toolbox:
+
+- [Repository-ul GitHub Responsible AI Toolbox](https://github.com/microsoft/responsible-ai-toolbox)
+
+Citește despre instrumentele Azure Machine Learning pentru asigurarea echității:
+
+- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott)
+
+## Temă
+
+[Explorează RAI Toolbox](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/3-fairness/assignment.md b/translations/ro/1-Introduction/3-fairness/assignment.md
new file mode 100644
index 00000000..7c1c00d1
--- /dev/null
+++ b/translations/ro/1-Introduction/3-fairness/assignment.md
@@ -0,0 +1,25 @@
+
+# Explorează Responsible AI Toolbox
+
+## Instrucțiuni
+
+În această lecție ai învățat despre Responsible AI Toolbox, un "proiect open-source, condus de comunitate, care ajută oamenii de știință în date să analizeze și să îmbunătățească sistemele AI." Pentru această temă, explorează unul dintre [notebook-urile](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) din RAI Toolbox și raportează concluziile tale într-o lucrare sau prezentare.
+
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | --------- | -------- | --------------------- |
+| | Este prezentată o lucrare sau o prezentare PowerPoint care discută sistemele Fairlearn, notebook-ul utilizat și concluziile trase în urma rulării acestuia | Este prezentată o lucrare fără concluzii | Nu este prezentată nicio lucrare |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/4-techniques-of-ML/README.md b/translations/ro/1-Introduction/4-techniques-of-ML/README.md
new file mode 100644
index 00000000..f43dfd0b
--- /dev/null
+++ b/translations/ro/1-Introduction/4-techniques-of-ML/README.md
@@ -0,0 +1,132 @@
+
+# Tehnici de Învățare Automată
+
+Procesul de construire, utilizare și întreținere a modelelor de învățare automată și a datelor pe care acestea le folosesc este foarte diferit de multe alte fluxuri de lucru din dezvoltare. În această lecție, vom demistifica procesul și vom evidenția principalele tehnici pe care trebuie să le cunoașteți. Veți:
+
+- Înțelege procesele care stau la baza învățării automate la un nivel general.
+- Explora concepte de bază precum „modele”, „predicții” și „date de antrenament”.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+[](https://youtu.be/4NGM0U2ZSHU "ML pentru începători - Tehnici de Învățare Automată")
+
+> 🎥 Faceți clic pe imaginea de mai sus pentru un scurt videoclip despre această lecție.
+
+## Introducere
+
+La un nivel general, arta de a crea procese de învățare automată (ML) constă dintr-o serie de pași:
+
+1. **Decideți întrebarea**. Majoritatea proceselor ML încep prin a pune o întrebare care nu poate fi răspunsă printr-un program condițional simplu sau un motor bazat pe reguli. Aceste întrebări se concentrează adesea pe predicții bazate pe o colecție de date.
+2. **Colectați și pregătiți datele**. Pentru a putea răspunde la întrebare, aveți nevoie de date. Calitatea și, uneori, cantitatea datelor vor determina cât de bine puteți răspunde la întrebarea inițială. Vizualizarea datelor este un aspect important al acestei etape. Această etapă include și împărțirea datelor în grupuri de antrenament și testare pentru a construi un model.
+3. **Alegeți o metodă de antrenament**. În funcție de întrebare și de natura datelor, trebuie să alegeți cum doriți să antrenați un model pentru a reflecta cel mai bine datele și pentru a face predicții precise.
+4. **Antrenați modelul**. Folosind datele de antrenament, veți utiliza diferiți algoritmi pentru a antrena un model să recunoască tipare în date. Modelul poate utiliza ponderi interne care pot fi ajustate pentru a privilegia anumite părți ale datelor în detrimentul altora, pentru a construi un model mai bun.
+5. **Evaluați modelul**. Utilizați date pe care modelul nu le-a mai văzut (datele de testare) din setul colectat pentru a vedea cum se comportă modelul.
+6. **Ajustarea parametrilor**. Pe baza performanței modelului, puteți relua procesul folosind parametri sau variabile diferite care controlează comportamentul algoritmilor utilizați pentru antrenarea modelului.
+7. **Predicție**. Utilizați noi intrări pentru a testa acuratețea modelului.
+
+## Ce întrebare să puneți
+
+Calculatoarele sunt deosebit de abile în descoperirea tiparelor ascunse în date. Această utilitate este foarte utilă pentru cercetătorii care au întrebări despre un anumit domeniu și care nu pot fi ușor răspunse prin crearea unui motor bazat pe reguli condiționale. De exemplu, într-o sarcină actuarială, un specialist în date ar putea construi reguli manuale despre mortalitatea fumătorilor vs. nefumătorilor.
+
+Când sunt introduse multe alte variabile în ecuație, un model ML ar putea fi mai eficient în a prezice ratele viitoare de mortalitate pe baza istoricului de sănătate din trecut. Un exemplu mai vesel ar putea fi realizarea de predicții meteorologice pentru luna aprilie într-o anumită locație, pe baza unor date precum latitudinea, longitudinea, schimbările climatice, proximitatea față de ocean, tiparele curenților de aer și altele.
+
+✅ Acest [set de diapozitive](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) despre modelele meteorologice oferă o perspectivă istorică asupra utilizării ML în analiza vremii.
+
+## Sarcini înainte de construire
+
+Înainte de a începe să construiți modelul, există mai multe sarcini pe care trebuie să le finalizați. Pentru a testa întrebarea și a forma o ipoteză bazată pe predicțiile unui model, trebuie să identificați și să configurați mai mulți factori.
+
+### Date
+
+Pentru a putea răspunde la întrebare cu un anumit grad de certitudine, aveți nevoie de o cantitate suficientă de date de tipul potrivit. Există două lucruri pe care trebuie să le faceți în acest moment:
+
+- **Colectați date**. Ținând cont de lecția anterioară despre echitatea în analiza datelor, colectați datele cu atenție. Fiți conștienți de sursele acestor date, de eventualele prejudecăți inerente și documentați originea lor.
+- **Pregătiți datele**. Există mai mulți pași în procesul de pregătire a datelor. Este posibil să fie nevoie să adunați datele și să le normalizați dacă provin din surse diverse. Puteți îmbunătăți calitatea și cantitatea datelor prin diverse metode, cum ar fi conversia șirurilor de caractere în numere (așa cum facem în [Clustering](../../5-Clustering/1-Visualize/README.md)). De asemenea, puteți genera date noi, bazate pe cele originale (așa cum facem în [Classification](../../4-Classification/1-Introduction/README.md)). Puteți curăța și edita datele (așa cum vom face înainte de lecția despre [Aplicații Web](../../3-Web-App/README.md)). În cele din urmă, este posibil să fie nevoie să le randomizați și să le amestecați, în funcție de tehnicile de antrenament.
+
+✅ După ce ați colectat și procesat datele, luați un moment pentru a verifica dacă forma lor vă va permite să abordați întrebarea propusă. Este posibil ca datele să nu funcționeze bine pentru sarcina dată, așa cum descoperim în lecțiile noastre despre [Clustering](../../5-Clustering/1-Visualize/README.md)!
+
+### Caracteristici și Țintă
+
+O [caracteristică](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) este o proprietate măsurabilă a datelor. În multe seturi de date, aceasta este exprimată ca un antet de coloană, cum ar fi „dată”, „dimensiune” sau „culoare”. Variabila caracteristică, de obicei reprezentată ca `X` în cod, reprezintă variabila de intrare care va fi utilizată pentru a antrena modelul.
+
+Ținta este ceea ce încercați să preziceți. Ținta, de obicei reprezentată ca `y` în cod, reprezintă răspunsul la întrebarea pe care încercați să o puneți datelor: în decembrie, ce **culoare** vor avea dovlecii cei mai ieftini? În San Francisco, ce cartiere vor avea cel mai bun **preț** imobiliar? Uneori, ținta este denumită și atribut etichetă.
+
+### Selectarea variabilei caracteristice
+
+🎓 **Selecția și Extracția Caracteristicilor** Cum știți ce variabilă să alegeți atunci când construiți un model? Probabil veți trece printr-un proces de selecție sau extracție a caracteristicilor pentru a alege variabilele potrivite pentru cel mai performant model. Totuși, acestea nu sunt același lucru: „Extracția caracteristicilor creează noi caracteristici din funcții ale caracteristicilor originale, în timp ce selecția caracteristicilor returnează un subset al caracteristicilor.” ([sursa](https://wikipedia.org/wiki/Feature_selection))
+
+### Vizualizați datele
+
+Un aspect important al trusei de instrumente a unui specialist în date este puterea de a vizualiza datele folosind mai multe biblioteci excelente, cum ar fi Seaborn sau MatPlotLib. Reprezentarea vizuală a datelor vă poate permite să descoperiți corelații ascunse pe care le puteți valorifica. Vizualizările dvs. vă pot ajuta, de asemenea, să descoperiți prejudecăți sau date dezechilibrate (așa cum descoperim în [Classification](../../4-Classification/2-Classifiers-1/README.md)).
+
+### Împărțiți setul de date
+
+Înainte de antrenament, trebuie să împărțiți setul de date în două sau mai multe părți de dimensiuni inegale care să reprezinte totuși bine datele.
+
+- **Antrenament**. Această parte a setului de date este utilizată pentru a antrena modelul. Acest set constituie majoritatea setului de date original.
+- **Testare**. Un set de testare este un grup independent de date, adesea extras din datele originale, pe care îl utilizați pentru a confirma performanța modelului construit.
+- **Validare**. Un set de validare este un grup mai mic de exemple independente pe care îl utilizați pentru a ajusta hiperparametrii sau arhitectura modelului, pentru a-l îmbunătăți. În funcție de dimensiunea datelor și de întrebarea pe care o puneți, este posibil să nu fie nevoie să construiți acest al treilea set (așa cum notăm în [Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md)).
+
+## Construirea unui model
+
+Folosind datele de antrenament, scopul dvs. este să construiți un model, sau o reprezentare statistică a datelor, utilizând diferiți algoritmi pentru a-l **antrena**. Antrenarea unui model îl expune la date și îi permite să facă presupuneri despre tiparele percepute pe care le descoperă, validează și acceptă sau respinge.
+
+### Decideți o metodă de antrenament
+
+În funcție de întrebare și de natura datelor, veți alege o metodă pentru a le antrena. Explorând [documentația Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - pe care o folosim în acest curs - puteți descoperi multe moduri de a antrena un model. În funcție de experiența dvs., este posibil să trebuiască să încercați mai multe metode diferite pentru a construi cel mai bun model. Este probabil să treceți printr-un proces în care specialiștii în date evaluează performanța unui model, oferindu-i date nevăzute, verificând acuratețea, prejudecățile și alte probleme care degradează calitatea, și selectând metoda de antrenament cea mai potrivită pentru sarcina dată.
+
+### Antrenați un model
+
+Cu datele de antrenament pregătite, sunteți gata să le „potriviți” pentru a crea un model. Veți observa că în multe biblioteci ML veți găsi codul „model.fit” - este momentul în care trimiteți variabila caracteristică ca un șir de valori (de obicei „X”) și o variabilă țintă (de obicei „y”).
+
+### Evaluați modelul
+
+Odată ce procesul de antrenament este complet (poate dura multe iterații sau „epoci” pentru a antrena un model mare), veți putea evalua calitatea modelului folosind date de testare pentru a-i măsura performanța. Aceste date sunt un subset al datelor originale pe care modelul nu le-a analizat anterior. Puteți imprima un tabel cu metrici despre calitatea modelului.
+
+🎓 **Potrivirea modelului**
+
+În contextul învățării automate, potrivirea modelului se referă la acuratețea funcției de bază a modelului în timp ce încearcă să analizeze date cu care nu este familiarizat.
+
+🎓 **Subantrenarea** și **supraantrenarea** sunt probleme comune care degradează calitatea modelului, deoarece modelul se potrivește fie prea puțin, fie prea bine. Acest lucru face ca modelul să facă predicții fie prea strâns aliniate, fie prea slab aliniate cu datele de antrenament. Un model supraantrenat prezice datele de antrenament prea bine, deoarece a învățat prea bine detaliile și zgomotul datelor. Un model subantrenat nu este precis, deoarece nu poate analiza corect nici datele de antrenament, nici datele pe care nu le-a „văzut” încă.
+
+
+> Infografic de [Jen Looper](https://twitter.com/jenlooper)
+
+## Ajustarea parametrilor
+
+Odată ce antrenamentul inițial este complet, observați calitatea modelului și luați în considerare îmbunătățirea acestuia prin ajustarea „hiperparametrilor”. Citiți mai multe despre proces [în documentație](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+
+## Predicție
+
+Acesta este momentul în care puteți utiliza date complet noi pentru a testa acuratețea modelului. Într-un context ML „aplicat”, în care construiți active web pentru a utiliza modelul în producție, acest proces ar putea implica colectarea de intrări de la utilizatori (de exemplu, apăsarea unui buton) pentru a seta o variabilă și a o trimite modelului pentru inferență sau evaluare.
+
+În aceste lecții, veți descoperi cum să utilizați acești pași pentru a pregăti, construi, testa, evalua și prezice - toate gesturile unui specialist în date și mai mult, pe măsură ce progresați în călătoria dvs. pentru a deveni un inginer ML „full stack”.
+
+---
+
+## 🚀Provocare
+
+Desenați un diagramă de flux care reflectă pașii unui practician ML. Unde vă vedeți acum în proces? Unde anticipați că veți întâmpina dificultăți? Ce vi se pare ușor?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și Studiu Individual
+
+Căutați online interviuri cu specialiști în date care discută despre munca lor zilnică. Iată [unul](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+
+## Temă
+
+[Intervievați un specialist în date](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/4-techniques-of-ML/assignment.md b/translations/ro/1-Introduction/4-techniques-of-ML/assignment.md
new file mode 100644
index 00000000..391c2342
--- /dev/null
+++ b/translations/ro/1-Introduction/4-techniques-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Intervievează un specialist în știința datelor
+
+## Instrucțiuni
+
+În cadrul companiei tale, al unui grup de utilizatori sau printre prieteni ori colegi de studiu, discută cu cineva care lucrează profesional ca specialist în știința datelor. Scrie un scurt eseu (500 de cuvinte) despre activitățile lor zilnice. Sunt specialiști sau lucrează pe tot "stack-ul"?
+
+## Criterii de evaluare
+
+| Criterii | Exemplu | Adecvat | Necesită îmbunătățiri |
+| -------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------- |
+| | Un eseu de lungimea corectă, cu surse atribuite, prezentat ca fișier .doc | Eseul este slab atribuit sau mai scurt decât lungimea cerută | Nu este prezentat niciun eseu |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/1-Introduction/README.md b/translations/ro/1-Introduction/README.md
new file mode 100644
index 00000000..84ce0c9b
--- /dev/null
+++ b/translations/ro/1-Introduction/README.md
@@ -0,0 +1,36 @@
+
+# Introducere în învățarea automată
+
+În această secțiune a curriculumului, vei fi introdus în conceptele de bază care stau la baza domeniului învățării automate, ce reprezintă acesta, și vei afla despre istoria sa și tehnicile pe care cercetătorii le folosesc pentru a lucra cu el. Hai să explorăm împreună această lume nouă a ML!
+
+
+> Fotografie de Bill Oxford pe Unsplash
+
+### Lecții
+
+1. [Introducere în învățarea automată](1-intro-to-ML/README.md)
+1. [Istoria învățării automate și a inteligenței artificiale](2-history-of-ML/README.md)
+1. [Echitate și învățarea automată](3-fairness/README.md)
+1. [Tehnici de învățare automată](4-techniques-of-ML/README.md)
+### Credite
+
+"Introducere în Învățarea Automată" a fost scrisă cu ♥️ de o echipă de oameni, inclusiv [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) și [Jen Looper](https://twitter.com/jenlooper)
+
+"Istoria Învățării Automate" a fost scrisă cu ♥️ de [Jen Looper](https://twitter.com/jenlooper) și [Amy Boyd](https://twitter.com/AmyKateNicho)
+
+"Echitate și Învățarea Automată" a fost scrisă cu ♥️ de [Tomomi Imura](https://twitter.com/girliemac)
+
+"Tehnici de Învățare Automată" a fost scrisă cu ♥️ de [Jen Looper](https://twitter.com/jenlooper) și [Chris Noring](https://twitter.com/softchris)
+
+---
+
+**Declinarea responsabilității**:
+Acest document a fost tradus utilizând serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/1-Tools/README.md b/translations/ro/2-Regression/1-Tools/README.md
new file mode 100644
index 00000000..c4bb9a2c
--- /dev/null
+++ b/translations/ro/2-Regression/1-Tools/README.md
@@ -0,0 +1,238 @@
+
+# Începeți cu Python și Scikit-learn pentru modele de regresie
+
+
+
+> Sketchnote de [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Această lecție este disponibilă și în R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
+
+## Introducere
+
+În aceste patru lecții, veți descoperi cum să construiți modele de regresie. Vom discuta în curând la ce sunt utile acestea. Dar înainte de a începe, asigurați-vă că aveți instrumentele potrivite pentru a începe procesul!
+
+În această lecție, veți învăța cum să:
+
+- Configurați computerul pentru sarcini locale de învățare automată.
+- Lucrați cu Jupyter notebooks.
+- Utilizați Scikit-learn, inclusiv instalarea acestuia.
+- Explorați regresia liniară printr-un exercițiu practic.
+
+## Instalări și configurări
+
+[](https://youtu.be/-DfeD2k2Kj0 "ML pentru începători - Configurați-vă instrumentele pentru a construi modele de învățare automată")
+
+> 🎥 Faceți clic pe imaginea de mai sus pentru un scurt videoclip despre configurarea computerului pentru ML.
+
+1. **Instalați Python**. Asigurați-vă că [Python](https://www.python.org/downloads/) este instalat pe computerul dvs. Veți utiliza Python pentru multe sarcini de știința datelor și învățare automată. Majoritatea sistemelor de operare includ deja o instalare Python. Există și [Pachete de codare Python](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) utile, pentru a ușura configurarea pentru unii utilizatori.
+
+ Totuși, unele utilizări ale Python necesită o anumită versiune a software-ului, în timp ce altele necesită o versiune diferită. Din acest motiv, este util să lucrați într-un [mediu virtual](https://docs.python.org/3/library/venv.html).
+
+2. **Instalați Visual Studio Code**. Asigurați-vă că Visual Studio Code este instalat pe computerul dvs. Urmați aceste instrucțiuni pentru a [instala Visual Studio Code](https://code.visualstudio.com/) pentru o instalare de bază. Veți utiliza Python în Visual Studio Code în acest curs, așa că poate doriți să vă familiarizați cu modul de [configurare a Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) pentru dezvoltarea în Python.
+
+ > Familiarizați-vă cu Python parcurgând această colecție de [module de învățare](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott)
+ >
+ > [](https://youtu.be/yyQM70vi7V8 "Configurați Python cu Visual Studio Code")
+ >
+ > 🎥 Faceți clic pe imaginea de mai sus pentru un videoclip: utilizarea Python în VS Code.
+
+3. **Instalați Scikit-learn**, urmând [aceste instrucțiuni](https://scikit-learn.org/stable/install.html). Deoarece trebuie să vă asigurați că utilizați Python 3, este recomandat să utilizați un mediu virtual. Notă: dacă instalați această bibliotecă pe un Mac cu M1, există instrucțiuni speciale pe pagina menționată mai sus.
+
+4. **Instalați Jupyter Notebook**. Va trebui să [instalați pachetul Jupyter](https://pypi.org/project/jupyter/).
+
+## Mediul dvs. de lucru pentru ML
+
+Veți utiliza **notebooks** pentru a dezvolta codul Python și a crea modele de învățare automată. Acest tip de fișier este un instrument comun pentru oamenii de știință în domeniul datelor și poate fi identificat prin sufixul sau extensia `.ipynb`.
+
+Notebooks oferă un mediu interactiv care permite dezvoltatorului să scrie cod și să adauge note și documentație în jurul codului, ceea ce este foarte util pentru proiecte experimentale sau orientate spre cercetare.
+
+[](https://youtu.be/7E-jC8FLA2E "ML pentru începători - Configurați Jupyter Notebooks pentru a începe să construiți modele de regresie")
+
+> 🎥 Faceți clic pe imaginea de mai sus pentru un scurt videoclip despre acest exercițiu.
+
+### Exercițiu - lucrați cu un notebook
+
+În acest folder, veți găsi fișierul _notebook.ipynb_.
+
+1. Deschideți _notebook.ipynb_ în Visual Studio Code.
+
+ Un server Jupyter va porni cu Python 3+ activat. Veți găsi zone ale notebook-ului care pot fi `rulate`, adică bucăți de cod. Puteți rula un bloc de cod selectând pictograma care arată ca un buton de redare.
+
+2. Selectați pictograma `md` și adăugați puțin markdown, precum și următorul text **# Bine ați venit în notebook-ul dvs.**.
+
+ Apoi, adăugați ceva cod Python.
+
+3. Scrieți **print('hello notebook')** în blocul de cod.
+4. Selectați săgeata pentru a rula codul.
+
+ Ar trebui să vedeți declarația afișată:
+
+ ```output
+ hello notebook
+ ```
+
+
+
+Puteți intercala codul cu comentarii pentru a documenta notebook-ul.
+
+✅ Gândiți-vă un minut la cât de diferit este mediul de lucru al unui dezvoltator web față de cel al unui om de știință în domeniul datelor.
+
+## Începeți cu Scikit-learn
+
+Acum că Python este configurat în mediul dvs. local și sunteți confortabil cu Jupyter notebooks, să devenim la fel de confortabili cu Scikit-learn (se pronunță `sci` ca în `science`). Scikit-learn oferă o [API extinsă](https://scikit-learn.org/stable/modules/classes.html#api-ref) pentru a vă ajuta să efectuați sarcini de ML.
+
+Conform [site-ului lor](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn este o bibliotecă open source pentru învățare automată care suportă învățarea supravegheată și nesupravegheată. De asemenea, oferă diverse instrumente pentru ajustarea modelelor, preprocesarea datelor, selecția și evaluarea modelelor, precum și multe alte utilități."
+
+În acest curs, veți utiliza Scikit-learn și alte instrumente pentru a construi modele de învățare automată pentru a efectua ceea ce numim sarcini de 'învățare automată tradițională'. Am evitat în mod deliberat rețelele neuronale și învățarea profundă, deoarece acestea sunt mai bine acoperite în viitorul nostru curriculum 'AI pentru Începători'.
+
+Scikit-learn face ușor să construiți modele și să le evaluați pentru utilizare. Este axat în principal pe utilizarea datelor numerice și conține mai multe seturi de date gata făcute pentru utilizare ca instrumente de învățare. De asemenea, include modele pre-construite pentru studenți. Să explorăm procesul de încărcare a datelor preambalate și utilizarea unui estimator pentru primul model ML cu Scikit-learn, folosind câteva date de bază.
+
+## Exercițiu - primul dvs. notebook Scikit-learn
+
+> Acest tutorial a fost inspirat de [exemplul de regresie liniară](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) de pe site-ul Scikit-learn.
+
+[](https://youtu.be/2xkXL5EUpS0 "ML pentru începători - Primul dvs. proiect de regresie liniară în Python")
+
+> 🎥 Faceți clic pe imaginea de mai sus pentru un scurt videoclip despre acest exercițiu.
+
+În fișierul _notebook.ipynb_ asociat acestei lecții, ștergeți toate celulele apăsând pe pictograma 'coș de gunoi'.
+
+În această secțiune, veți lucra cu un set mic de date despre diabet, care este inclus în Scikit-learn pentru scopuri de învățare. Imaginați-vă că doriți să testați un tratament pentru pacienții diabetici. Modelele de învățare automată ar putea să vă ajute să determinați care pacienți ar răspunde mai bine la tratament, pe baza combinațiilor de variabile. Chiar și un model de regresie foarte simplu, atunci când este vizualizat, ar putea arăta informații despre variabilele care v-ar ajuta să organizați studiile clinice teoretice.
+
+✅ Există multe tipuri de metode de regresie, iar alegerea uneia depinde de răspunsul pe care îl căutați. Dacă doriți să preziceți înălțimea probabilă a unei persoane de o anumită vârstă, ați utiliza regresia liniară, deoarece căutați o **valoare numerică**. Dacă sunteți interesat să descoperiți dacă un tip de bucătărie ar trebui considerat vegan sau nu, căutați o **încadrare în categorie**, așa că ați utiliza regresia logistică. Veți învăța mai multe despre regresia logistică mai târziu. Gândiți-vă puțin la întrebările pe care le puteți pune datelor și care dintre aceste metode ar fi mai potrivită.
+
+Să începem această sarcină.
+
+### Importați biblioteci
+
+Pentru această sarcină, vom importa câteva biblioteci:
+
+- **matplotlib**. Este un [instrument util pentru graficare](https://matplotlib.org/) și îl vom folosi pentru a crea un grafic liniar.
+- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) este o bibliotecă utilă pentru manipularea datelor numerice în Python.
+- **sklearn**. Aceasta este biblioteca [Scikit-learn](https://scikit-learn.org/stable/user_guide.html).
+
+Importați câteva biblioteci pentru a vă ajuta cu sarcinile.
+
+1. Adăugați importurile tastând următorul cod:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import numpy as np
+ from sklearn import datasets, linear_model, model_selection
+ ```
+
+ Mai sus importați `matplotlib`, `numpy` și importați `datasets`, `linear_model` și `model_selection` din `sklearn`. `model_selection` este utilizat pentru a împărți datele în seturi de antrenament și testare.
+
+### Setul de date despre diabet
+
+Setul de date [diabet](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) inclus conține 442 de mostre de date despre diabet, cu 10 variabile caracteristice, dintre care unele includ:
+
+- age: vârsta în ani
+- bmi: indicele de masă corporală
+- bp: tensiunea arterială medie
+- s1 tc: T-Cells (un tip de globule albe)
+
+✅ Acest set de date include conceptul de 'sex' ca variabilă caracteristică importantă pentru cercetarea despre diabet. Multe seturi de date medicale includ acest tip de clasificare binară. Gândiți-vă puțin la modul în care astfel de clasificări ar putea exclude anumite părți ale populației de la tratamente.
+
+Acum, încărcați datele X și y.
+
+> 🎓 Amintiți-vă, aceasta este învățare supravegheată, iar noi avem nevoie de o țintă 'y' denumită.
+
+Într-o nouă celulă de cod, încărcați setul de date despre diabet apelând `load_diabetes()`. Parametrul `return_X_y=True` semnalează că `X` va fi o matrice de date, iar `y` va fi ținta regresiei.
+
+1. Adăugați câteva comenzi print pentru a afișa forma matricei de date și primul său element:
+
+ ```python
+ X, y = datasets.load_diabetes(return_X_y=True)
+ print(X.shape)
+ print(X[0])
+ ```
+
+ Ceea ce primiți ca răspuns este un tuplu. Ceea ce faceți este să atribuiți cele două prime valori ale tuplului lui `X` și `y`, respectiv. Aflați mai multe [despre tupluri](https://wikipedia.org/wiki/Tuple).
+
+ Puteți vedea că aceste date au 442 de elemente organizate în matrici de 10 elemente:
+
+ ```text
+ (442, 10)
+ [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076
+ -0.04340085 -0.00259226 0.01990842 -0.01764613]
+ ```
+
+ ✅ Gândiți-vă puțin la relația dintre date și ținta regresiei. Regresia liniară prezice relațiile dintre caracteristica X și variabila țintă y. Puteți găsi [ținta](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) pentru setul de date despre diabet în documentație? Ce demonstrează acest set de date, având în vedere ținta?
+
+2. Apoi, selectați o parte din acest set de date pentru a o reprezenta grafic, selectând a treia coloană a setului de date. Puteți face acest lucru utilizând operatorul `:` pentru a selecta toate rândurile, apoi selectând a treia coloană utilizând indexul (2). De asemenea, puteți rearanja datele pentru a fi o matrice 2D - așa cum este necesar pentru reprezentarea grafică - utilizând `reshape(n_rows, n_columns)`. Dacă unul dintre parametri este -1, dimensiunea corespunzătoare este calculată automat.
+
+ ```python
+ X = X[:, 2]
+ X = X.reshape((-1,1))
+ ```
+
+ ✅ În orice moment, afișați datele pentru a verifica forma lor.
+
+3. Acum că aveți datele pregătite pentru a fi reprezentate grafic, puteți vedea dacă o mașină poate determina o separare logică între numerele din acest set de date. Pentru a face acest lucru, trebuie să împărțiți atât datele (X), cât și ținta (y) în seturi de testare și antrenament. Scikit-learn are o metodă simplă pentru aceasta; puteți împărți datele de testare la un anumit punct.
+
+ ```python
+ X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
+ ```
+
+4. Acum sunteți gata să antrenați modelul! Încărcați modelul de regresie liniară și antrenați-l cu seturile de antrenament X și y utilizând `model.fit()`:
+
+ ```python
+ model = linear_model.LinearRegression()
+ model.fit(X_train, y_train)
+ ```
+
+ ✅ `model.fit()` este o funcție pe care o veți întâlni în multe biblioteci ML, cum ar fi TensorFlow.
+
+5. Apoi, creați o predicție utilizând datele de testare, folosind funcția `predict()`. Aceasta va fi utilizată pentru a trasa linia între grupurile de date.
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+6. Acum este momentul să afișați datele într-un grafic. Matplotlib este un instrument foarte util pentru această sarcină. Creați un grafic scatter cu toate datele de testare X și y și utilizați predicția pentru a trasa o linie în locul cel mai potrivit, între grupările de date ale modelului.
+
+ ```python
+ plt.scatter(X_test, y_test, color='black')
+ plt.plot(X_test, y_pred, color='blue', linewidth=3)
+ plt.xlabel('Scaled BMIs')
+ plt.ylabel('Disease Progression')
+ plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
+ plt.show()
+ ```
+
+ 
+✅ Gândește-te puțin la ce se întâmplă aici. O linie dreaptă trece prin multe puncte mici de date, dar ce face exact? Poți vedea cum ar trebui să poți folosi această linie pentru a prezice unde ar trebui să se încadreze un punct de date nou, nevăzut, în raport cu axa y a graficului? Încearcă să exprimi în cuvinte utilitatea practică a acestui model.
+
+Felicitări, ai construit primul tău model de regresie liniară, ai creat o predicție cu el și ai afișat-o într-un grafic!
+
+---
+## 🚀Provocare
+
+Reprezintă grafic o variabilă diferită din acest set de date. Sugestie: editează această linie: `X = X[:,2]`. Având în vedere ținta acestui set de date, ce poți descoperi despre progresia diabetului ca boală?
+## [Test de verificare după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare & Studiu individual
+
+În acest tutorial, ai lucrat cu regresia liniară simplă, mai degrabă decât cu regresia univariată sau regresia multiplă. Citește puțin despre diferențele dintre aceste metode sau aruncă o privire la [acest videoclip](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef).
+
+Citește mai multe despre conceptul de regresie și gândește-te la ce tipuri de întrebări pot fi răspunse prin această tehnică. Urmează acest [tutorial](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) pentru a-ți aprofunda înțelegerea.
+
+## Temă
+
+[Un set de date diferit](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/1-Tools/assignment.md b/translations/ro/2-Regression/1-Tools/assignment.md
new file mode 100644
index 00000000..6449cf1b
--- /dev/null
+++ b/translations/ro/2-Regression/1-Tools/assignment.md
@@ -0,0 +1,27 @@
+
+# Regresie cu Scikit-learn
+
+## Instrucțiuni
+
+Aruncă o privire la [setul de date Linnerud](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) din Scikit-learn. Acest set de date are mai multe [ținte](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset): „Constă din trei variabile de exercițiu (date) și trei variabile fiziologice (ținte) colectate de la douăzeci de bărbați de vârstă mijlocie într-un club de fitness”.
+
+Explică, în cuvintele tale, cum să creezi un model de regresie care să reprezinte grafic relația dintre circumferința taliei și numărul de abdomene realizate. Fă același lucru pentru celelalte puncte de date din acest set de date.
+
+## Criterii de evaluare
+
+| Criteriu | Exemplu | Adecvat | Necesită îmbunătățiri |
+| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- |
+| Trimiterea unui paragraf descriptiv | Este trimis un paragraf bine scris | Sunt trimise câteva propoziții | Nu este furnizată nicio descriere |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/1-Tools/solution/Julia/README.md b/translations/ro/2-Regression/1-Tools/solution/Julia/README.md
new file mode 100644
index 00000000..8c61f87b
--- /dev/null
+++ b/translations/ro/2-Regression/1-Tools/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/2-Data/README.md b/translations/ro/2-Regression/2-Data/README.md
new file mode 100644
index 00000000..31a96927
--- /dev/null
+++ b/translations/ro/2-Regression/2-Data/README.md
@@ -0,0 +1,226 @@
+
+# Construiește un model de regresie folosind Scikit-learn: pregătirea și vizualizarea datelor
+
+
+
+Infografic realizat de [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Această lecție este disponibilă și în R!](../../../../2-Regression/2-Data/solution/R/lesson_2.html)
+
+## Introducere
+
+Acum că ai configurat instrumentele necesare pentru a începe să construiești modele de învățare automată cu Scikit-learn, ești pregătit să începi să pui întrebări datelor tale. Pe măsură ce lucrezi cu date și aplici soluții de ML, este foarte important să înțelegi cum să pui întrebarea potrivită pentru a valorifica pe deplin potențialul setului tău de date.
+
+În această lecție vei învăța:
+
+- Cum să pregătești datele pentru construirea modelului.
+- Cum să folosești Matplotlib pentru vizualizarea datelor.
+
+## Punerea întrebării potrivite datelor tale
+
+Întrebarea la care ai nevoie de răspuns va determina ce tip de algoritmi ML vei utiliza. Iar calitatea răspunsului pe care îl primești va depinde în mare măsură de natura datelor tale.
+
+Aruncă o privire la [datele](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) furnizate pentru această lecție. Poți deschide acest fișier .csv în VS Code. O privire rapidă arată imediat că există spații goale și un amestec de date text și numerice. Există, de asemenea, o coloană ciudată numită 'Package', unde datele sunt un amestec între 'sacks', 'bins' și alte valori. Datele, de fapt, sunt destul de dezordonate.
+
+[](https://youtu.be/5qGjczWTrDQ "ML pentru începători - Cum să analizezi și să cureți un set de date")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre pregătirea datelor pentru această lecție.
+
+De fapt, nu este foarte comun să primești un set de date complet pregătit pentru a crea un model ML direct. În această lecție, vei învăța cum să pregătești un set de date brut folosind biblioteci standard Python. De asemenea, vei învăța diverse tehnici pentru vizualizarea datelor.
+
+## Studiu de caz: 'piața dovlecilor'
+
+În acest folder vei găsi un fișier .csv în folderul rădăcină `data` numit [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv), care include 1757 linii de date despre piața dovlecilor, grupate pe orașe. Acestea sunt date brute extrase din [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distribuite de Departamentul Agriculturii al Statelor Unite.
+
+### Pregătirea datelor
+
+Aceste date sunt în domeniul public. Ele pot fi descărcate în mai multe fișiere separate, pe orașe, de pe site-ul USDA. Pentru a evita prea multe fișiere separate, am concatenat toate datele pe orașe într-un singur fișier, astfel încât am _pregătit_ deja puțin datele. Acum, să aruncăm o privire mai atentă asupra datelor.
+
+### Datele despre dovleci - concluzii inițiale
+
+Ce observi despre aceste date? Ai văzut deja că există un amestec de text, numere, spații goale și valori ciudate pe care trebuie să le înțelegi.
+
+Ce întrebare poți pune acestor date, folosind o tehnică de regresie? Ce zici de "Prezice prețul unui dovleac de vânzare într-o anumită lună"? Privind din nou datele, există câteva modificări pe care trebuie să le faci pentru a crea structura de date necesară pentru această sarcină.
+
+## Exercițiu - analizează datele despre dovleci
+
+Să folosim [Pandas](https://pandas.pydata.org/), (numele vine de la `Python Data Analysis`) un instrument foarte util pentru modelarea datelor, pentru a analiza și pregăti aceste date despre dovleci.
+
+### Mai întâi, verifică datele lipsă
+
+Mai întâi va trebui să iei măsuri pentru a verifica datele lipsă:
+
+1. Convertește datele în format de lună (acestea sunt date din SUA, deci formatul este `MM/DD/YYYY`).
+2. Extrage luna într-o coloană nouă.
+
+Deschide fișierul _notebook.ipynb_ în Visual Studio Code și importă foaia de calcul într-un nou dataframe Pandas.
+
+1. Folosește funcția `head()` pentru a vizualiza primele cinci rânduri.
+
+ ```python
+ import pandas as pd
+ pumpkins = pd.read_csv('../data/US-pumpkins.csv')
+ pumpkins.head()
+ ```
+
+ ✅ Ce funcție ai folosi pentru a vizualiza ultimele cinci rânduri?
+
+1. Verifică dacă există date lipsă în dataframe-ul curent:
+
+ ```python
+ pumpkins.isnull().sum()
+ ```
+
+ Există date lipsă, dar poate că nu vor conta pentru sarcina de față.
+
+1. Pentru a face dataframe-ul mai ușor de utilizat, selectează doar coloanele de care ai nevoie, folosind funcția `loc`, care extrage din dataframe-ul original un grup de rânduri (transmise ca prim parametru) și coloane (transmise ca al doilea parametru). Expresia `:` în cazul de mai jos înseamnă "toate rândurile".
+
+ ```python
+ columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
+ pumpkins = pumpkins.loc[:, columns_to_select]
+ ```
+
+### În al doilea rând, determină prețul mediu al dovlecilor
+
+Gândește-te cum să determini prețul mediu al unui dovleac într-o anumită lună. Ce coloane ai alege pentru această sarcină? Indiciu: vei avea nevoie de 3 coloane.
+
+Soluție: ia media coloanelor `Low Price` și `High Price` pentru a popula noua coloană Price și convertește coloana Date astfel încât să afișeze doar luna. Din fericire, conform verificării de mai sus, nu există date lipsă pentru date sau prețuri.
+
+1. Pentru a calcula media, adaugă următorul cod:
+
+ ```python
+ price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
+
+ month = pd.DatetimeIndex(pumpkins['Date']).month
+
+ ```
+
+ ✅ Simte-te liber să afișezi orice date dorești să verifici folosind `print(month)`.
+
+2. Acum, copiază datele convertite într-un nou dataframe Pandas:
+
+ ```python
+ new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
+ ```
+
+ Afișarea dataframe-ului va arăta un set de date curat și ordonat pe care poți construi noul model de regresie.
+
+### Dar stai! E ceva ciudat aici
+
+Dacă te uiți la coloana `Package`, dovlecii sunt vânduți în multe configurații diferite. Unii sunt vânduți în măsuri de '1 1/9 bushel', alții în măsuri de '1/2 bushel', unii per dovleac, alții per kilogram, și unii în cutii mari cu lățimi variabile.
+
+> Dovlecii par foarte greu de cântărit în mod consistent
+
+Analizând datele originale, este interesant că orice are `Unit of Sale` egal cu 'EACH' sau 'PER BIN' are, de asemenea, tipul `Package` per inch, per bin sau 'each'. Dovlecii par foarte greu de cântărit în mod consistent, așa că să-i filtrăm selectând doar dovlecii cu șirul 'bushel' în coloana `Package`.
+
+1. Adaugă un filtru în partea de sus a fișierului, sub importul inițial .csv:
+
+ ```python
+ pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
+ ```
+
+ Dacă afișezi datele acum, poți vedea că obții doar cele aproximativ 415 rânduri de date care conțin dovleci la bushel.
+
+### Dar stai! Mai e ceva de făcut
+
+Ai observat că cantitatea de bushel variază pe rând? Trebuie să normalizezi prețurile astfel încât să afișezi prețurile per bushel, așa că fă niște calcule pentru a le standardiza.
+
+1. Adaugă aceste linii după blocul care creează dataframe-ul new_pumpkins:
+
+ ```python
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9)
+
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2)
+ ```
+
+✅ Conform [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), greutatea unui bushel depinde de tipul de produs, deoarece este o măsurare a volumului. "Un bushel de roșii, de exemplu, ar trebui să cântărească 56 de livre... Frunzele și verdețurile ocupă mai mult spațiu cu mai puțină greutate, astfel încât un bushel de spanac cântărește doar 20 de livre." Este destul de complicat! Să nu ne deranjăm cu conversia bushel-livre și să stabilim prețul per bushel. Tot acest studiu despre bushel-uri de dovleci, însă, arată cât de important este să înțelegi natura datelor tale!
+
+Acum, poți analiza prețurile per unitate pe baza măsurării bushel-ului. Dacă afișezi datele încă o dată, poți vedea cum sunt standardizate.
+
+✅ Ai observat că dovlecii vânduți la jumătate de bushel sunt foarte scumpi? Poți să-ți dai seama de ce? Indiciu: dovlecii mici sunt mult mai scumpi decât cei mari, probabil pentru că sunt mult mai mulți per bushel, având în vedere spațiul neutilizat ocupat de un dovleac mare pentru plăcintă.
+
+## Strategii de vizualizare
+
+O parte din rolul unui specialist în date este să demonstreze calitatea și natura datelor cu care lucrează. Pentru a face acest lucru, ei creează adesea vizualizări interesante, cum ar fi diagrame, grafice și tabele, care arată diferite aspecte ale datelor. În acest fel, pot arăta vizual relații și lacune care altfel ar fi greu de descoperit.
+
+[](https://youtu.be/SbUkxH6IJo0 "ML pentru începători - Cum să vizualizezi datele cu Matplotlib")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre vizualizarea datelor pentru această lecție.
+
+Vizualizările pot ajuta, de asemenea, la determinarea tehnicii de învățare automată cea mai potrivită pentru date. Un scatterplot care pare să urmeze o linie, de exemplu, indică faptul că datele sunt un candidat bun pentru un exercițiu de regresie liniară.
+
+O bibliotecă de vizualizare a datelor care funcționează bine în notebook-urile Jupyter este [Matplotlib](https://matplotlib.org/) (pe care ai văzut-o și în lecția anterioară).
+
+> Obține mai multă experiență cu vizualizarea datelor în [aceste tutoriale](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott).
+
+## Exercițiu - experimentează cu Matplotlib
+
+Încearcă să creezi câteva diagrame de bază pentru a afișa noul dataframe pe care tocmai l-ai creat. Ce ar arăta o diagramă liniară de bază?
+
+1. Importă Matplotlib în partea de sus a fișierului, sub importul Pandas:
+
+ ```python
+ import matplotlib.pyplot as plt
+ ```
+
+1. Rulează din nou întregul notebook pentru a-l actualiza.
+1. În partea de jos a notebook-ului, adaugă o celulă pentru a afișa datele sub formă de boxplot:
+
+ ```python
+ price = new_pumpkins.Price
+ month = new_pumpkins.Month
+ plt.scatter(price, month)
+ plt.show()
+ ```
+
+ 
+
+ Este aceasta o diagramă utilă? Te surprinde ceva la ea?
+
+ Nu este foarte utilă, deoarece tot ce face este să afișeze datele tale ca o răspândire de puncte într-o lună dată.
+
+### Fă-o utilă
+
+Pentru a obține diagrame care să afișeze date utile, de obicei trebuie să grupezi datele cumva. Să încercăm să creăm o diagramă în care axa y să afișeze lunile, iar datele să demonstreze distribuția datelor.
+
+1. Adaugă o celulă pentru a crea o diagramă de bare grupată:
+
+ ```python
+ new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
+ plt.ylabel("Pumpkin Price")
+ ```
+
+ 
+
+ Aceasta este o vizualizare a datelor mai utilă! Pare să indice că cel mai mare preț pentru dovleci apare în septembrie și octombrie. Se potrivește aceasta cu așteptările tale? De ce sau de ce nu?
+
+---
+
+## 🚀Provocare
+
+Explorează diferitele tipuri de vizualizări pe care le oferă Matplotlib. Care tipuri sunt cele mai potrivite pentru problemele de regresie?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Aruncă o privire la numeroasele moduri de a vizualiza datele. Fă o listă cu diversele biblioteci disponibile și notează care sunt cele mai bune pentru anumite tipuri de sarcini, de exemplu vizualizări 2D vs. vizualizări 3D. Ce descoperi?
+
+## Temă
+
+[Explorarea vizualizării](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/2-Data/assignment.md b/translations/ro/2-Regression/2-Data/assignment.md
new file mode 100644
index 00000000..edc464f7
--- /dev/null
+++ b/translations/ro/2-Regression/2-Data/assignment.md
@@ -0,0 +1,22 @@
+
+# Explorarea Vizualizărilor
+
+Există mai multe biblioteci disponibile pentru vizualizarea datelor. Creează câteva vizualizări folosind datele despre Dovleci din această lecție, utilizând matplotlib și seaborn într-un notebook de exemplu. Care biblioteci sunt mai ușor de utilizat?
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | --------- | -------- | --------------------- |
+| | Un notebook este trimis cu două explorări/vizualizări | Un notebook este trimis cu o explorare/vizualizare | Un notebook nu este trimis |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/2-Data/solution/Julia/README.md b/translations/ro/2-Regression/2-Data/solution/Julia/README.md
new file mode 100644
index 00000000..8f3111cc
--- /dev/null
+++ b/translations/ro/2-Regression/2-Data/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/3-Linear/README.md b/translations/ro/2-Regression/3-Linear/README.md
new file mode 100644
index 00000000..3e080fc2
--- /dev/null
+++ b/translations/ro/2-Regression/3-Linear/README.md
@@ -0,0 +1,381 @@
+
+# Construirea unui model de regresie folosind Scikit-learn: patru metode de regresie
+
+
+> Infografic de [Dasani Madipalli](https://twitter.com/dasani_decoded)
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Această lecție este disponibilă și în R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### Introducere
+
+Până acum, ai explorat ce este regresia folosind date de exemplu colectate din setul de date privind prețurile dovlecilor, pe care îl vom folosi pe parcursul acestei lecții. De asemenea, ai vizualizat aceste date folosind Matplotlib.
+
+Acum ești pregătit să aprofundezi regresia pentru ML. Deși vizualizarea te ajută să înțelegi datele, adevărata putere a Machine Learning vine din _antrenarea modelelor_. Modelele sunt antrenate pe date istorice pentru a captura automat dependențele dintre date și permit prezicerea rezultatelor pentru date noi, pe care modelul nu le-a văzut anterior.
+
+În această lecție, vei învăța mai multe despre două tipuri de regresie: _regresia liniară de bază_ și _regresia polinomială_, împreună cu o parte din matematica care stă la baza acestor tehnici. Aceste modele ne vor permite să prezicem prețurile dovlecilor în funcție de diferite date de intrare.
+
+[](https://youtu.be/CRxFT8oTDMg "ML pentru începători - Înțelegerea regresiei liniare")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre regresia liniară.
+
+> Pe parcursul acestui curriculum, presupunem cunoștințe minime de matematică și încercăm să o facem accesibilă pentru studenții din alte domenii, așa că fii atent la notițe, 🧮 explicații, diagrame și alte instrumente de învățare care să ajute la înțelegere.
+
+### Cerințe preliminare
+
+Ar trebui să fii familiarizat până acum cu structura datelor despre dovleci pe care le examinăm. Le poți găsi preîncărcate și pre-curățate în fișierul _notebook.ipynb_ al acestei lecții. În fișier, prețul dovlecilor este afișat per bushel într-un nou cadru de date. Asigură-te că poți rula aceste notebook-uri în kernel-uri din Visual Studio Code.
+
+### Pregătire
+
+Ca o reamintire, încarci aceste date pentru a pune întrebări despre ele.
+
+- Care este cel mai bun moment pentru a cumpăra dovleci?
+- Ce preț pot să mă aștept pentru o cutie de dovleci miniaturali?
+- Ar trebui să îi cumpăr în coșuri de jumătate de bushel sau în cutii de 1 1/9 bushel?
+Să continuăm să explorăm aceste date.
+
+În lecția anterioară, ai creat un cadru de date Pandas și l-ai populat cu o parte din setul de date original, standardizând prețurile pe bushel. Procedând astfel, însă, ai reușit să colectezi doar aproximativ 400 de puncte de date și doar pentru lunile de toamnă.
+
+Aruncă o privire la datele preîncărcate în notebook-ul care însoțește această lecție. Datele sunt preîncărcate și un grafic inițial de tip scatterplot este creat pentru a arăta datele lunare. Poate putem obține mai multe detalii despre natura datelor curățându-le mai mult.
+
+## O linie de regresie liniară
+
+Așa cum ai învățat în Lecția 1, scopul unui exercițiu de regresie liniară este să poți trasa o linie pentru:
+
+- **Afișarea relațiilor dintre variabile**. Afișarea relației dintre variabile
+- **Realizarea de predicții**. Realizarea de predicții precise despre unde ar cădea un nou punct de date în raport cu acea linie.
+
+Este tipic pentru **Regresia Least-Squares** să traseze acest tip de linie. Termenul 'least-squares' înseamnă că toate punctele de date din jurul liniei de regresie sunt ridicate la pătrat și apoi adunate. Ideal, suma finală este cât mai mică posibil, deoarece dorim un număr redus de erori, sau `least-squares`.
+
+Facem acest lucru deoarece dorim să modelăm o linie care are cea mai mică distanță cumulativă față de toate punctele noastre de date. De asemenea, ridicăm termenii la pătrat înainte de a-i aduna, deoarece ne preocupă magnitudinea lor, nu direcția.
+
+> **🧮 Arată-mi matematica**
+>
+> Această linie, numită _linia de cea mai bună potrivire_, poate fi exprimată prin [o ecuație](https://en.wikipedia.org/wiki/Simple_linear_regression):
+>
+> ```
+> Y = a + bX
+> ```
+>
+> `X` este 'variabila explicativă'. `Y` este 'variabila dependentă'. Panta liniei este `b`, iar `a` este interceptul pe axa Y, care se referă la valoarea lui `Y` când `X = 0`.
+>
+>
+>
+> Mai întâi, calculează panta `b`. Infografic de [Jen Looper](https://twitter.com/jenlooper)
+>
+> Cu alte cuvinte, referindu-ne la întrebarea originală despre datele dovlecilor: "prezice prețul unui dovleac per bushel în funcție de lună", `X` ar fi prețul, iar `Y` ar fi luna vânzării.
+>
+>
+>
+> Calculează valoarea lui Y. Dacă plătești în jur de 4 dolari, trebuie să fie aprilie! Infografic de [Jen Looper](https://twitter.com/jenlooper)
+>
+> Matematica care calculează linia trebuie să demonstreze panta liniei, care depinde și de interceptul, sau unde se află `Y` când `X = 0`.
+>
+> Poți observa metoda de calcul pentru aceste valori pe site-ul [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Vizitează și [acest calculator Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) pentru a vedea cum valorile numerelor influențează linia.
+
+## Corelație
+
+Un alt termen de înțeles este **Coeficientul de Corelație** între variabilele X și Y date. Folosind un scatterplot, poți vizualiza rapid acest coeficient. Un grafic cu puncte de date distribuite într-o linie ordonată are o corelație mare, dar un grafic cu puncte de date distribuite aleatoriu între X și Y are o corelație mică.
+
+Un model de regresie liniară bun va fi unul care are un Coeficient de Corelație mare (mai aproape de 1 decât de 0) folosind metoda Least-Squares Regression cu o linie de regresie.
+
+✅ Rulează notebook-ul care însoțește această lecție și uită-te la scatterplot-ul Lună-Preț. Datele care asociază Luna cu Prețul pentru vânzările de dovleci par să aibă o corelație mare sau mică, conform interpretării tale vizuale a scatterplot-ului? Se schimbă acest lucru dacă folosești o măsură mai detaliată în loc de `Lună`, de exemplu *ziua anului* (adică numărul de zile de la începutul anului)?
+
+În codul de mai jos, vom presupune că am curățat datele și am obținut un cadru de date numit `new_pumpkins`, similar cu următorul:
+
+ID | Lună | ZiuaAnului | Tip | Oraș | Pachet | Preț Minim | Preț Maxim | Preț
+---|------|------------|-----|------|--------|------------|------------|------
+70 | 9 | 267 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+
+> Codul pentru curățarea datelor este disponibil în [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Am efectuat aceleași pași de curățare ca în lecția anterioară și am calculat coloana `ZiuaAnului` folosind următoarea expresie:
+
+```python
+day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
+```
+
+Acum că ai o înțelegere a matematicii din spatele regresiei liniare, să creăm un model de regresie pentru a vedea dacă putem prezice care pachet de dovleci va avea cele mai bune prețuri. Cineva care cumpără dovleci pentru o grădină tematică de sărbători ar putea dori aceste informații pentru a optimiza achizițiile de pachete de dovleci pentru grădină.
+
+## Căutarea corelației
+
+[](https://youtu.be/uoRq-lW2eQo "ML pentru începători - Căutarea corelației: cheia regresiei liniare")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre corelație.
+
+Din lecția anterioară, probabil ai observat că prețul mediu pentru diferite luni arată astfel:
+
+
+
+Acest lucru sugerează că ar trebui să existe o anumită corelație, iar noi putem încerca să antrenăm un model de regresie liniară pentru a prezice relația dintre `Lună` și `Preț`, sau dintre `ZiuaAnului` și `Preț`. Iată scatterplot-ul care arată ultima relație:
+
+
+
+Să vedem dacă există o corelație folosind funcția `corr`:
+
+```python
+print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
+print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
+```
+
+Se pare că corelația este destul de mică, -0.15 pentru `Lună` și -0.17 pentru `ZiuaAnului`, dar ar putea exista o altă relație importantă. Se pare că există diferite grupuri de prețuri corespunzătoare diferitelor varietăți de dovleci. Pentru a confirma această ipoteză, să reprezentăm fiecare categorie de dovleci folosind o culoare diferită. Prin transmiterea unui parametru `ax` funcției de plotare `scatter`, putem reprezenta toate punctele pe același grafic:
+
+```python
+ax=None
+colors = ['red','blue','green','yellow']
+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)
+```
+
+
+
+Investigația noastră sugerează că varietatea are un efect mai mare asupra prețului general decât data efectivă de vânzare. Putem vedea acest lucru cu un grafic de tip bară:
+
+```python
+new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
+```
+
+
+
+Să ne concentrăm pentru moment doar pe o singură varietate de dovleci, 'tip plăcintă', și să vedem ce efect are data asupra prețului:
+
+```python
+pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
+pie_pumpkins.plot.scatter('DayOfYear','Price')
+```
+
+
+Dacă acum calculăm corelația dintre `Preț` și `ZiuaAnului` folosind funcția `corr`, vom obține ceva în jur de `-0.27` - ceea ce înseamnă că antrenarea unui model predictiv are sens.
+
+> Înainte de a antrena un model de regresie liniară, este important să ne asigurăm că datele noastre sunt curate. Regresia liniară nu funcționează bine cu valori lipsă, astfel încât este logic să eliminăm toate celulele goale:
+
+```python
+pie_pumpkins.dropna(inplace=True)
+pie_pumpkins.info()
+```
+
+O altă abordare ar fi să completăm valorile lipsă cu valorile medii din coloana corespunzătoare.
+
+## Regresie liniară simplă
+
+[](https://youtu.be/e4c_UP2fSjg "ML pentru începători - Regresie liniară și polinomială folosind Scikit-learn")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre regresia liniară și polinomială.
+
+Pentru a antrena modelul nostru de regresie liniară, vom folosi biblioteca **Scikit-learn**.
+
+```python
+from sklearn.linear_model import LinearRegression
+from sklearn.metrics import mean_squared_error
+from sklearn.model_selection import train_test_split
+```
+
+Începem prin separarea valorilor de intrare (caracteristici) și a ieșirii așteptate (eticheta) în array-uri numpy separate:
+
+```python
+X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
+y = pie_pumpkins['Price']
+```
+
+> Observă că a trebuit să aplicăm `reshape` pe datele de intrare pentru ca pachetul de regresie liniară să le înțeleagă corect. Regresia liniară așteaptă un array 2D ca intrare, unde fiecare rând al array-ului corespunde unui vector de caracteristici de intrare. În cazul nostru, deoarece avem doar o singură intrare - avem nevoie de un array cu forma N×1, unde N este dimensiunea setului de date.
+
+Apoi, trebuie să împărțim datele în seturi de antrenament și test, astfel încât să putem valida modelul nostru după antrenament:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+```
+
+În cele din urmă, antrenarea modelului de regresie liniară propriu-zis durează doar două linii de cod. Definim obiectul `LinearRegression` și îl ajustăm la datele noastre folosind metoda `fit`:
+
+```python
+lin_reg = LinearRegression()
+lin_reg.fit(X_train,y_train)
+```
+
+Obiectul `LinearRegression` după ajustare conține toate coeficienții regresiei, care pot fi accesați folosind proprietatea `.coef_`. În cazul nostru, există doar un coeficient, care ar trebui să fie în jur de `-0.017`. Acest lucru înseamnă că prețurile par să scadă puțin în timp, dar nu prea mult, aproximativ 2 cenți pe zi. De asemenea, putem accesa punctul de intersecție al regresiei cu axa Y folosind `lin_reg.intercept_` - va fi în jur de `21` în cazul nostru, indicând prețul de la începutul anului.
+
+Pentru a vedea cât de precis este modelul nostru, putem prezice prețurile pe un set de date de test și apoi măsura cât de apropiate sunt predicțiile noastre de valorile așteptate. Acest lucru poate fi realizat folosind metrica mean square error (MSE), care este media tuturor diferențelor pătrate dintre valoarea așteptată și cea prezisă.
+
+```python
+pred = lin_reg.predict(X_test)
+
+mse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+```
+Eroarea noastră pare să fie în jur de 2 puncte, ceea ce reprezintă ~17%. Nu prea bine. Un alt indicator al calității modelului este **coeficientul de determinare**, care poate fi obținut astfel:
+
+```python
+score = lin_reg.score(X_train,y_train)
+print('Model determination: ', score)
+```
+Dacă valoarea este 0, înseamnă că modelul nu ia în considerare datele de intrare și acționează ca *cel mai slab predictor liniar*, care este pur și simplu valoarea medie a rezultatului. Valoarea de 1 înseamnă că putem prezice perfect toate rezultatele așteptate. În cazul nostru, coeficientul este în jur de 0.06, ceea ce este destul de scăzut.
+
+Putem, de asemenea, să reprezentăm grafic datele de testare împreună cu linia de regresie pentru a vedea mai bine cum funcționează regresia în cazul nostru:
+
+```python
+plt.scatter(X_test,y_test)
+plt.plot(X_test,pred)
+```
+
+
+
+## Regresie Polinomială
+
+Un alt tip de regresie liniară este regresia polinomială. Deși uneori există o relație liniară între variabile - cu cât dovleacul este mai mare în volum, cu atât prețul este mai mare - uneori aceste relații nu pot fi reprezentate ca un plan sau o linie dreaptă.
+
+✅ Iată [câteva exemple](https://online.stat.psu.edu/stat501/lesson/9/9.8) de date care ar putea utiliza regresia polinomială.
+
+Privește din nou relația dintre Dată și Preț. Acest scatterplot pare să fie analizat neapărat printr-o linie dreaptă? Nu pot prețurile să fluctueze? În acest caz, poți încerca regresia polinomială.
+
+✅ Polinoamele sunt expresii matematice care pot consta din una sau mai multe variabile și coeficienți.
+
+Regresia polinomială creează o linie curbată pentru a se potrivi mai bine datelor neliniare. În cazul nostru, dacă includem o variabilă pătratică `DayOfYear` în datele de intrare, ar trebui să putem ajusta datele noastre cu o curbă parabolică, care va avea un minim într-un anumit punct al anului.
+
+Scikit-learn include o [API pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) utilă pentru a combina diferite etape de procesare a datelor. Un **pipeline** este un lanț de **estimatori**. În cazul nostru, vom crea un pipeline care mai întâi adaugă caracteristici polinomiale modelului nostru, apoi antrenează regresia:
+
+```python
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.pipeline import make_pipeline
+
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+
+pipeline.fit(X_train,y_train)
+```
+
+Utilizarea `PolynomialFeatures(2)` înseamnă că vom include toate polinoamele de gradul doi din datele de intrare. În cazul nostru, aceasta va însemna doar `DayOfYear`2, dar având două variabile de intrare X și Y, aceasta va adăuga X2, XY și Y2. Putem folosi și polinoame de grad mai mare dacă dorim.
+
+Pipeline-urile pot fi utilizate în același mod ca obiectul original `LinearRegression`, adică putem aplica `fit` pipeline-ului și apoi utiliza `predict` pentru a obține rezultatele predicției. Iată graficul care arată datele de testare și curba de aproximare:
+
+
+
+Folosind regresia polinomială, putem obține un MSE ușor mai mic și un coeficient de determinare mai mare, dar nu semnificativ. Trebuie să luăm în considerare alte caracteristici!
+
+> Poți observa că prețurile minime ale dovlecilor sunt observate undeva în jurul Halloween-ului. Cum poți explica acest lucru?
+
+🎃 Felicitări, tocmai ai creat un model care poate ajuta la prezicerea prețului dovlecilor pentru plăcintă. Probabil poți repeta aceeași procedură pentru toate tipurile de dovleci, dar ar fi obositor. Să învățăm acum cum să luăm în considerare varietatea dovlecilor în modelul nostru!
+
+## Caracteristici Categoriale
+
+În lumea ideală, ne dorim să putem prezice prețurile pentru diferite varietăți de dovleci folosind același model. Totuși, coloana `Variety` este oarecum diferită de coloane precum `Month`, deoarece conține valori non-numerice. Astfel de coloane sunt numite **categoriale**.
+
+[](https://youtu.be/DYGliioIAE0 "ML pentru începători - Predicții cu caracteristici categoriale folosind regresia liniară")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre utilizarea caracteristicilor categoriale.
+
+Aici poți vedea cum prețul mediu depinde de varietate:
+
+
+
+Pentru a lua în considerare varietatea, mai întâi trebuie să o convertim într-o formă numerică, sau să o **codificăm**. Există mai multe moduri în care putem face acest lucru:
+
+* Codificarea numerică simplă va construi un tabel cu diferite varietăți și apoi va înlocui numele varietății cu un index din acel tabel. Aceasta nu este cea mai bună idee pentru regresia liniară, deoarece regresia liniară ia valoarea numerică reală a indexului și o adaugă la rezultat, înmulțind-o cu un coeficient. În cazul nostru, relația dintre numărul indexului și preț este clar neliniară, chiar dacă ne asigurăm că indicii sunt ordonați într-un mod specific.
+* **Codificarea one-hot** va înlocui coloana `Variety` cu 4 coloane diferite, câte una pentru fiecare varietate. Fiecare coloană va conține `1` dacă rândul corespunzător este de o anumită varietate și `0` în caz contrar. Aceasta înseamnă că vor exista patru coeficienți în regresia liniară, câte unul pentru fiecare varietate de dovleac, responsabili pentru "prețul de pornire" (sau mai degrabă "prețul suplimentar") pentru acea varietate specifică.
+
+Codul de mai jos arată cum putem codifica one-hot o varietate:
+
+```python
+pd.get_dummies(new_pumpkins['Variety'])
+```
+
+ ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
+----|-----------|-----------|--------------------------|----------
+70 | 0 | 0 | 0 | 1
+71 | 0 | 0 | 0 | 1
+... | ... | ... | ... | ...
+1738 | 0 | 1 | 0 | 0
+1739 | 0 | 1 | 0 | 0
+1740 | 0 | 1 | 0 | 0
+1741 | 0 | 1 | 0 | 0
+1742 | 0 | 1 | 0 | 0
+
+Pentru a antrena regresia liniară folosind varietatea codificată one-hot ca intrare, trebuie doar să inițializăm corect datele `X` și `y`:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety'])
+y = new_pumpkins['Price']
+```
+
+Restul codului este același cu cel pe care l-am folosit mai sus pentru a antrena regresia liniară. Dacă încerci, vei vedea că eroarea medie pătratică este aproximativ aceeași, dar obținem un coeficient de determinare mult mai mare (~77%). Pentru a obține predicții și mai precise, putem lua în considerare mai multe caracteristici categoriale, precum și caracteristici numerice, cum ar fi `Month` sau `DayOfYear`. Pentru a obține un array mare de caracteristici, putem folosi `join`:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+```
+
+Aici luăm în considerare și `City` și tipul de `Package`, ceea ce ne oferă un MSE de 2.84 (10%) și un coeficient de determinare de 0.94!
+
+## Punând totul împreună
+
+Pentru a crea cel mai bun model, putem folosi date combinate (categoriale codificate one-hot + numerice) din exemplul de mai sus împreună cu regresia polinomială. Iată codul complet pentru confortul tău:
+
+```python
+# set up training data
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+
+# make train-test split
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+# setup and train the pipeline
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+pipeline.fit(X_train,y_train)
+
+# predict results for test data
+pred = pipeline.predict(X_test)
+
+# calculate MSE and determination
+mse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+Acest lucru ar trebui să ne ofere cel mai bun coeficient de determinare de aproape 97% și MSE=2.23 (~8% eroare de predicție).
+
+| Model | MSE | Determinare |
+|-------|-----|-------------|
+| `DayOfYear` Liniar | 2.77 (17.2%) | 0.07 |
+| `DayOfYear` Polinomial | 2.73 (17.0%) | 0.08 |
+| `Variety` Liniar | 5.24 (19.7%) | 0.77 |
+| Toate caracteristicile Liniar | 2.84 (10.5%) | 0.94 |
+| Toate caracteristicile Polinomial | 2.23 (8.25%) | 0.97 |
+
+🏆 Bravo! Ai creat patru modele de regresie într-o singură lecție și ai îmbunătățit calitatea modelului la 97%. În secțiunea finală despre regresie, vei învăța despre regresia logistică pentru a determina categorii.
+
+---
+
+## 🚀Provocare
+
+Testează mai multe variabile diferite în acest notebook pentru a vedea cum corelația corespunde cu acuratețea modelului.
+
+## [Quiz post-lectură](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare & Studiu Individual
+
+În această lecție am învățat despre regresia liniară. Există alte tipuri importante de regresie. Citește despre tehnicile Stepwise, Ridge, Lasso și Elasticnet. Un curs bun pentru a învăța mai multe este [cursul de învățare statistică de la Stanford](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
+
+## Temă
+
+[Construiește un model](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/3-Linear/assignment.md b/translations/ro/2-Regression/3-Linear/assignment.md
new file mode 100644
index 00000000..6ad250eb
--- /dev/null
+++ b/translations/ro/2-Regression/3-Linear/assignment.md
@@ -0,0 +1,25 @@
+
+# Crearea unui Model de Regresie
+
+## Instrucțiuni
+
+În această lecție, ți s-a arătat cum să construiești un model folosind atât Regresia Liniară, cât și Regresia Polinomială. Folosind aceste cunoștințe, găsește un set de date sau utilizează unul dintre seturile încorporate ale Scikit-learn pentru a construi un model nou. Explică în notebook-ul tău de ce ai ales tehnica respectivă și demonstrează acuratețea modelului tău. Dacă modelul nu este precis, explică de ce.
+
+## Criterii de Evaluare
+
+| Criteriu | Exemplară | Adecvat | Necesită Îmbunătățiri |
+| -------- | ------------------------------------------------------------ | -------------------------- | ------------------------------- |
+| | prezintă un notebook complet cu o soluție bine documentată | soluția este incompletă | soluția este defectuoasă sau are erori |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/3-Linear/solution/Julia/README.md b/translations/ro/2-Regression/3-Linear/solution/Julia/README.md
new file mode 100644
index 00000000..83f72890
--- /dev/null
+++ b/translations/ro/2-Regression/3-Linear/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/4-Logistic/README.md b/translations/ro/2-Regression/4-Logistic/README.md
new file mode 100644
index 00000000..490adcb7
--- /dev/null
+++ b/translations/ro/2-Regression/4-Logistic/README.md
@@ -0,0 +1,412 @@
+
+# Regresie logistică pentru a prezice categorii
+
+
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Această lecție este disponibilă și în R!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html)
+
+## Introducere
+
+În această ultimă lecție despre regresie, una dintre tehnicile clasice de bază ale ML, vom analiza regresia logistică. Această tehnică este utilizată pentru a descoperi modele care prezic categorii binare. Este această bomboană ciocolată sau nu? Este această boală contagioasă sau nu? Va alege acest client produsul sau nu?
+
+În această lecție, vei învăța:
+
+- O nouă bibliotecă pentru vizualizarea datelor
+- Tehnici pentru regresia logistică
+
+✅ Aprofundează înțelegerea lucrului cu acest tip de regresie în acest [modul de învățare](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott)
+
+## Prerechizite
+
+După ce am lucrat cu datele despre dovleci, suntem suficient de familiarizați cu ele pentru a realiza că există o categorie binară cu care putem lucra: `Color`.
+
+Să construim un model de regresie logistică pentru a prezice, pe baza unor variabile, _ce culoare este probabil să aibă un dovleac_ (portocaliu 🎃 sau alb 👻).
+
+> De ce discutăm despre clasificarea binară într-o lecție despre regresie? Doar din comoditate lingvistică, deoarece regresia logistică este [de fapt o metodă de clasificare](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), deși bazată pe regresie liniară. Învață despre alte metode de clasificare a datelor în următorul grup de lecții.
+
+## Definirea întrebării
+
+Pentru scopurile noastre, vom exprima aceasta ca o binară: 'Alb' sau 'Nu Alb'. Există și o categorie 'dungat' în setul nostru de date, dar există puține instanțe ale acesteia, așa că nu o vom folosi. Oricum dispare odată ce eliminăm valorile nule din setul de date.
+
+> 🎃 Fapt amuzant: uneori numim dovlecii albi 'dovleci fantomă'. Nu sunt foarte ușor de sculptat, așa că nu sunt la fel de populari ca cei portocalii, dar arată interesant! Așadar, am putea reformula întrebarea noastră astfel: 'Fantoma' sau 'Nu Fantoma'. 👻
+
+## Despre regresia logistică
+
+Regresia logistică diferă de regresia liniară, pe care ai învățat-o anterior, în câteva moduri importante.
+
+[](https://youtu.be/KpeCT6nEpBY "ML pentru începători - Înțelegerea regresiei logistice pentru clasificarea în învățarea automată")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre regresia logistică.
+
+### Clasificare binară
+
+Regresia logistică nu oferă aceleași caracteristici ca regresia liniară. Prima oferă o predicție despre o categorie binară ("alb sau nu alb"), în timp ce cea de-a doua este capabilă să prezică valori continue, de exemplu, având în vedere originea unui dovleac și momentul recoltării, _cât de mult va crește prețul său_.
+
+
+> Infografic de [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+### Alte clasificări
+
+Există alte tipuri de regresie logistică, inclusiv multinomială și ordonată:
+
+- **Multinomială**, care implică mai multe categorii - "Portocaliu, Alb și Dungat".
+- **Ordonată**, care implică categorii ordonate, utilă dacă dorim să ordonăm rezultatele logic, cum ar fi dovlecii noștri care sunt ordonați după un număr finit de dimensiuni (mini, mic, mediu, mare, XL, XXL).
+
+
+
+### Variabilele NU trebuie să fie corelate
+
+Îți amintești cum regresia liniară funcționa mai bine cu variabile mai corelate? Regresia logistică este opusul - variabilele nu trebuie să fie aliniate. Acest lucru funcționează pentru aceste date care au corelații destul de slabe.
+
+### Ai nevoie de multe date curate
+
+Regresia logistică va oferi rezultate mai precise dacă folosești mai multe date; setul nostru mic de date nu este optim pentru această sarcină, așa că ține cont de acest lucru.
+
+[](https://youtu.be/B2X4H9vcXTs "ML pentru începători - Analiza și pregătirea datelor pentru regresia logistică")
+
+✅ Gândește-te la tipurile de date care s-ar potrivi bine regresiei logistice.
+
+## Exercițiu - curățarea datelor
+
+Mai întâi, curăță puțin datele, eliminând valorile nule și selectând doar câteva coloane:
+
+1. Adaugă următorul cod:
+
+ ```python
+
+ columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
+ pumpkins = full_pumpkins.loc[:, columns_to_select]
+
+ pumpkins.dropna(inplace=True)
+ ```
+
+ Poți oricând să arunci o privire asupra noului tău dataframe:
+
+ ```python
+ pumpkins.info
+ ```
+
+### Vizualizare - grafic categorial
+
+Până acum ai încărcat [notebook-ul de început](../../../../2-Regression/4-Logistic/notebook.ipynb) cu datele despre dovleci din nou și le-ai curățat astfel încât să păstrezi un set de date care conține câteva variabile, inclusiv `Color`. Să vizualizăm dataframe-ul în notebook folosind o bibliotecă diferită: [Seaborn](https://seaborn.pydata.org/index.html), care este construită pe Matplotlib pe care l-am folosit anterior.
+
+Seaborn oferă câteva modalități interesante de a vizualiza datele tale. De exemplu, poți compara distribuțiile datelor pentru fiecare `Variety` și `Color` într-un grafic categorial.
+
+1. Creează un astfel de grafic folosind funcția `catplot`, utilizând datele noastre despre dovleci `pumpkins` și specificând o mapare de culori pentru fiecare categorie de dovleci (portocaliu sau alb):
+
+ ```python
+ import seaborn as sns
+
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+
+ sns.catplot(
+ data=pumpkins, y="Variety", hue="Color", kind="count",
+ palette=palette,
+ )
+ ```
+
+ 
+
+ Observând datele, poți vedea cum datele despre culoare se raportează la varietate.
+
+ ✅ Având acest grafic categorial, ce explorări interesante poți imagina?
+
+### Pre-procesarea datelor: codificarea caracteristicilor și etichetelor
+
+Setul nostru de date despre dovleci conține valori de tip string pentru toate coloanele sale. Lucrul cu date categoriale este intuitiv pentru oameni, dar nu pentru mașini. Algoritmii de învățare automată funcționează bine cu numere. De aceea, codificarea este un pas foarte important în faza de pre-procesare a datelor, deoarece ne permite să transformăm datele categoriale în date numerice, fără a pierde informații. O codificare bună duce la construirea unui model bun.
+
+Pentru codificarea caracteristicilor există două tipuri principale de codificatori:
+
+1. Codificator ordinal: se potrivește bine pentru variabile ordinale, care sunt variabile categoriale unde datele lor urmează o ordine logică, cum ar fi coloana `Item Size` din setul nostru de date. Creează o mapare astfel încât fiecare categorie să fie reprezentată de un număr, care este ordinea categoriei în coloană.
+
+ ```python
+ from sklearn.preprocessing import OrdinalEncoder
+
+ item_size_categories = [['sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo']]
+ ordinal_features = ['Item Size']
+ ordinal_encoder = OrdinalEncoder(categories=item_size_categories)
+ ```
+
+2. Codificator categorial: se potrivește bine pentru variabile nominale, care sunt variabile categoriale unde datele lor nu urmează o ordine logică, cum ar fi toate caracteristicile diferite de `Item Size` din setul nostru de date. Este o codificare one-hot, ceea ce înseamnă că fiecare categorie este reprezentată de o coloană binară: variabila codificată este egală cu 1 dacă dovleacul aparține acelei varietăți și 0 altfel.
+
+ ```python
+ from sklearn.preprocessing import OneHotEncoder
+
+ categorical_features = ['City Name', 'Package', 'Variety', 'Origin']
+ categorical_encoder = OneHotEncoder(sparse_output=False)
+ ```
+
+Apoi, `ColumnTransformer` este utilizat pentru a combina mai mulți codificatori într-un singur pas și a-i aplica coloanelor corespunzătoare.
+
+```python
+ from sklearn.compose import ColumnTransformer
+
+ ct = ColumnTransformer(transformers=[
+ ('ord', ordinal_encoder, ordinal_features),
+ ('cat', categorical_encoder, categorical_features)
+ ])
+
+ ct.set_output(transform='pandas')
+ encoded_features = ct.fit_transform(pumpkins)
+```
+
+Pe de altă parte, pentru a codifica eticheta, folosim clasa `LabelEncoder` din scikit-learn, care este o clasă utilitară pentru a normaliza etichetele astfel încât să conțină doar valori între 0 și n_classes-1 (aici, 0 și 1).
+
+```python
+ from sklearn.preprocessing import LabelEncoder
+
+ label_encoder = LabelEncoder()
+ encoded_label = label_encoder.fit_transform(pumpkins['Color'])
+```
+
+După ce am codificat caracteristicile și eticheta, le putem îmbina într-un nou dataframe `encoded_pumpkins`.
+
+```python
+ encoded_pumpkins = encoded_features.assign(Color=encoded_label)
+```
+
+✅ Care sunt avantajele utilizării unui codificator ordinal pentru coloana `Item Size`?
+
+### Analiza relațiilor dintre variabile
+
+Acum că am pre-procesat datele, putem analiza relațiile dintre caracteristici și etichetă pentru a înțelege cât de bine va putea modelul să prezică eticheta pe baza caracteristicilor.
+
+Cea mai bună modalitate de a efectua acest tip de analiză este să plotăm datele. Vom folosi din nou funcția `catplot` din Seaborn pentru a vizualiza relațiile dintre `Item Size`, `Variety` și `Color` într-un grafic categorial. Pentru a plota mai bine datele, vom folosi coloana codificată `Item Size` și coloana necodificată `Variety`.
+
+```python
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+ pumpkins['Item Size'] = encoded_pumpkins['ord__Item Size']
+
+ g = sns.catplot(
+ data=pumpkins,
+ x="Item Size", y="Color", row='Variety',
+ kind="box", orient="h",
+ sharex=False, margin_titles=True,
+ height=1.8, aspect=4, palette=palette,
+ )
+ g.set(xlabel="Item Size", ylabel="").set(xlim=(0,6))
+ g.set_titles(row_template="{row_name}")
+```
+
+
+
+### Utilizarea unui grafic swarm
+
+Deoarece `Color` este o categorie binară (Alb sau Nu), necesită 'o [abordare specializată](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) pentru vizualizare'. Există alte modalități de a vizualiza relația acestei categorii cu alte variabile.
+
+Poți vizualiza variabilele una lângă alta cu grafice Seaborn.
+
+1. Încearcă un grafic 'swarm' pentru a arăta distribuția valorilor:
+
+ ```python
+ palette = {
+ 0: 'orange',
+ 1: 'wheat'
+ }
+ sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette)
+ ```
+
+ 
+
+**Atenție**: codul de mai sus poate genera un avertisment, deoarece Seaborn nu reușește să reprezinte o cantitate atât de mare de puncte de date într-un grafic swarm. O soluție posibilă este reducerea dimensiunii markerului, utilizând parametrul 'size'. Totuși, fii conștient că acest lucru afectează lizibilitatea graficului.
+
+> **🧮 Arată-mi matematica**
+>
+> Regresia logistică se bazează pe conceptul de 'maximum likelihood' folosind [funcții sigmoid](https://wikipedia.org/wiki/Sigmoid_function). O 'Funcție Sigmoid' pe un grafic arată ca o formă de 'S'. Aceasta ia o valoare și o mapează undeva între 0 și 1. Curba sa este numită și 'curbă logistică'. Formula sa arată astfel:
+>
+> 
+>
+> unde punctul de mijloc al sigmoidului se află la punctul 0 al lui x, L este valoarea maximă a curbei, iar k este panta curbei. Dacă rezultatul funcției este mai mare de 0.5, eticheta în cauză va fi atribuită clasei '1' din alegerea binară. Dacă nu, va fi clasificată ca '0'.
+
+## Construiește modelul tău
+
+Construirea unui model pentru a găsi aceste clasificări binare este surprinzător de simplă în Scikit-learn.
+
+[](https://youtu.be/MmZS2otPrQ8 "ML pentru începători - Regresia logistică pentru clasificarea datelor")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre construirea unui model de regresie liniară.
+
+1. Selectează variabilele pe care vrei să le folosești în modelul tău de clasificare și împarte seturile de antrenament și testare apelând `train_test_split()`:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])]
+ y = encoded_pumpkins['Color']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+ ```
+
+2. Acum poți antrena modelul tău, apelând `fit()` cu datele de antrenament și afișând rezultatul:
+
+ ```python
+ from sklearn.metrics import f1_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('F1-score: ', f1_score(y_test, predictions))
+ ```
+
+ Aruncă o privire asupra scorului modelului tău. Nu este rău, având în vedere că ai doar aproximativ 1000 de rânduri de date:
+
+ ```output
+ precision recall f1-score support
+
+ 0 0.94 0.98 0.96 166
+ 1 0.85 0.67 0.75 33
+
+ accuracy 0.92 199
+ macro avg 0.89 0.82 0.85 199
+ weighted avg 0.92 0.92 0.92 199
+
+ Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
+ 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0
+ 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+ 0 0 0 1 0 0 0 0 0 0 0 0 1 1]
+ F1-score: 0.7457627118644068
+ ```
+
+## Înțelegere mai bună printr-o matrice de confuzie
+
+Deși poți obține un raport de scor [termeni](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) prin imprimarea elementelor de mai sus, s-ar putea să înțelegi modelul mai ușor utilizând o [matrice de confuzie](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) pentru a ne ajuta să înțelegem cum performează modelul.
+
+> 🎓 O '[matrice de confuzie](https://wikipedia.org/wiki/Confusion_matrix)' (sau 'matrice de eroare') este un tabel care exprimă pozitivele și negativele adevărate vs. false ale modelului tău, evaluând astfel acuratețea predicțiilor.
+
+1. Pentru a utiliza o matrice de confuzie, apelează `confusion_matrix()`:
+
+ ```python
+ from sklearn.metrics import confusion_matrix
+ confusion_matrix(y_test, predictions)
+ ```
+
+ Aruncă o privire asupra matricei de confuzie a modelului tău:
+
+ ```output
+ array([[162, 4],
+ [ 11, 22]])
+ ```
+
+În Scikit-learn, rândurile (axa 0) sunt etichetele reale, iar coloanele (axa 1) sunt etichetele prezise.
+
+| | 0 | 1 |
+| :---: | :---: | :---: |
+| 0 | TN | FP |
+| 1 | FN | TP |
+
+Ce se întâmplă aici? Să presupunem că modelul nostru este solicitat să clasifice dovlecii între două categorii binare, categoria 'alb' și categoria 'nu alb'.
+
+- Dacă modelul tău prezice un dovleac ca fiind nu alb și acesta aparține categoriei 'nu alb' în realitate, îl numim negativ adevărat, indicat de numărul din stânga sus.
+- Dacă modelul tău prezice un dovleac ca fiind alb și acesta aparține categoriei 'nu alb' în realitate, îl numim negativ fals, indicat de numărul din stânga jos.
+- Dacă modelul tău prezice un dovleac ca fiind nu alb și acesta aparține categoriei 'alb' în realitate, îl numim pozitiv fals, indicat de numărul din dreapta sus.
+- Dacă modelul tău prezice un dovleac ca fiind alb și acesta aparține categoriei 'alb' în realitate, îl numim pozitiv adevărat, indicat de numărul din dreapta jos.
+
+După cum probabil ai ghicit, este preferabil să ai un număr mai mare de pozitive adevărate și negative adevărate și un număr mai mic de pozitive false și negative false, ceea ce implică faptul că modelul performează mai bine.
+Cum se leagă matricea de confuzie de precizie și recall? Ține minte, raportul de clasificare afișat mai sus a arătat o precizie de 0.85 și un recall de 0.67.
+
+Precizie = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461
+
+Recall = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666
+
+✅ Î: Conform matricei de confuzie, cum s-a descurcat modelul? R: Nu rău; există un număr bun de true negatives, dar și câteva false negatives.
+
+Să revenim la termenii pe care i-am văzut mai devreme, cu ajutorul mapării TP/TN și FP/FN din matricea de confuzie:
+
+🎓 Precizie: TP/(TP + FP) Proporția instanțelor relevante dintre cele recuperate (de exemplu, etichetele care au fost bine etichetate)
+
+🎓 Recall: TP/(TP + FN) Proporția instanțelor relevante care au fost recuperate, indiferent dacă au fost bine etichetate sau nu
+
+🎓 f1-score: (2 * precizie * recall)/(precizie + recall) O medie ponderată a preciziei și recall-ului, cu cel mai bun scor fiind 1 și cel mai slab fiind 0
+
+🎓 Support: Numărul de apariții ale fiecărei etichete recuperate
+
+🎓 Acuratețe: (TP + TN)/(TP + TN + FP + FN) Procentul de etichete prezise corect pentru un eșantion.
+
+🎓 Macro Avg: Calculul mediei neponderate a metricilor pentru fiecare etichetă, fără a ține cont de dezechilibrul etichetelor.
+
+🎓 Weighted Avg: Calculul mediei metricilor pentru fiecare etichetă, ținând cont de dezechilibrul etichetelor prin ponderarea lor în funcție de support (numărul de instanțe reale pentru fiecare etichetă).
+
+✅ Te poți gândi la ce metrică ar trebui să fii atent dacă vrei ca modelul tău să reducă numărul de false negatives?
+
+## Vizualizează curba ROC a acestui model
+
+[](https://youtu.be/GApO575jTA0 "ML pentru începători - Analiza performanței regresiei logistice cu curbe ROC")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru o prezentare video scurtă despre curbele ROC
+
+Să facem o vizualizare suplimentară pentru a vedea așa-numita 'curbă ROC':
+
+```python
+from sklearn.metrics import roc_curve, roc_auc_score
+import matplotlib
+import matplotlib.pyplot as plt
+%matplotlib inline
+
+y_scores = model.predict_proba(X_test)
+fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1])
+
+fig = plt.figure(figsize=(6, 6))
+plt.plot([0, 1], [0, 1], 'k--')
+plt.plot(fpr, tpr)
+plt.xlabel('False Positive Rate')
+plt.ylabel('True Positive Rate')
+plt.title('ROC Curve')
+plt.show()
+```
+
+Folosind Matplotlib, plotează [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) sau ROC-ul modelului. Curbele ROC sunt adesea utilizate pentru a obține o imagine de ansamblu asupra ieșirii unui clasificator în termeni de true positives vs. false positives. "Curbele ROC prezintă de obicei rata de true positives pe axa Y și rata de false positives pe axa X." Astfel, abruptul curbei și spațiul dintre linia de mijloc și curbă contează: vrei o curbă care urcă rapid și depășește linia. În cazul nostru, există false positives la început, iar apoi linia urcă și depășește corect:
+
+
+
+În final, folosește API-ul [`roc_auc_score`](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) din Scikit-learn pentru a calcula efectiv 'Aria Sub Curbă' (AUC):
+
+```python
+auc = roc_auc_score(y_test,y_scores[:,1])
+print(auc)
+```
+Rezultatul este `0.9749908725812341`. Având în vedere că AUC variază între 0 și 1, vrei un scor mare, deoarece un model care este 100% corect în predicțiile sale va avea un AUC de 1; în acest caz, modelul este _destul de bun_.
+
+În lecțiile viitoare despre clasificări, vei învăța cum să iterezi pentru a îmbunătăți scorurile modelului tău. Dar pentru moment, felicitări! Ai finalizat aceste lecții despre regresie!
+
+---
+## 🚀Provocare
+
+Există mult mai multe de explorat în ceea ce privește regresia logistică! Dar cel mai bun mod de a învăța este să experimentezi. Găsește un set de date care se pretează acestui tip de analiză și construiește un model cu el. Ce ai învățat? sugestie: încearcă [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) pentru seturi de date interesante.
+
+## [Quiz după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare & Studiu individual
+
+Citește primele câteva pagini din [acest articol de la Stanford](https://web.stanford.edu/~jurafsky/slp3/5.pdf) despre câteva utilizări practice ale regresiei logistice. Gândește-te la sarcini care sunt mai potrivite pentru unul sau altul dintre tipurile de regresie pe care le-am studiat până acum. Ce ar funcționa cel mai bine?
+
+## Temă
+
+[Reia această regresie](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/4-Logistic/assignment.md b/translations/ro/2-Regression/4-Logistic/assignment.md
new file mode 100644
index 00000000..0fb160dc
--- /dev/null
+++ b/translations/ro/2-Regression/4-Logistic/assignment.md
@@ -0,0 +1,25 @@
+
+# Reîncercarea unei regresii
+
+## Instrucțiuni
+
+În lecție, ai folosit un subset de date despre dovleci. Acum, revino la datele originale și încearcă să folosești toate datele, curățate și standardizate, pentru a construi un model de regresie logistică.
+
+## Criterii de evaluare
+
+| Criteriu | Exemplară | Adecvată | Necesită îmbunătățiri |
+| --------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- |
+| | Se prezintă un notebook cu un model bine explicat și performant | Se prezintă un notebook cu un model care performează minim | Se prezintă un notebook cu un model sub-performant sau deloc|
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/4-Logistic/solution/Julia/README.md b/translations/ro/2-Regression/4-Logistic/solution/Julia/README.md
new file mode 100644
index 00000000..47bb2a5a
--- /dev/null
+++ b/translations/ro/2-Regression/4-Logistic/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/2-Regression/README.md b/translations/ro/2-Regression/README.md
new file mode 100644
index 00000000..d14ef321
--- /dev/null
+++ b/translations/ro/2-Regression/README.md
@@ -0,0 +1,54 @@
+
+# Modele de regresie pentru învățarea automată
+## Subiect regional: Modele de regresie pentru prețurile dovlecilor în America de Nord 🎃
+
+În America de Nord, dovlecii sunt adesea sculptați în fețe înfricoșătoare pentru Halloween. Hai să descoperim mai multe despre aceste legume fascinante!
+
+
+> Fotografie de Beth Teutschmann pe Unsplash
+
+## Ce vei învăța
+
+[](https://youtu.be/5QnJtDad4iQ "Video introductiv despre regresie - Click pentru a viziona!")
+> 🎥 Click pe imaginea de mai sus pentru un video introductiv rapid la această lecție
+
+Lecțiile din această secțiune acoperă tipurile de regresie în contextul învățării automate. Modelele de regresie pot ajuta la determinarea _relației_ dintre variabile. Acest tip de model poate prezice valori precum lungimea, temperatura sau vârsta, descoperind astfel relații între variabile în timp ce analizează punctele de date.
+
+În această serie de lecții, vei descoperi diferențele dintre regresia liniară și regresia logistică și când ar trebui să alegi una în locul celeilalte.
+
+[](https://youtu.be/XA3OaoW86R8 "ML pentru începători - Introducere în modelele de regresie pentru învățarea automată")
+
+> 🎥 Click pe imaginea de mai sus pentru un scurt video introductiv despre modelele de regresie.
+
+În acest grup de lecții, vei fi pregătit să începi sarcini de învățare automată, inclusiv configurarea Visual Studio Code pentru a gestiona notebook-uri, mediul comun pentru oamenii de știință în domeniul datelor. Vei descoperi Scikit-learn, o bibliotecă pentru învățarea automată, și vei construi primele tale modele, concentrându-te pe modelele de regresie în acest capitol.
+
+> Există instrumente utile cu cod redus care te pot ajuta să înveți despre lucrul cu modelele de regresie. Încearcă [Azure ML pentru această sarcină](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+### Lecții
+
+1. [Instrumentele meseriei](1-Tools/README.md)
+2. [Gestionarea datelor](2-Data/README.md)
+3. [Regresia liniară și polinomială](3-Linear/README.md)
+4. [Regresia logistică](4-Logistic/README.md)
+
+---
+### Credite
+
+"ML cu regresie" a fost scris cu ♥️ de [Jen Looper](https://twitter.com/jenlooper)
+
+♥️ Contribuitorii la quiz includ: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) și [Ornella Altunyan](https://twitter.com/ornelladotcom)
+
+Setul de date despre dovleci este sugerat de [acest proiect pe Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices), iar datele sale sunt preluate din [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distribuite de Departamentul de Agricultură al Statelor Unite. Am adăugat câteva puncte legate de culoare, bazate pe varietate, pentru a normaliza distribuția. Aceste date sunt în domeniul public.
+
+---
+
+**Declinarea responsabilității**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea realizată de un profesionist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/3-Web-App/1-Web-App/README.md b/translations/ro/3-Web-App/1-Web-App/README.md
new file mode 100644
index 00000000..135898bb
--- /dev/null
+++ b/translations/ro/3-Web-App/1-Web-App/README.md
@@ -0,0 +1,359 @@
+
+# Construiește o aplicație web pentru a utiliza un model ML
+
+În această lecție, vei antrena un model ML pe un set de date care este literalmente din altă lume: _Observații de OZN-uri din ultimul secol_, preluate din baza de date a NUFORC.
+
+Vei învăța:
+
+- Cum să „picklezi” un model antrenat
+- Cum să utilizezi acel model într-o aplicație Flask
+
+Vom continua să folosim notebook-uri pentru a curăța datele și a antrena modelul, dar poți duce procesul un pas mai departe explorând utilizarea unui model „în sălbăticie”, ca să zicem așa: într-o aplicație web.
+
+Pentru a face acest lucru, trebuie să construiești o aplicație web folosind Flask.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Construirea unei aplicații
+
+Există mai multe moduri de a construi aplicații web care să consume modele de învățare automată. Arhitectura web poate influența modul în care modelul este antrenat. Imaginează-ți că lucrezi într-o companie unde grupul de știință a datelor a antrenat un model pe care vor să-l folosești într-o aplicație.
+
+### Considerații
+
+Există multe întrebări pe care trebuie să le pui:
+
+- **Este o aplicație web sau o aplicație mobilă?** Dacă construiești o aplicație mobilă sau trebuie să utilizezi modelul într-un context IoT, ai putea folosi [TensorFlow Lite](https://www.tensorflow.org/lite/) și să utilizezi modelul într-o aplicație Android sau iOS.
+- **Unde va fi găzduit modelul?** În cloud sau local?
+- **Suport offline.** Aplicația trebuie să funcționeze offline?
+- **Ce tehnologie a fost utilizată pentru a antrena modelul?** Tehnologia aleasă poate influența instrumentele pe care trebuie să le folosești.
+ - **Utilizarea TensorFlow.** Dacă antrenezi un model folosind TensorFlow, de exemplu, ecosistemul oferă posibilitatea de a converti un model TensorFlow pentru utilizare într-o aplicație web folosind [TensorFlow.js](https://www.tensorflow.org/js/).
+ - **Utilizarea PyTorch.** Dacă construiești un model folosind o bibliotecă precum [PyTorch](https://pytorch.org/), ai opțiunea de a-l exporta în format [ONNX](https://onnx.ai/) (Open Neural Network Exchange) pentru utilizare în aplicații web JavaScript care pot folosi [Onnx Runtime](https://www.onnxruntime.ai/). Această opțiune va fi explorată într-o lecție viitoare pentru un model antrenat cu Scikit-learn.
+ - **Utilizarea Lobe.ai sau Azure Custom Vision.** Dacă folosești un sistem ML SaaS (Software as a Service) precum [Lobe.ai](https://lobe.ai/) sau [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) pentru a antrena un model, acest tip de software oferă modalități de a exporta modelul pentru multe platforme, inclusiv construirea unui API personalizat care să fie interogat în cloud de aplicația ta online.
+
+De asemenea, ai oportunitatea de a construi o aplicație web completă Flask care ar putea antrena modelul direct într-un browser web. Acest lucru poate fi realizat și folosind TensorFlow.js într-un context JavaScript.
+
+Pentru scopurile noastre, deoarece am lucrat cu notebook-uri bazate pe Python, să explorăm pașii pe care trebuie să-i urmezi pentru a exporta un model antrenat dintr-un astfel de notebook într-un format citibil de o aplicație web construită în Python.
+
+## Instrumente
+
+Pentru această sarcină, ai nevoie de două instrumente: Flask și Pickle, ambele rulând pe Python.
+
+✅ Ce este [Flask](https://palletsprojects.com/p/flask/)? Definit ca un „micro-framework” de către creatorii săi, Flask oferă funcțiile de bază ale framework-urilor web folosind Python și un motor de șabloane pentru a construi pagini web. Aruncă o privire la [acest modul de învățare](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) pentru a exersa construirea cu Flask.
+
+✅ Ce este [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 este un modul Python care serializează și de-serializează o structură de obiecte Python. Când „picklezi” un model, îi serializezi sau îi aplatizezi structura pentru utilizare pe web. Atenție: pickle nu este intrinsec sigur, așa că fii precaut dacă ți se cere să „un-picklezi” un fișier. Un fișier pickled are sufixul `.pkl`.
+
+## Exercițiu - curăță datele
+
+În această lecție vei folosi date din 80.000 de observații de OZN-uri, colectate de [NUFORC](https://nuforc.org) (Centrul Național de Raportare a OZN-urilor). Aceste date conțin descrieri interesante ale observațiilor de OZN-uri, de exemplu:
+
+- **Descriere lungă exemplu.** "Un bărbat iese dintr-un fascicul de lumină care strălucește pe un câmp de iarbă noaptea și aleargă spre parcarea Texas Instruments".
+- **Descriere scurtă exemplu.** "luminile ne-au urmărit".
+
+Fișierul [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) include coloane despre `orașul`, `statul` și `țara` unde a avut loc observația, `forma` obiectului și `latitudinea` și `longitudinea` acestuia.
+
+În [notebook-ul](../../../../3-Web-App/1-Web-App/notebook.ipynb) gol inclus în această lecție:
+
+1. importă `pandas`, `matplotlib` și `numpy` așa cum ai făcut în lecțiile anterioare și importă fișierul ufos. Poți arunca o privire la un set de date exemplu:
+
+ ```python
+ import pandas as pd
+ import numpy as np
+
+ ufos = pd.read_csv('./data/ufos.csv')
+ ufos.head()
+ ```
+
+1. Convertește datele ufos într-un dataframe mic cu titluri noi. Verifică valorile unice din câmpul `Țară`.
+
+ ```python
+ ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})
+
+ ufos.Country.unique()
+ ```
+
+1. Acum, poți reduce cantitatea de date cu care trebuie să lucrezi eliminând valorile nule și importând doar observațiile între 1-60 de secunde:
+
+ ```python
+ ufos.dropna(inplace=True)
+
+ ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)]
+
+ ufos.info()
+ ```
+
+1. Importă biblioteca `LabelEncoder` din Scikit-learn pentru a converti valorile text pentru țări într-un număr:
+
+ ✅ LabelEncoder codifică datele alfabetic
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+
+ ufos['Country'] = LabelEncoder().fit_transform(ufos['Country'])
+
+ ufos.head()
+ ```
+
+ Datele tale ar trebui să arate astfel:
+
+ ```output
+ Seconds Country Latitude Longitude
+ 2 20.0 3 53.200000 -2.916667
+ 3 20.0 4 28.978333 -96.645833
+ 14 30.0 4 35.823889 -80.253611
+ 23 60.0 4 45.582778 -122.352222
+ 24 3.0 3 51.783333 -0.783333
+ ```
+
+## Exercițiu - construiește modelul
+
+Acum poți începe să antrenezi un model împărțind datele în grupuri de antrenament și testare.
+
+1. Selectează cele trei caracteristici pe care vrei să le antrenezi ca vector X, iar vectorul y va fi `Țara`. Vrei să poți introduce `Secunde`, `Latitudine` și `Longitudine` și să obții un id de țară ca răspuns.
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ Selected_features = ['Seconds','Latitude','Longitude']
+
+ X = ufos[Selected_features]
+ y = ufos['Country']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+ ```
+
+1. Antrenează modelul folosind regresia logistică:
+
+ ```python
+ from sklearn.metrics import accuracy_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('Accuracy: ', accuracy_score(y_test, predictions))
+ ```
+
+Acuratețea nu este rea **(aproximativ 95%)**, ceea ce nu este surprinzător, deoarece `Țara` și `Latitudine/Longitudine` sunt corelate.
+
+Modelul pe care l-ai creat nu este foarte revoluționar, deoarece ar trebui să poți deduce o `Țară` din `Latitudine` și `Longitudine`, dar este un exercițiu bun pentru a încerca să antrenezi din date brute pe care le-ai curățat, exportat și apoi utilizat acest model într-o aplicație web.
+
+## Exercițiu - „picklează” modelul
+
+Acum, este timpul să _picklezi_ modelul! Poți face acest lucru în câteva linii de cod. Odată ce este _pickled_, încarcă modelul pickled și testează-l pe un array de date exemplu care conține valori pentru secunde, latitudine și longitudine.
+
+```python
+import pickle
+model_filename = 'ufo-model.pkl'
+pickle.dump(model, open(model_filename,'wb'))
+
+model = pickle.load(open('ufo-model.pkl','rb'))
+print(model.predict([[50,44,-12]]))
+```
+
+Modelul returnează **'3'**, care este codul țării pentru Regatul Unit. Uimitor! 👽
+
+## Exercițiu - construiește o aplicație Flask
+
+Acum poți construi o aplicație Flask pentru a apela modelul și a returna rezultate similare, dar într-un mod mai plăcut vizual.
+
+1. Începe prin a crea un folder numit **web-app** lângă fișierul _notebook.ipynb_ unde se află fișierul _ufo-model.pkl_.
+
+1. În acel folder creează alte trei foldere: **static**, cu un folder **css** în interiorul său, și **templates**. Acum ar trebui să ai următoarele fișiere și directoare:
+
+ ```output
+ web-app/
+ static/
+ css/
+ templates/
+ notebook.ipynb
+ ufo-model.pkl
+ ```
+
+ ✅ Consultă folderul soluție pentru o privire asupra aplicației finale
+
+1. Primul fișier pe care să-l creezi în folderul _web-app_ este fișierul **requirements.txt**. La fel ca _package.json_ într-o aplicație JavaScript, acest fișier listează dependențele necesare aplicației. În **requirements.txt** adaugă liniile:
+
+ ```text
+ scikit-learn
+ pandas
+ numpy
+ flask
+ ```
+
+1. Acum, rulează acest fișier navigând la _web-app_:
+
+ ```bash
+ cd web-app
+ ```
+
+1. În terminalul tău tastează `pip install`, pentru a instala bibliotecile listate în _requirements.txt_:
+
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+1. Acum, ești gata să creezi alte trei fișiere pentru a finaliza aplicația:
+
+ 1. Creează **app.py** în rădăcină.
+ 2. Creează **index.html** în directorul _templates_.
+ 3. Creează **styles.css** în directorul _static/css_.
+
+1. Construiește fișierul _styles.css_ cu câteva stiluri:
+
+ ```css
+ body {
+ width: 100%;
+ height: 100%;
+ font-family: 'Helvetica';
+ background: black;
+ color: #fff;
+ text-align: center;
+ letter-spacing: 1.4px;
+ font-size: 30px;
+ }
+
+ input {
+ min-width: 150px;
+ }
+
+ .grid {
+ width: 300px;
+ border: 1px solid #2d2d2d;
+ display: grid;
+ justify-content: center;
+ margin: 20px auto;
+ }
+
+ .box {
+ color: #fff;
+ background: #2d2d2d;
+ padding: 12px;
+ display: inline-block;
+ }
+ ```
+
+1. Apoi, construiește fișierul _index.html_:
+
+ ```html
+
+
+
+
+ 🛸 UFO Appearance Prediction! 👽
+
+
+
+
+
+
+
+
+
According to the number of seconds, latitude and longitude, which country is likely to have reported seeing a UFO?
+
+
+
+
{{ prediction_text }}
+
+
+
+
+
+
+
+ ```
+
+ Aruncă o privire la șablonul din acest fișier. Observă sintaxa „mustache” în jurul variabilelor care vor fi furnizate de aplicație, cum ar fi textul predicției: `{{}}`. Există, de asemenea, un formular care postează o predicție la ruta `/predict`.
+
+ În cele din urmă, ești gata să construiești fișierul Python care conduce consumul modelului și afișarea predicțiilor:
+
+1. În `app.py` adaugă:
+
+ ```python
+ import numpy as np
+ from flask import Flask, request, render_template
+ import pickle
+
+ app = Flask(__name__)
+
+ model = pickle.load(open("./ufo-model.pkl", "rb"))
+
+
+ @app.route("/")
+ def home():
+ return render_template("index.html")
+
+
+ @app.route("/predict", methods=["POST"])
+ def predict():
+
+ int_features = [int(x) for x in request.form.values()]
+ final_features = [np.array(int_features)]
+ prediction = model.predict(final_features)
+
+ output = prediction[0]
+
+ countries = ["Australia", "Canada", "Germany", "UK", "US"]
+
+ return render_template(
+ "index.html", prediction_text="Likely country: {}".format(countries[output])
+ )
+
+
+ if __name__ == "__main__":
+ app.run(debug=True)
+ ```
+
+ > 💡 Sfat: când adaugi [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) în timp ce rulezi aplicația web folosind Flask, orice modificări pe care le faci aplicației tale vor fi reflectate imediat fără a fi nevoie să repornești serverul. Atenție! Nu activa acest mod într-o aplicație de producție.
+
+Dacă rulezi `python app.py` sau `python3 app.py` - serverul tău web pornește local și poți completa un formular scurt pentru a obține un răspuns la întrebarea ta arzătoare despre unde au fost observate OZN-uri!
+
+Înainte de a face acest lucru, aruncă o privire la părțile din `app.py`:
+
+1. Mai întâi, dependențele sunt încărcate și aplicația pornește.
+1. Apoi, modelul este importat.
+1. Apoi, index.html este redat pe ruta principală.
+
+Pe ruta `/predict`, se întâmplă mai multe lucruri când formularul este postat:
+
+1. Variabilele formularului sunt colectate și convertite într-un array numpy. Acestea sunt apoi trimise modelului și se returnează o predicție.
+2. Țările pe care dorim să le afișăm sunt re-redate ca text lizibil din codul de țară prezis, iar acea valoare este trimisă înapoi la index.html pentru a fi redată în șablon.
+
+Utilizarea unui model în acest mod, cu Flask și un model pickled, este relativ simplă. Cel mai dificil lucru este să înțelegi ce formă trebuie să aibă datele care trebuie trimise modelului pentru a obține o predicție. Totul depinde de modul în care modelul a fost antrenat. Acesta are trei puncte de date care trebuie introduse pentru a obține o predicție.
+
+Într-un mediu profesional, poți vedea cât de importantă este comunicarea bună între cei care antrenează modelul și cei care îl consumă într-o aplicație web sau mobilă. În cazul nostru, este doar o singură persoană, tu!
+
+---
+
+## 🚀 Provocare
+
+În loc să lucrezi într-un notebook și să imporți modelul în aplicația Flask, ai putea antrena modelul direct în aplicația Flask! Încearcă să convertești codul Python din notebook, poate după ce datele sunt curățate, pentru a antrena modelul direct în aplicație pe o rută numită `train`. Care sunt avantajele și dezavantajele acestei metode?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Există multe moduri de a construi o aplicație web care să consume modele ML. Fă o listă cu modurile în care ai putea folosi JavaScript sau Python pentru a construi o aplicație web care să valorifice învățarea automată. Ia în considerare arhitectura: ar trebui modelul să rămână în aplicație sau să fie găzduit în cloud? Dacă este ultima variantă, cum l-ai accesa? Desenează un model arhitectural pentru o soluție web ML aplicată.
+
+## Temă
+
+[Încearcă un model diferit](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/3-Web-App/1-Web-App/assignment.md b/translations/ro/3-Web-App/1-Web-App/assignment.md
new file mode 100644
index 00000000..e82271a2
--- /dev/null
+++ b/translations/ro/3-Web-App/1-Web-App/assignment.md
@@ -0,0 +1,25 @@
+
+# Încearcă un model diferit
+
+## Instrucțiuni
+
+Acum că ai construit o aplicație web folosind un model de regresie antrenat, folosește unul dintre modelele dintr-o lecție anterioară despre regresie pentru a reface această aplicație web. Poți păstra stilul sau îl poți proiecta diferit pentru a reflecta datele despre dovleci. Ai grijă să modifici intrările astfel încât să reflecte metoda de antrenare a modelului tău.
+
+## Criterii de evaluare
+
+| Criterii | Exemplu | Adecvat | Necesită îmbunătățiri |
+| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------- |
+| | Aplicația web funcționează conform așteptărilor și este implementată în cloud | Aplicația web conține erori sau produce rezultate neașteptate | Aplicația web nu funcționează corect |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/3-Web-App/README.md b/translations/ro/3-Web-App/README.md
new file mode 100644
index 00000000..621ace03
--- /dev/null
+++ b/translations/ro/3-Web-App/README.md
@@ -0,0 +1,35 @@
+
+# Construiește o aplicație web pentru a utiliza modelul tău ML
+
+În această secțiune a curriculumului, vei fi introdus într-un subiect aplicat de ML: cum să salvezi modelul tău Scikit-learn ca fișier care poate fi utilizat pentru a face predicții într-o aplicație web. După ce modelul este salvat, vei învăța cum să-l folosești într-o aplicație web construită cu Flask. Mai întâi vei crea un model folosind niște date despre observațiile OZN-urilor! Apoi, vei construi o aplicație web care îți va permite să introduci un număr de secunde împreună cu o valoare de latitudine și longitudine pentru a prezice care țară a raportat că a văzut un OZN.
+
+
+
+Fotografie de Michael Herren pe Unsplash
+
+## Lecții
+
+1. [Construiește o aplicație web](1-Web-App/README.md)
+
+## Credite
+
+"Construiește o aplicație web" a fost scrisă cu ♥️ de [Jen Looper](https://twitter.com/jenlooper).
+
+♥️ Testele au fost scrise de Rohan Raj.
+
+Setul de date este preluat de la [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings).
+
+Arhitectura aplicației web a fost sugerată parțial de [acest articol](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) și [acest repo](https://github.com/abhinavsagar/machine-learning-deployment) de Abhinav Sagar.
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/1-Introduction/README.md b/translations/ro/4-Classification/1-Introduction/README.md
new file mode 100644
index 00000000..92cd3aac
--- /dev/null
+++ b/translations/ro/4-Classification/1-Introduction/README.md
@@ -0,0 +1,313 @@
+
+# Introducere în clasificare
+
+În aceste patru lecții, vei explora un aspect fundamental al învățării automate clasice - _clasificarea_. Vom parcurge utilizarea diferitelor algoritmi de clasificare cu un set de date despre toate bucătăriile minunate din Asia și India. Sper că ți-e foame!
+
+
+
+> Sărbătorește bucătăriile pan-asiatice în aceste lecții! Imagine de [Jen Looper](https://twitter.com/jenlooper)
+
+Clasificarea este o formă de [învățare supravegheată](https://wikipedia.org/wiki/Supervised_learning) care are multe în comun cu tehnicile de regresie. Dacă învățarea automată se referă la prezicerea valorilor sau denumirilor unor lucruri folosind seturi de date, atunci clasificarea se împarte, în general, în două grupuri: _clasificare binară_ și _clasificare multiclasă_.
+
+[](https://youtu.be/eg8DJYwdMyg "Introducere în clasificare")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un videoclip: John Guttag de la MIT introduce clasificarea
+
+Amintește-ți:
+
+- **Regresia liniară** te-a ajutat să prezici relațiile dintre variabile și să faci predicții precise despre unde ar putea să se încadreze un nou punct de date în raport cu acea linie. De exemplu, ai putea prezice _ce preț ar avea un dovleac în septembrie vs. decembrie_.
+- **Regresia logistică** te-a ajutat să descoperi "categorii binare": la acest punct de preț, _este acest dovleac portocaliu sau nu-portocaliu_?
+
+Clasificarea folosește diferiți algoritmi pentru a determina alte modalități de a stabili eticheta sau clasa unui punct de date. Hai să lucrăm cu acest set de date despre bucătării pentru a vedea dacă, observând un grup de ingrediente, putem determina originea sa culinară.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Această lecție este disponibilă și în R!](../../../../4-Classification/1-Introduction/solution/R/lesson_10.html)
+
+### Introducere
+
+Clasificarea este una dintre activitățile fundamentale ale cercetătorului în învățare automată și ale specialistului în știința datelor. De la clasificarea de bază a unei valori binare ("este acest email spam sau nu?"), la clasificarea și segmentarea complexă a imaginilor folosind viziunea computerizată, este întotdeauna util să poți sorta datele în clase și să pui întrebări despre ele.
+
+Pentru a exprima procesul într-un mod mai științific, metoda ta de clasificare creează un model predictiv care îți permite să mapezi relația dintre variabilele de intrare și variabilele de ieșire.
+
+
+
+> Probleme binare vs. multiclasă pentru algoritmii de clasificare. Infografic de [Jen Looper](https://twitter.com/jenlooper)
+
+Înainte de a începe procesul de curățare a datelor, vizualizarea lor și pregătirea pentru sarcinile de învățare automată, să învățăm puțin despre diferitele moduri în care învățarea automată poate fi utilizată pentru a clasifica datele.
+
+Derivată din [statistică](https://wikipedia.org/wiki/Statistical_classification), clasificarea folosind învățarea automată clasică utilizează caracteristici, cum ar fi `smoker`, `weight` și `age`, pentru a determina _probabilitatea de a dezvolta boala X_. Ca o tehnică de învățare supravegheată similară cu exercițiile de regresie pe care le-ai realizat anterior, datele tale sunt etichetate, iar algoritmii de învățare automată folosesc aceste etichete pentru a clasifica și prezice clasele (sau 'caracteristicile') unui set de date și pentru a le atribui unui grup sau unui rezultat.
+
+✅ Gândește-te un moment la un set de date despre bucătării. Ce ar putea răspunde un model multiclasă? Ce ar putea răspunde un model binar? Ce-ar fi dacă ai vrea să determini dacă o anumită bucătărie este probabil să folosească schinduf? Sau dacă ai vrea să vezi dacă, având un cadou constând într-o pungă de cumpărături plină cu anason stelat, anghinare, conopidă și hrean, ai putea crea un fel de mâncare tipic indian?
+
+[](https://youtu.be/GuTeDbaNoEU "Coșuri misterioase nebune")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un videoclip. Întregul concept al emisiunii 'Chopped' este 'coșul misterios', unde bucătarii trebuie să facă un fel de mâncare dintr-o alegere aleatorie de ingrediente. Cu siguranță un model de învățare automată ar fi fost de ajutor!
+
+## Salut, 'clasificator'
+
+Întrebarea pe care vrem să o adresăm acestui set de date despre bucătării este, de fapt, o întrebare de **clasificare multiclasă**, deoarece avem mai multe bucătării naționale potențiale cu care să lucrăm. Având un lot de ingrediente, în care dintre aceste multe clase se va încadra datele?
+
+Scikit-learn oferă mai mulți algoritmi diferiți pentru a clasifica datele, în funcție de tipul de problemă pe care vrei să o rezolvi. În următoarele două lecții, vei învăța despre câțiva dintre acești algoritmi.
+
+## Exercițiu - curăță și echilibrează datele
+
+Prima sarcină, înainte de a începe acest proiect, este să cureți și să **echilibrezi** datele pentru a obține rezultate mai bune. Începe cu fișierul gol _notebook.ipynb_ din rădăcina acestui folder.
+
+Primul lucru de instalat este [imblearn](https://imbalanced-learn.org/stable/). Acesta este un pachet Scikit-learn care îți va permite să echilibrezi mai bine datele (vei învăța mai multe despre această sarcină în curând).
+
+1. Pentru a instala `imblearn`, rulează `pip install`, astfel:
+
+ ```python
+ pip install imblearn
+ ```
+
+1. Importează pachetele necesare pentru a importa datele și a le vizualiza, de asemenea importă `SMOTE` din `imblearn`.
+
+ ```python
+ import pandas as pd
+ import matplotlib.pyplot as plt
+ import matplotlib as mpl
+ import numpy as np
+ from imblearn.over_sampling import SMOTE
+ ```
+
+ Acum ești pregătit să imporți datele.
+
+1. Următoarea sarcină va fi să imporți datele:
+
+ ```python
+ df = pd.read_csv('../data/cuisines.csv')
+ ```
+
+ Utilizarea `read_csv()` va citi conținutul fișierului csv _cusines.csv_ și îl va plasa în variabila `df`.
+
+1. Verifică forma datelor:
+
+ ```python
+ df.head()
+ ```
+
+ Primele cinci rânduri arată astfel:
+
+ ```output
+ | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+ | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+ | 0 | 65 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 1 | 66 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 2 | 67 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 3 | 68 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 4 | 69 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+ ```
+
+1. Obține informații despre aceste date apelând `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Rezultatul tău seamănă cu:
+
+ ```output
+
+ RangeIndex: 2448 entries, 0 to 2447
+ Columns: 385 entries, Unnamed: 0 to zucchini
+ dtypes: int64(384), object(1)
+ memory usage: 7.2+ MB
+ ```
+
+## Exercițiu - învățarea despre bucătării
+
+Acum munca începe să devină mai interesantă. Hai să descoperim distribuția datelor, pe bucătărie.
+
+1. Plotează datele sub formă de bare apelând `barh()`:
+
+ ```python
+ df.cuisine.value_counts().plot.barh()
+ ```
+
+ 
+
+ Există un număr finit de bucătării, dar distribuția datelor este inegală. Poți remedia asta! Înainte de a face acest lucru, explorează puțin mai mult.
+
+1. Află cât de multe date sunt disponibile per bucătărie și afișează-le:
+
+ ```python
+ thai_df = df[(df.cuisine == "thai")]
+ japanese_df = df[(df.cuisine == "japanese")]
+ chinese_df = df[(df.cuisine == "chinese")]
+ indian_df = df[(df.cuisine == "indian")]
+ korean_df = df[(df.cuisine == "korean")]
+
+ print(f'thai df: {thai_df.shape}')
+ print(f'japanese df: {japanese_df.shape}')
+ print(f'chinese df: {chinese_df.shape}')
+ print(f'indian df: {indian_df.shape}')
+ print(f'korean df: {korean_df.shape}')
+ ```
+
+ Rezultatul arată astfel:
+
+ ```output
+ thai df: (289, 385)
+ japanese df: (320, 385)
+ chinese df: (442, 385)
+ indian df: (598, 385)
+ korean df: (799, 385)
+ ```
+
+## Descoperirea ingredientelor
+
+Acum poți să te adâncești mai mult în date și să afli care sunt ingredientele tipice pentru fiecare bucătărie. Ar trebui să elimini datele recurente care creează confuzie între bucătării, așa că hai să învățăm despre această problemă.
+
+1. Creează o funcție `create_ingredient()` în Python pentru a crea un dataframe de ingrediente. Această funcție va începe prin eliminarea unei coloane inutile și va sorta ingredientele după numărul lor:
+
+ ```python
+ def create_ingredient_df(df):
+ ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value')
+ ingredient_df = ingredient_df[(ingredient_df.T != 0).any()]
+ ingredient_df = ingredient_df.sort_values(by='value', ascending=False,
+ inplace=False)
+ return ingredient_df
+ ```
+
+ Acum poți folosi această funcție pentru a obține o idee despre primele zece cele mai populare ingrediente per bucătărie.
+
+1. Apelează `create_ingredient()` și plotează rezultatul apelând `barh()`:
+
+ ```python
+ thai_ingredient_df = create_ingredient_df(thai_df)
+ thai_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Fă același lucru pentru datele despre bucătăria japoneză:
+
+ ```python
+ japanese_ingredient_df = create_ingredient_df(japanese_df)
+ japanese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Acum pentru ingredientele chinezești:
+
+ ```python
+ chinese_ingredient_df = create_ingredient_df(chinese_df)
+ chinese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Plotează ingredientele indiene:
+
+ ```python
+ indian_ingredient_df = create_ingredient_df(indian_df)
+ indian_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. În cele din urmă, plotează ingredientele coreene:
+
+ ```python
+ korean_ingredient_df = create_ingredient_df(korean_df)
+ korean_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Acum, elimină cele mai comune ingrediente care creează confuzie între bucătării distincte, apelând `drop()`:
+
+ Toată lumea iubește orezul, usturoiul și ghimbirul!
+
+ ```python
+ feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1)
+ labels_df = df.cuisine #.unique()
+ feature_df.head()
+ ```
+
+## Echilibrarea setului de date
+
+Acum că ai curățat datele, folosește [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Tehnica de Supraîncărcare Sintetică a Minorităților" - pentru a le echilibra.
+
+1. Apelează `fit_resample()`, această strategie generează noi mostre prin interpolare.
+
+ ```python
+ oversample = SMOTE()
+ transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)
+ ```
+
+ Prin echilibrarea datelor, vei obține rezultate mai bune atunci când le clasifici. Gândește-te la o clasificare binară. Dacă majoritatea datelor tale aparțin unei clase, un model de învățare automată va prezice acea clasă mai frecvent, doar pentru că există mai multe date pentru ea. Echilibrarea datelor elimină acest dezechilibru.
+
+1. Acum poți verifica numărul de etichete per ingredient:
+
+ ```python
+ print(f'new label count: {transformed_label_df.value_counts()}')
+ print(f'old label count: {df.cuisine.value_counts()}')
+ ```
+
+ Rezultatul tău arată astfel:
+
+ ```output
+ new label count: korean 799
+ chinese 799
+ indian 799
+ japanese 799
+ thai 799
+ Name: cuisine, dtype: int64
+ old label count: korean 799
+ indian 598
+ chinese 442
+ japanese 320
+ thai 289
+ Name: cuisine, dtype: int64
+ ```
+
+ Datele sunt acum curate, echilibrate și foarte delicioase!
+
+1. Ultimul pas este să salvezi datele echilibrate, inclusiv etichetele și caracteristicile, într-un nou dataframe care poate fi exportat într-un fișier:
+
+ ```python
+ transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer')
+ ```
+
+1. Poți arunca o ultimă privire asupra datelor folosind `transformed_df.head()` și `transformed_df.info()`. Salvează o copie a acestor date pentru utilizare în lecțiile viitoare:
+
+ ```python
+ transformed_df.head()
+ transformed_df.info()
+ transformed_df.to_csv("../data/cleaned_cuisines.csv")
+ ```
+
+ Acest CSV proaspăt poate fi găsit acum în folderul de date rădăcină.
+
+---
+
+## 🚀Provocare
+
+Acest curriculum conține mai multe seturi de date interesante. Răsfoiește folderele `data` și vezi dacă vreunul conține seturi de date care ar fi potrivite pentru clasificare binară sau multiclasă. Ce întrebări ai pune acestui set de date?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Explorează API-ul SMOTE. Pentru ce cazuri de utilizare este cel mai potrivit? Ce probleme rezolvă?
+
+## Temă
+
+[Explorează metodele de clasificare](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/1-Introduction/assignment.md b/translations/ro/4-Classification/1-Introduction/assignment.md
new file mode 100644
index 00000000..95361c08
--- /dev/null
+++ b/translations/ro/4-Classification/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Explorează metodele de clasificare
+
+## Instrucțiuni
+
+În [documentația Scikit-learn](https://scikit-learn.org/stable/supervised_learning.html) vei găsi o listă extinsă de modalități de clasificare a datelor. Fă o mică explorare în aceste documente: scopul tău este să cauți metode de clasificare și să le asociezi cu un set de date din acest curriculum, o întrebare pe care o poți pune despre acesta și o tehnică de clasificare. Creează un tabel sau o foaie de calcul într-un fișier .doc și explică modul în care setul de date ar funcționa cu algoritmul de clasificare.
+
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| | este prezentat un document care oferă o privire de ansamblu asupra a 5 algoritmi împreună cu o tehnică de clasificare. Privirea de ansamblu este bine explicată și detaliată. | este prezentat un document care oferă o privire de ansamblu asupra a 3 algoritmi împreună cu o tehnică de clasificare. Privirea de ansamblu este bine explicată și detaliată. | este prezentat un document care oferă o privire de ansamblu asupra a mai puțin de trei algoritmi împreună cu o tehnică de clasificare, iar privirea de ansamblu nu este bine explicată sau detaliată. |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/1-Introduction/solution/Julia/README.md b/translations/ro/4-Classification/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..14c53e50
--- /dev/null
+++ b/translations/ro/4-Classification/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/2-Classifiers-1/README.md b/translations/ro/4-Classification/2-Classifiers-1/README.md
new file mode 100644
index 00000000..abdf8dce
--- /dev/null
+++ b/translations/ro/4-Classification/2-Classifiers-1/README.md
@@ -0,0 +1,253 @@
+
+# Clasificatori de bucătărie 1
+
+În această lecție, vei folosi setul de date salvat din lecția anterioară, plin de date echilibrate și curate despre bucătării.
+
+Vei utiliza acest set de date cu o varietate de clasificatori pentru a _prezice o bucătărie națională dată pe baza unui grup de ingrediente_. În timp ce faci acest lucru, vei învăța mai multe despre unele dintre modurile în care algoritmii pot fi utilizați pentru sarcini de clasificare.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+# Pregătire
+
+Presupunând că ai finalizat [Lecția 1](../1-Introduction/README.md), asigură-te că un fișier _cleaned_cuisines.csv_ există în folderul rădăcină `/data` pentru aceste patru lecții.
+
+## Exercițiu - prezicerea unei bucătării naționale
+
+1. Lucrând în folderul _notebook.ipynb_ al acestei lecții, importă acel fișier împreună cu biblioteca Pandas:
+
+ ```python
+ import pandas as pd
+ cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv")
+ cuisines_df.head()
+ ```
+
+ Datele arată astfel:
+
+| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+| 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+
+
+1. Acum, importă mai multe biblioteci:
+
+ ```python
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ from sklearn.svm import SVC
+ import numpy as np
+ ```
+
+1. Împarte coordonatele X și y în două cadre de date pentru antrenament. `cuisine` poate fi cadrul de date pentru etichete:
+
+ ```python
+ cuisines_label_df = cuisines_df['cuisine']
+ cuisines_label_df.head()
+ ```
+
+ Va arăta astfel:
+
+ ```output
+ 0 indian
+ 1 indian
+ 2 indian
+ 3 indian
+ 4 indian
+ Name: cuisine, dtype: object
+ ```
+
+1. Elimină coloana `Unnamed: 0` și coloana `cuisine`, folosind `drop()`. Salvează restul datelor ca caracteristici antrenabile:
+
+ ```python
+ cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
+ cuisines_feature_df.head()
+ ```
+
+ Caracteristicile tale arată astfel:
+
+| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
+| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
+
+Acum ești gata să îți antrenezi modelul!
+
+## Alegerea clasificatorului
+
+Acum că datele tale sunt curate și pregătite pentru antrenament, trebuie să decizi ce algoritm să folosești pentru sarcină.
+
+Scikit-learn grupează clasificarea sub Învățare Supervizată, iar în această categorie vei găsi multe moduri de a clasifica. [Varietatea](https://scikit-learn.org/stable/supervised_learning.html) poate fi copleșitoare la prima vedere. Metodele următoare includ tehnici de clasificare:
+
+- Modele liniare
+- Mașini cu vectori de suport
+- Gradient descendent stochastic
+- Vecini cei mai apropiați
+- Procese Gaussiene
+- Arbori de decizie
+- Metode de ansamblu (clasificator prin vot)
+- Algoritmi multiclasă și multioutput (clasificare multiclasă și multilabel, clasificare multiclasă-multioutput)
+
+> Poți folosi și [rețele neuronale pentru a clasifica date](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), dar acest subiect este în afara scopului acestei lecții.
+
+### Ce clasificator să alegi?
+
+Deci, ce clasificator ar trebui să alegi? Deseori, testarea mai multor clasificatori și căutarea unui rezultat bun este o metodă de testare. Scikit-learn oferă o [comparație alăturată](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) pe un set de date creat, comparând KNeighbors, SVC în două moduri, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB și QuadraticDiscriminationAnalysis, arătând rezultatele vizualizate:
+
+
+> Grafice generate din documentația Scikit-learn
+
+> AutoML rezolvă această problemă elegant prin rularea acestor comparații în cloud, permițându-ți să alegi cel mai bun algoritm pentru datele tale. Încearcă [aici](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
+
+### O abordare mai bună
+
+O metodă mai bună decât ghicitul aleatoriu este să urmezi ideile din acest [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) descărcabil. Aici descoperim că, pentru problema noastră multiclasă, avem câteva opțiuni:
+
+
+> O secțiune din Algorithm Cheat Sheet de la Microsoft, detaliind opțiuni de clasificare multiclasă
+
+✅ Descarcă acest cheat sheet, printează-l și agață-l pe perete!
+
+### Raționament
+
+Să vedem dacă putem raționa prin diferite abordări, având în vedere constrângerile pe care le avem:
+
+- **Rețelele neuronale sunt prea grele**. Având în vedere setul nostru de date curat, dar minimal, și faptul că rulăm antrenamentul local prin notebook-uri, rețelele neuronale sunt prea complexe pentru această sarcină.
+- **Nu folosim clasificatori cu două clase**. Nu utilizăm un clasificator cu două clase, deci excludem metoda one-vs-all.
+- **Arborele de decizie sau regresia logistică ar putea funcționa**. Un arbore de decizie ar putea funcționa, sau regresia logistică pentru date multiclasă.
+- **Arborii de decizie boostați multiclasă rezolvă o altă problemă**. Arborele de decizie boostat multiclasă este cel mai potrivit pentru sarcini nonparametrice, de exemplu sarcini concepute pentru a construi clasamente, deci nu este util pentru noi.
+
+### Utilizarea Scikit-learn
+
+Vom folosi Scikit-learn pentru a analiza datele noastre. Totuși, există multe moduri de a utiliza regresia logistică în Scikit-learn. Consultă [parametrii de transmis](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Practic, există doi parametri importanți - `multi_class` și `solver` - pe care trebuie să îi specificăm atunci când cerem Scikit-learn să efectueze o regresie logistică. Valoarea `multi_class` aplică un anumit comportament. Valoarea solverului indică ce algoritm să se folosească. Nu toți solverii pot fi combinați cu toate valorile `multi_class`.
+
+Conform documentației, în cazul multiclasă, algoritmul de antrenament:
+
+- **Folosește schema one-vs-rest (OvR)**, dacă opțiunea `multi_class` este setată la `ovr`
+- **Folosește pierderea cross-entropy**, dacă opțiunea `multi_class` este setată la `multinomial`. (În prezent, opțiunea `multinomial` este suportată doar de solverii ‘lbfgs’, ‘sag’, ‘saga’ și ‘newton-cg’.)"
+
+> 🎓 'Schema' aici poate fi 'ovr' (one-vs-rest) sau 'multinomial'. Deoarece regresia logistică este concepută pentru a susține clasificarea binară, aceste scheme îi permit să gestioneze mai bine sarcinile de clasificare multiclasă. [sursa](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
+
+> 🎓 'Solverul' este definit ca "algoritmul utilizat în problema de optimizare". [sursa](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Scikit-learn oferă acest tabel pentru a explica modul în care solverii gestionează diferite provocări prezentate de diferite structuri de date:
+
+
+
+## Exercițiu - împarte datele
+
+Ne putem concentra pe regresia logistică pentru primul nostru test de antrenament, deoarece ai învățat recent despre aceasta într-o lecție anterioară.
+Împarte datele tale în grupuri de antrenament și testare, apelând `train_test_split()`:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+```
+
+## Exercițiu - aplică regresia logistică
+
+Deoarece folosești cazul multiclasă, trebuie să alegi ce _schemă_ să folosești și ce _solver_ să setezi. Folosește LogisticRegression cu o setare multiclasă și solverul **liblinear** pentru antrenament.
+
+1. Creează o regresie logistică cu `multi_class` setat la `ovr` și solverul setat la `liblinear`:
+
+ ```python
+ lr = LogisticRegression(multi_class='ovr',solver='liblinear')
+ model = lr.fit(X_train, np.ravel(y_train))
+
+ accuracy = model.score(X_test, y_test)
+ print ("Accuracy is {}".format(accuracy))
+ ```
+
+ ✅ Încearcă un alt solver, cum ar fi `lbfgs`, care este adesea setat ca implicit
+> Notă, folosește funcția Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) pentru a aplatiza datele tale atunci când este necesar.
+Acuratețea este bună la peste **80%**!
+
+1. Poți vedea acest model în acțiune testând un rând de date (#50):
+
+ ```python
+ print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
+ print(f'cuisine: {y_test.iloc[50]}')
+ ```
+
+ Rezultatul este afișat:
+
+ ```output
+ ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
+ cuisine: indian
+ ```
+
+ ✅ Încearcă un alt număr de rând și verifică rezultatele
+
+1. Explorând mai profund, poți verifica acuratețea acestei predicții:
+
+ ```python
+ test= X_test.iloc[50].values.reshape(-1, 1).T
+ proba = model.predict_proba(test)
+ classes = model.classes_
+ resultdf = pd.DataFrame(data=proba, columns=classes)
+
+ topPrediction = resultdf.T.sort_values(by=[0], ascending = [False])
+ topPrediction.head()
+ ```
+
+ Rezultatul este afișat - bucătăria indiană este cea mai probabilă, cu o bună probabilitate:
+
+ | | 0 |
+ | -------: | -------: |
+ | indian | 0.715851 |
+ | chinese | 0.229475 |
+ | japanese | 0.029763 |
+ | korean | 0.017277 |
+ | thai | 0.007634 |
+
+ ✅ Poți explica de ce modelul este destul de sigur că aceasta este o bucătărie indiană?
+
+1. Obține mai multe detalii prin afișarea unui raport de clasificare, așa cum ai făcut în lecțiile despre regresie:
+
+ ```python
+ y_pred = model.predict(X_test)
+ print(classification_report(y_test,y_pred))
+ ```
+
+ | | precizie | recall | f1-score | suport |
+ | ------------ | -------- | ------ | -------- | ------ |
+ | chinese | 0.73 | 0.71 | 0.72 | 229 |
+ | indian | 0.91 | 0.93 | 0.92 | 254 |
+ | japanese | 0.70 | 0.75 | 0.72 | 220 |
+ | korean | 0.86 | 0.76 | 0.81 | 242 |
+ | thai | 0.79 | 0.85 | 0.82 | 254 |
+ | acuratețe | 0.80 | 1199 | | |
+ | macro avg | 0.80 | 0.80 | 0.80 | 1199 |
+ | weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
+
+## 🚀Provocare
+
+În această lecție, ai folosit datele curățate pentru a construi un model de învățare automată care poate prezice o bucătărie națională pe baza unei serii de ingrediente. Ia-ți timp să explorezi numeroasele opțiuni pe care Scikit-learn le oferă pentru clasificarea datelor. Explorează mai profund conceptul de 'solver' pentru a înțelege ce se întâmplă în culise.
+
+## [Chestionar post-lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare & Studiu Individual
+
+Explorează puțin mai mult matematica din spatele regresiei logistice în [această lecție](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
+## Temă
+
+[Studiază solvers](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/2-Classifiers-1/assignment.md b/translations/ro/4-Classification/2-Classifiers-1/assignment.md
new file mode 100644
index 00000000..201e69a7
--- /dev/null
+++ b/translations/ro/4-Classification/2-Classifiers-1/assignment.md
@@ -0,0 +1,23 @@
+
+# Studiază rezolvatorii
+## Instrucțiuni
+
+În această lecție ai învățat despre diferiți rezolvatori care combină algoritmi cu un proces de învățare automată pentru a crea un model precis. Parcurge rezolvatorii enumerați în lecție și alege doi. Cu propriile tale cuvinte, compară și contrastează acești doi rezolvatori. Ce tip de problemă abordează? Cum funcționează cu diverse structuri de date? De ce ai alege unul în locul celuilalt?
+## Rubrică
+
+| Criterii | Exemplară | Adecvat | Necesită îmbunătățiri |
+| -------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- |
+| | Se prezintă un fișier .doc cu două paragrafe, fiecare despre un rezolvator, comparându-i atent. | Se prezintă un fișier .doc cu doar un paragraf | Tema este incompletă |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/2-Classifiers-1/solution/Julia/README.md b/translations/ro/4-Classification/2-Classifiers-1/solution/Julia/README.md
new file mode 100644
index 00000000..bae9eb40
--- /dev/null
+++ b/translations/ro/4-Classification/2-Classifiers-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/3-Classifiers-2/README.md b/translations/ro/4-Classification/3-Classifiers-2/README.md
new file mode 100644
index 00000000..a33eb7dd
--- /dev/null
+++ b/translations/ro/4-Classification/3-Classifiers-2/README.md
@@ -0,0 +1,249 @@
+
+# Clasificatori culinari 2
+
+În această a doua lecție despre clasificare, vei explora mai multe modalități de a clasifica date numerice. De asemenea, vei învăța despre implicațiile alegerii unui clasificator în detrimentul altuia.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+### Cerințe preliminare
+
+Presupunem că ai finalizat lecțiile anterioare și ai un set de date curățat în folderul `data`, numit _cleaned_cuisines.csv_, în rădăcina acestui folder cu 4 lecții.
+
+### Pregătire
+
+Am încărcat fișierul tău _notebook.ipynb_ cu setul de date curățat și l-am împărțit în cadre de date X și y, pregătite pentru procesul de construire a modelului.
+
+## O hartă a clasificării
+
+Anterior, ai învățat despre diversele opțiuni pe care le ai atunci când clasifici date folosind fișa de ajutor de la Microsoft. Scikit-learn oferă o fișă similară, dar mai detaliată, care te poate ajuta să restrângi și mai mult alegerea estimatoarelor (un alt termen pentru clasificatori):
+
+
+> Sfat: [vizitează această hartă online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) și explorează căile pentru a citi documentația.
+
+### Planul
+
+Această hartă este foarte utilă odată ce ai o înțelegere clară a datelor tale, deoarece poți „parcurge” căile pentru a lua o decizie:
+
+- Avem >50 de mostre
+- Vrem să prezicem o categorie
+- Avem date etichetate
+- Avem mai puțin de 100K mostre
+- ✨ Putem alege un Linear SVC
+- Dacă acest lucru nu funcționează, deoarece avem date numerice
+ - Putem încerca un ✨ KNeighbors Classifier
+ - Dacă nici acesta nu funcționează, încercăm ✨ SVC și ✨ Ensemble Classifiers
+
+Aceasta este o cale foarte utilă de urmat.
+
+## Exercițiu - împarte datele
+
+Urmând această cale, ar trebui să începem prin a importa câteva biblioteci necesare.
+
+1. Importă bibliotecile necesare:
+
+ ```python
+ from sklearn.neighbors import KNeighborsClassifier
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.svm import SVC
+ from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ import numpy as np
+ ```
+
+1. Împarte datele de antrenament și test:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+ ```
+
+## Clasificator Linear SVC
+
+Support-Vector Clustering (SVC) face parte din familia tehnicilor ML Support-Vector Machines (află mai multe despre acestea mai jos). În această metodă, poți alege un „kernel” pentru a decide cum să grupezi etichetele. Parametrul 'C' se referă la 'regularizare', care reglează influența parametrilor. Kernel-ul poate fi unul dintre [mai multe](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); aici îl setăm la 'linear' pentru a ne asigura că folosim Linear SVC. Probabilitatea este implicit 'false'; aici o setăm la 'true' pentru a obține estimări de probabilitate. Setăm starea aleatorie la '0' pentru a amesteca datele și a obține probabilități.
+
+### Exercițiu - aplică un Linear SVC
+
+Începe prin a crea un array de clasificatori. Vei adăuga progresiv la acest array pe măsură ce testăm.
+
+1. Începe cu un Linear SVC:
+
+ ```python
+ C = 10
+ # Create different classifiers.
+ classifiers = {
+ 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
+ }
+ ```
+
+2. Antrenează modelul folosind Linear SVC și afișează un raport:
+
+ ```python
+ n_classifiers = len(classifiers)
+
+ for index, (name, classifier) in enumerate(classifiers.items()):
+ classifier.fit(X_train, np.ravel(y_train))
+
+ y_pred = classifier.predict(X_test)
+ accuracy = accuracy_score(y_test, y_pred)
+ print("Accuracy (train) for %s: %0.1f%% " % (name, accuracy * 100))
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Rezultatul este destul de bun:
+
+ ```output
+ Accuracy (train) for Linear SVC: 78.6%
+ precision recall f1-score support
+
+ chinese 0.71 0.67 0.69 242
+ indian 0.88 0.86 0.87 234
+ japanese 0.79 0.74 0.76 254
+ korean 0.85 0.81 0.83 242
+ thai 0.71 0.86 0.78 227
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+## Clasificator K-Neighbors
+
+K-Neighbors face parte din familia „neighbors” a metodelor ML, care pot fi utilizate atât pentru învățare supravegheată, cât și nesupravegheată. În această metodă, se creează un număr predefinit de puncte, iar datele sunt grupate în jurul acestor puncte astfel încât să se poată prezice etichete generalizate pentru date.
+
+### Exercițiu - aplică clasificatorul K-Neighbors
+
+Clasificatorul anterior a fost bun și a funcționat bine cu datele, dar poate putem obține o acuratețe mai bună. Încearcă un clasificator K-Neighbors.
+
+1. Adaugă o linie în array-ul de clasificatori (adaugă o virgulă după elementul Linear SVC):
+
+ ```python
+ 'KNN classifier': KNeighborsClassifier(C),
+ ```
+
+ Rezultatul este puțin mai slab:
+
+ ```output
+ Accuracy (train) for KNN classifier: 73.8%
+ precision recall f1-score support
+
+ chinese 0.64 0.67 0.66 242
+ indian 0.86 0.78 0.82 234
+ japanese 0.66 0.83 0.74 254
+ korean 0.94 0.58 0.72 242
+ thai 0.71 0.82 0.76 227
+
+ accuracy 0.74 1199
+ macro avg 0.76 0.74 0.74 1199
+ weighted avg 0.76 0.74 0.74 1199
+ ```
+
+ ✅ Află mai multe despre [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
+
+## Clasificator Support Vector
+
+Clasificatorii Support-Vector fac parte din familia [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) a metodelor ML utilizate pentru sarcini de clasificare și regresie. SVM-urile „mapează exemplele de antrenament în puncte din spațiu” pentru a maximiza distanța dintre două categorii. Datele ulterioare sunt mapate în acest spațiu astfel încât categoria lor să poată fi prezisă.
+
+### Exercițiu - aplică un Support Vector Classifier
+
+Să încercăm să obținem o acuratețe puțin mai bună cu un Support Vector Classifier.
+
+1. Adaugă o virgulă după elementul K-Neighbors, apoi adaugă această linie:
+
+ ```python
+ 'SVC': SVC(),
+ ```
+
+ Rezultatul este destul de bun!
+
+ ```output
+ Accuracy (train) for SVC: 83.2%
+ precision recall f1-score support
+
+ chinese 0.79 0.74 0.76 242
+ indian 0.88 0.90 0.89 234
+ japanese 0.87 0.81 0.84 254
+ korean 0.91 0.82 0.86 242
+ thai 0.74 0.90 0.81 227
+
+ accuracy 0.83 1199
+ macro avg 0.84 0.83 0.83 1199
+ weighted avg 0.84 0.83 0.83 1199
+ ```
+
+ ✅ Află mai multe despre [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
+
+## Clasificatori Ensemble
+
+Să urmăm calea până la capăt, chiar dacă testul anterior a fost destul de bun. Să încercăm câțiva 'Clasificatori Ensemble', în special Random Forest și AdaBoost:
+
+```python
+ 'RFST': RandomForestClassifier(n_estimators=100),
+ 'ADA': AdaBoostClassifier(n_estimators=100)
+```
+
+Rezultatul este foarte bun, mai ales pentru Random Forest:
+
+```output
+Accuracy (train) for RFST: 84.5%
+ precision recall f1-score support
+
+ chinese 0.80 0.77 0.78 242
+ indian 0.89 0.92 0.90 234
+ japanese 0.86 0.84 0.85 254
+ korean 0.88 0.83 0.85 242
+ thai 0.80 0.87 0.83 227
+
+ accuracy 0.84 1199
+ macro avg 0.85 0.85 0.84 1199
+weighted avg 0.85 0.84 0.84 1199
+
+Accuracy (train) for ADA: 72.4%
+ precision recall f1-score support
+
+ chinese 0.64 0.49 0.56 242
+ indian 0.91 0.83 0.87 234
+ japanese 0.68 0.69 0.69 254
+ korean 0.73 0.79 0.76 242
+ thai 0.67 0.83 0.74 227
+
+ accuracy 0.72 1199
+ macro avg 0.73 0.73 0.72 1199
+weighted avg 0.73 0.72 0.72 1199
+```
+
+✅ Află mai multe despre [Clasificatori Ensemble](https://scikit-learn.org/stable/modules/ensemble.html)
+
+Această metodă de învățare automată „combină predicțiile mai multor estimatori de bază” pentru a îmbunătăți calitatea modelului. În exemplul nostru, am folosit Random Trees și AdaBoost.
+
+- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), o metodă de mediere, construiește o „pădure” de „arbori de decizie” infuzați cu aleatoriu pentru a evita supraînvățarea. Parametrul n_estimators este setat la numărul de arbori.
+
+- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) ajustează un clasificator pe un set de date și apoi ajustează copii ale acelui clasificator pe același set de date. Se concentrează pe greutățile elementelor clasificate incorect și ajustează potrivirea pentru următorul clasificator pentru a corecta.
+
+---
+
+## 🚀Provocare
+
+Fiecare dintre aceste tehnici are un număr mare de parametri pe care îi poți ajusta. Cercetează parametrii impliciți ai fiecărei metode și gândește-te ce ar însemna ajustarea acestor parametri pentru calitatea modelului.
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Există mulți termeni tehnici în aceste lecții, așa că ia-ți un moment pentru a revizui [această listă](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) de terminologie utilă!
+
+## Temă
+
+[Joacă-te cu parametrii](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/3-Classifiers-2/assignment.md b/translations/ro/4-Classification/3-Classifiers-2/assignment.md
new file mode 100644
index 00000000..8996fdda
--- /dev/null
+++ b/translations/ro/4-Classification/3-Classifiers-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Joaca cu Parametrii
+
+## Instrucțiuni
+
+Există o mulțime de parametri care sunt setați implicit atunci când lucrăm cu acești clasificatori. Intellisense în VS Code te poate ajuta să explorezi acești parametri. Adoptă una dintre tehnicile de clasificare ML din această lecție și reantrenează modelele ajustând diverse valori ale parametrilor. Construiește un notebook în care explici de ce unele modificări îmbunătățesc calitatea modelului, în timp ce altele o degradează. Fii detaliat în răspunsul tău.
+
+## Criterii de evaluare
+
+| Criteriu | Exemplu | Adecvat | Necesită îmbunătățiri |
+| -------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------- |
+| | Este prezentat un notebook cu un clasificator complet construit, cu parametrii ajustați și modificările explicate în casete de text | Este prezentat un notebook parțial sau slab explicat | Notebook-ul este eronat sau defectuos |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/3-Classifiers-2/solution/Julia/README.md b/translations/ro/4-Classification/3-Classifiers-2/solution/Julia/README.md
new file mode 100644
index 00000000..e3fb784a
--- /dev/null
+++ b/translations/ro/4-Classification/3-Classifiers-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/4-Applied/README.md b/translations/ro/4-Classification/4-Applied/README.md
new file mode 100644
index 00000000..bf17a6e0
--- /dev/null
+++ b/translations/ro/4-Classification/4-Applied/README.md
@@ -0,0 +1,329 @@
+
+# Construiește o aplicație web pentru recomandarea bucătăriilor
+
+În această lecție, vei construi un model de clasificare folosind unele dintre tehnicile pe care le-ai învățat în lecțiile anterioare și dataset-ul delicios de bucătării utilizat pe parcursul acestei serii. În plus, vei construi o mică aplicație web pentru a utiliza un model salvat, folosind runtime-ul web al Onnx.
+
+Una dintre cele mai utile aplicații practice ale învățării automate este construirea sistemelor de recomandare, iar astăzi poți face primul pas în această direcție!
+
+[](https://youtu.be/17wdM9AHMfg "ML aplicat")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un videoclip: Jen Looper construiește o aplicație web folosind date clasificate despre bucătării
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+În această lecție vei învăța:
+
+- Cum să construiești un model și să-l salvezi ca model Onnx
+- Cum să folosești Netron pentru a inspecta modelul
+- Cum să utilizezi modelul într-o aplicație web pentru inferență
+
+## Construiește modelul tău
+
+Construirea sistemelor ML aplicate este o parte importantă a valorificării acestor tehnologii pentru sistemele tale de afaceri. Poți utiliza modelele în aplicațiile tale web (și astfel să le folosești într-un context offline, dacă este necesar) folosind Onnx.
+
+Într-o [lecție anterioară](../../3-Web-App/1-Web-App/README.md), ai construit un model de regresie despre observațiile OZN, l-ai "pickled" și l-ai utilizat într-o aplicație Flask. Deși această arhitectură este foarte utilă de cunoscut, este o aplicație Python full-stack, iar cerințele tale pot include utilizarea unei aplicații JavaScript.
+
+În această lecție, poți construi un sistem de bază bazat pe JavaScript pentru inferență. Mai întâi, însă, trebuie să antrenezi un model și să-l convertești pentru utilizare cu Onnx.
+
+## Exercițiu - antrenează modelul de clasificare
+
+Mai întâi, antrenează un model de clasificare folosind dataset-ul curățat de bucătării pe care l-am utilizat.
+
+1. Începe prin importarea bibliotecilor utile:
+
+ ```python
+ !pip install skl2onnx
+ import pandas as pd
+ ```
+
+ Ai nevoie de '[skl2onnx](https://onnx.ai/sklearn-onnx/)' pentru a ajuta la conversia modelului Scikit-learn în format Onnx.
+
+1. Apoi, lucrează cu datele în același mod ca în lecțiile anterioare, citind un fișier CSV folosind `read_csv()`:
+
+ ```python
+ data = pd.read_csv('../data/cleaned_cuisines.csv')
+ data.head()
+ ```
+
+1. Elimină primele două coloane inutile și salvează datele rămase ca 'X':
+
+ ```python
+ X = data.iloc[:,2:]
+ X.head()
+ ```
+
+1. Salvează etichetele ca 'y':
+
+ ```python
+ y = data[['cuisine']]
+ y.head()
+
+ ```
+
+### Începe rutina de antrenare
+
+Vom folosi biblioteca 'SVC', care are o acuratețe bună.
+
+1. Importă bibliotecile corespunzătoare din Scikit-learn:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+ from sklearn.svm import SVC
+ from sklearn.model_selection import cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report
+ ```
+
+1. Separă seturile de antrenare și testare:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
+ ```
+
+1. Construiește un model de clasificare SVC, așa cum ai făcut în lecția anterioară:
+
+ ```python
+ model = SVC(kernel='linear', C=10, probability=True,random_state=0)
+ model.fit(X_train,y_train.values.ravel())
+ ```
+
+1. Acum, testează modelul, apelând `predict()`:
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+1. Afișează un raport de clasificare pentru a verifica calitatea modelului:
+
+ ```python
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Așa cum am văzut anterior, acuratețea este bună:
+
+ ```output
+ precision recall f1-score support
+
+ chinese 0.72 0.69 0.70 257
+ indian 0.91 0.87 0.89 243
+ japanese 0.79 0.77 0.78 239
+ korean 0.83 0.79 0.81 236
+ thai 0.72 0.84 0.78 224
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+### Convertește modelul tău în Onnx
+
+Asigură-te că faci conversia cu numărul corect de tensori. Acest dataset are 380 de ingrediente listate, așa că trebuie să notezi acest număr în `FloatTensorType`:
+
+1. Convertește folosind un număr de tensor de 380.
+
+ ```python
+ from skl2onnx import convert_sklearn
+ from skl2onnx.common.data_types import FloatTensorType
+
+ initial_type = [('float_input', FloatTensorType([None, 380]))]
+ options = {id(model): {'nocl': True, 'zipmap': False}}
+ ```
+
+1. Creează fișierul onx și salvează-l ca **model.onnx**:
+
+ ```python
+ onx = convert_sklearn(model, initial_types=initial_type, options=options)
+ with open("./model.onnx", "wb") as f:
+ f.write(onx.SerializeToString())
+ ```
+
+ > Notă: poți trece [opțiuni](https://onnx.ai/sklearn-onnx/parameterized.html) în scriptul de conversie. În acest caz, am setat 'nocl' să fie True și 'zipmap' să fie False. Deoarece acesta este un model de clasificare, ai opțiunea de a elimina ZipMap, care produce o listă de dicționare (nu este necesar). `nocl` se referă la includerea informațiilor despre clasă în model. Redu dimensiunea modelului setând `nocl` la 'True'.
+
+Rularea întregului notebook va construi acum un model Onnx și îl va salva în acest folder.
+
+## Vizualizează modelul tău
+
+Modelele Onnx nu sunt foarte vizibile în Visual Studio Code, dar există un software gratuit foarte bun pe care mulți cercetători îl folosesc pentru a vizualiza modelul și a se asigura că este construit corect. Descarcă [Netron](https://github.com/lutzroeder/Netron) și deschide fișierul model.onnx. Poți vedea modelul tău simplu vizualizat, cu cele 380 de intrări și clasificatorul listat:
+
+
+
+Netron este un instrument util pentru vizualizarea modelelor tale.
+
+Acum ești pregătit să folosești acest model interesant într-o aplicație web. Hai să construim o aplicație care va fi utilă atunci când te uiți în frigider și încerci să-ți dai seama ce combinație de ingrediente rămase poți folosi pentru a găti o anumită bucătărie, determinată de modelul tău.
+
+## Construiește o aplicație web de recomandare
+
+Poți utiliza modelul tău direct într-o aplicație web. Această arhitectură îți permite, de asemenea, să o rulezi local și chiar offline, dacă este necesar. Începe prin crearea unui fișier `index.html` în același folder unde ai salvat fișierul `model.onnx`.
+
+1. În acest fișier _index.html_, adaugă următorul markup:
+
+ ```html
+
+
+
+ Cuisine Matcher
+
+
+ ...
+
+
+ ```
+
+1. Acum, lucrând în interiorul tag-urilor `body`, adaugă puțin markup pentru a afișa o listă de checkbox-uri care reflectă unele ingrediente:
+
+ ```html
+
Check your refrigerator. What can you create?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ```
+
+ Observă că fiecare checkbox are o valoare. Aceasta reflectă indexul unde se află ingredientul conform dataset-ului. De exemplu, mărul, în această listă alfabetică, ocupă a cincea coloană, deci valoarea sa este '4', deoarece începem să numărăm de la 0. Poți consulta [fișierul de ingrediente](../../../../4-Classification/data/ingredient_indexes.csv) pentru a descoperi indexul unui ingredient dat.
+
+ Continuând lucrul în fișierul index.html, adaugă un bloc de script unde modelul este apelat după închiderea finală a ``.
+
+1. Mai întâi, importă [Onnx Runtime](https://www.onnxruntime.ai/):
+
+ ```html
+
+ ```
+
+ > Onnx Runtime este utilizat pentru a permite rularea modelelor Onnx pe o gamă largă de platforme hardware, incluzând optimizări și un API pentru utilizare.
+
+1. Odată ce Runtime-ul este în loc, îl poți apela:
+
+ ```html
+
+ ```
+
+În acest cod, se întâmplă mai multe lucruri:
+
+1. Ai creat un array de 380 de valori posibile (1 sau 0) care să fie setate și trimise modelului pentru inferență, în funcție de faptul că un checkbox de ingredient este bifat.
+2. Ai creat un array de checkbox-uri și o modalitate de a determina dacă acestea au fost bifate într-o funcție `init` care este apelată atunci când aplicația pornește. Când un checkbox este bifat, array-ul `ingredients` este modificat pentru a reflecta ingredientul ales.
+3. Ai creat o funcție `testCheckboxes` care verifică dacă vreun checkbox a fost bifat.
+4. Folosești funcția `startInference` atunci când butonul este apăsat și, dacă vreun checkbox este bifat, începi inferența.
+5. Rutina de inferență include:
+ 1. Configurarea unei încărcări asincrone a modelului
+ 2. Crearea unei structuri Tensor pentru a fi trimisă modelului
+ 3. Crearea 'feeds' care reflectă intrarea `float_input` pe care ai creat-o când ai antrenat modelul (poți folosi Netron pentru a verifica acest nume)
+ 4. Trimiterea acestor 'feeds' către model și așteptarea unui răspuns
+
+## Testează aplicația ta
+
+Deschide o sesiune de terminal în Visual Studio Code în folderul unde se află fișierul index.html. Asigură-te că ai [http-server](https://www.npmjs.com/package/http-server) instalat global și tastează `http-server` la prompt. Ar trebui să se deschidă un localhost și poți vizualiza aplicația ta web. Verifică ce bucătărie este recomandată pe baza diferitelor ingrediente:
+
+
+
+Felicitări, ai creat o aplicație web de 'recomandare' cu câmpuri minime. Ia-ți timp să dezvolți acest sistem!
+
+## 🚀Provocare
+
+Aplicația ta web este foarte minimală, așa că continuă să o dezvolți folosind ingrediente și indexurile lor din datele [ingredient_indexes](../../../../4-Classification/data/ingredient_indexes.csv). Ce combinații de arome funcționează pentru a crea un fel de mâncare național?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Deși această lecție doar a atins utilitatea creării unui sistem de recomandare pentru ingrediente alimentare, acest domeniu al aplicațiilor ML este foarte bogat în exemple. Citește mai multe despre cum sunt construite aceste sisteme:
+
+- https://www.sciencedirect.com/topics/computer-science/recommendation-engine
+- https://www.technologyreview.com/2014/08/25/171547/the-ultimate-challenge-for-recommendation-engines/
+- https://www.technologyreview.com/2015/03/23/168831/everything-is-a-recommendation/
+
+## Temă
+
+[Construiește un nou sistem de recomandare](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/4-Applied/assignment.md b/translations/ro/4-Classification/4-Applied/assignment.md
new file mode 100644
index 00000000..d1c5b645
--- /dev/null
+++ b/translations/ro/4-Classification/4-Applied/assignment.md
@@ -0,0 +1,25 @@
+
+# Construiește un sistem de recomandare
+
+## Instrucțiuni
+
+Având în vedere exercițiile din această lecție, acum știi cum să construiești o aplicație web bazată pe JavaScript folosind Onnx Runtime și un model Onnx convertit. Experimentează construind un nou sistem de recomandare folosind datele din aceste lecții sau obținute din alte surse (te rugăm să oferi credit, dacă este cazul). Poți crea, de exemplu, un sistem de recomandare pentru animale de companie bazat pe diverse trăsături de personalitate sau un sistem de recomandare pentru genuri muzicale bazat pe starea de spirit a unei persoane. Fii creativ!
+
+## Criterii de evaluare
+
+| Criterii | Exemplu | Adecvat | Necesită îmbunătățiri |
+| -------- | -------------------------------------------------------------------- | ------------------------------------ | --------------------------------- |
+| | O aplicație web și un notebook sunt prezentate, ambele bine documentate și funcționale | Unul dintre cele două lipsește sau are probleme | Ambele fie lipsesc, fie au probleme |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/4-Classification/README.md b/translations/ro/4-Classification/README.md
new file mode 100644
index 00000000..88e15934
--- /dev/null
+++ b/translations/ro/4-Classification/README.md
@@ -0,0 +1,41 @@
+
+# Introducere în clasificare
+
+## Subiect regional: Bucătării delicioase asiatice și indiene 🍜
+
+În Asia și India, tradițiile culinare sunt extrem de diverse și foarte delicioase! Haideți să analizăm datele despre bucătăriile regionale pentru a înțelege mai bine ingredientele lor.
+
+
+> Fotografie de Lisheng Chang pe Unsplash
+
+## Ce vei învăța
+
+În această secțiune, vei aprofunda studiul anterior despre regresie și vei învăța despre alți clasificatori pe care îi poți folosi pentru a înțelege mai bine datele.
+
+> Există instrumente utile cu cod redus care te pot ajuta să înveți cum să lucrezi cu modele de clasificare. Încearcă [Azure ML pentru această sarcină](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Lecții
+
+1. [Introducere în clasificare](1-Introduction/README.md)
+2. [Mai mulți clasificatori](2-Classifiers-1/README.md)
+3. [Alți clasificatori](3-Classifiers-2/README.md)
+4. [ML aplicat: construiește o aplicație web](4-Applied/README.md)
+
+## Credite
+
+"Introducere în clasificare" a fost scris cu ♥️ de [Cassie Breviu](https://www.twitter.com/cassiebreviu) și [Jen Looper](https://www.twitter.com/jenlooper)
+
+Setul de date despre bucătăriile delicioase a fost preluat de pe [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines).
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/5-Clustering/1-Visualize/README.md b/translations/ro/5-Clustering/1-Visualize/README.md
new file mode 100644
index 00000000..4c304934
--- /dev/null
+++ b/translations/ro/5-Clustering/1-Visualize/README.md
@@ -0,0 +1,347 @@
+
+# Introducere în clustering
+
+Clustering-ul este un tip de [Învățare Nesupervizată](https://wikipedia.org/wiki/Unsupervised_learning) care presupune că un set de date nu este etichetat sau că intrările sale nu sunt asociate cu ieșiri predefinite. Folosește diverse algoritmi pentru a analiza datele neetichetate și a oferi grupări bazate pe tiparele identificate în date.
+
+[](https://youtu.be/ty2advRiWJM "No One Like You de PSquare")
+
+> 🎥 Click pe imaginea de mai sus pentru un videoclip. În timp ce studiezi învățarea automată cu clustering, bucură-te de câteva piese de Dance Hall nigerian - aceasta este o melodie foarte apreciată din 2014 de PSquare.
+
+## [Quiz înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+### Introducere
+
+[Clustering-ul](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) este foarte util pentru explorarea datelor. Să vedem dacă poate ajuta la descoperirea tendințelor și tiparelor în modul în care publicul nigerian consumă muzică.
+
+✅ Ia un minut să te gândești la utilizările clustering-ului. În viața reală, clustering-ul se întâmplă ori de câte ori ai o grămadă de rufe și trebuie să sortezi hainele membrilor familiei 🧦👕👖🩲. În știința datelor, clustering-ul se întâmplă atunci când încerci să analizezi preferințele unui utilizator sau să determini caracteristicile unui set de date neetichetat. Clustering-ul, într-un fel, ajută la a face ordine în haos, ca un sertar de șosete.
+
+[](https://youtu.be/esmzYhuFnds "Introducere în Clustering")
+
+> 🎥 Click pe imaginea de mai sus pentru un videoclip: John Guttag de la MIT introduce clustering-ul.
+
+Într-un mediu profesional, clustering-ul poate fi utilizat pentru a determina lucruri precum segmentarea pieței, identificarea grupelor de vârstă care cumpără anumite produse, de exemplu. O altă utilizare ar fi detectarea anomaliilor, poate pentru a identifica fraude într-un set de date cu tranzacții de carduri de credit. Sau ai putea folosi clustering-ul pentru a identifica tumori într-un lot de scanări medicale.
+
+✅ Gândește-te un minut la cum ai putea întâlni clustering-ul 'în sălbăticie', într-un mediu bancar, de e-commerce sau de afaceri.
+
+> 🎓 Interesant, analiza clusterelor a apărut în domeniile Antropologiei și Psihologiei în anii 1930. Îți poți imagina cum ar fi fost utilizată?
+
+Alternativ, ai putea să-l folosești pentru gruparea rezultatelor căutării - de exemplu, după linkuri de cumpărături, imagini sau recenzii. Clustering-ul este util atunci când ai un set de date mare pe care vrei să-l reduci și pe care vrei să efectuezi o analiză mai detaliată, astfel încât tehnica poate fi utilizată pentru a învăța despre date înainte de a construi alte modele.
+
+✅ Odată ce datele tale sunt organizate în clustere, le atribui un Id de cluster, iar această tehnică poate fi utilă pentru a păstra confidențialitatea unui set de date; poți să te referi la un punct de date prin Id-ul său de cluster, mai degrabă decât prin date identificabile mai revelatoare. Poți să te gândești la alte motive pentru care ai prefera să te referi la un Id de cluster în loc de alte elemente ale clusterului pentru a-l identifica?
+
+Aprofundează-ți înțelegerea tehnicilor de clustering în acest [modul de învățare](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott).
+
+## Începerea cu clustering
+
+[Scikit-learn oferă o gamă largă](https://scikit-learn.org/stable/modules/clustering.html) de metode pentru a efectua clustering. Tipul pe care îl alegi va depinde de cazul tău de utilizare. Conform documentației, fiecare metodă are diverse beneficii. Iată un tabel simplificat al metodelor suportate de Scikit-learn și cazurile lor de utilizare adecvate:
+
+| Numele metodei | Caz de utilizare |
+| :--------------------------- | :------------------------------------------------------------------- |
+| K-Means | scop general, inductiv |
+| Propagarea afinității | multe, clustere inegale, inductiv |
+| Mean-shift | multe, clustere inegale, inductiv |
+| Clustering spectral | puține, clustere egale, transductiv |
+| Clustering ierarhic Ward | multe, clustere constrânse, transductiv |
+| Clustering aglomerativ | multe, constrânse, distanțe non-euclidiene, transductiv |
+| DBSCAN | geometrie non-plană, clustere inegale, transductiv |
+| OPTICS | geometrie non-plană, clustere inegale cu densitate variabilă, transductiv |
+| Amestecuri Gaussiene | geometrie plană, inductiv |
+| BIRCH | set de date mare cu outlieri, inductiv |
+
+> 🎓 Modul în care creăm clustere are mult de-a face cu modul în care grupăm punctele de date în grupuri. Să descompunem câteva vocabular:
+>
+> 🎓 ['Transductiv' vs. 'inductiv'](https://wikipedia.org/wiki/Transduction_(machine_learning))
+>
+> Inferența transductivă este derivată din cazuri de antrenament observate care se mapează la cazuri de testare specifice. Inferența inductivă este derivată din cazuri de antrenament care se mapează la reguli generale care sunt aplicate ulterior cazurilor de testare.
+>
+> Un exemplu: Imaginează-ți că ai un set de date care este doar parțial etichetat. Unele lucruri sunt 'discuri', altele 'cd-uri', iar unele sunt goale. Sarcina ta este să oferi etichete pentru cele goale. Dacă alegi o abordare inductivă, ai antrena un model căutând 'discuri' și 'cd-uri' și ai aplica acele etichete datelor neetichetate. Această abordare va avea dificultăți în clasificarea lucrurilor care sunt de fapt 'casete'. O abordare transductivă, pe de altă parte, gestionează aceste date necunoscute mai eficient, deoarece lucrează pentru a grupa elemente similare împreună și apoi aplică o etichetă unui grup. În acest caz, clusterele ar putea reflecta 'lucruri muzicale rotunde' și 'lucruri muzicale pătrate'.
+>
+> 🎓 ['Geometrie non-plană' vs. 'plană'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
+>
+> Derivat din terminologia matematică, geometria non-plană vs. plană se referă la măsurarea distanțelor între puncte fie prin metode geometrice 'plane' ([Euclidiene](https://wikipedia.org/wiki/Euclidean_geometry)), fie 'non-plane' (non-Euclidiene).
+>
+>'Plană' în acest context se referă la geometria Euclidiană (părți din care sunt predate ca geometrie 'plană'), iar non-plană se referă la geometria non-Euclidiană. Ce legătură are geometria cu învățarea automată? Ei bine, ca două domenii care sunt bazate pe matematică, trebuie să existe o modalitate comună de a măsura distanțele între puncte în clustere, iar aceasta poate fi făcută într-un mod 'plan' sau 'non-plan', în funcție de natura datelor. [Distanțele Euclidiene](https://wikipedia.org/wiki/Euclidean_distance) sunt măsurate ca lungimea unui segment de linie între două puncte. [Distanțele non-Euclidiene](https://wikipedia.org/wiki/Non-Euclidean_geometry) sunt măsurate de-a lungul unei curbe. Dacă datele tale, vizualizate, par să nu existe pe un plan, s-ar putea să fie nevoie să folosești un algoritm specializat pentru a le gestiona.
+>
+
+> Infografic de [Dasani Madipalli](https://twitter.com/dasani_decoded)
+>
+> 🎓 ['Distanțe'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
+>
+> Clusterele sunt definite de matricea lor de distanțe, de exemplu, distanțele între puncte. Această distanță poate fi măsurată în câteva moduri. Clusterele Euclidiene sunt definite de media valorilor punctelor și conțin un 'centroid' sau punct central. Distanțele sunt astfel măsurate prin distanța față de acel centroid. Distanțele non-Euclidiene se referă la 'clustroizi', punctul cel mai apropiat de alte puncte. Clustroizii, la rândul lor, pot fi definiți în diverse moduri.
+>
+> 🎓 ['Constrâns'](https://wikipedia.org/wiki/Constrained_clustering)
+>
+> [Clustering-ul Constrâns](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) introduce 'învățarea semi-supervizată' în această metodă nesupervizată. Relațiile dintre puncte sunt marcate ca 'nu se pot lega' sau 'trebuie să se lege', astfel încât unele reguli sunt impuse setului de date.
+>
+>Un exemplu: Dacă un algoritm este lăsat liber pe un lot de date neetichetate sau semi-etichetate, clusterele pe care le produce pot fi de calitate slabă. În exemplul de mai sus, clusterele ar putea grupa 'lucruri muzicale rotunde', 'lucruri muzicale pătrate', 'lucruri triunghiulare' și 'fursecuri'. Dacă i se oferă câteva constrângeri sau reguli de urmat ("elementul trebuie să fie din plastic", "elementul trebuie să poată produce muzică"), acest lucru poate ajuta la 'constrângerea' algoritmului să facă alegeri mai bune.
+>
+> 🎓 'Densitate'
+>
+> Datele care sunt 'zgomotoase' sunt considerate a fi 'dense'. Distanțele între punctele din fiecare cluster pot fi, la examinare, mai mult sau mai puțin dense sau 'aglomerate', și astfel aceste date trebuie analizate cu metoda de clustering adecvată. [Acest articol](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) demonstrează diferența dintre utilizarea clustering-ului K-Means vs. algoritmii HDBSCAN pentru a explora un set de date zgomotos cu densitate inegală a clusterelor.
+
+## Algoritmi de clustering
+
+Există peste 100 de algoritmi de clustering, iar utilizarea lor depinde de natura datelor disponibile. Să discutăm despre câțiva dintre cei mai importanți:
+
+- **Clustering ierarhic**. Dacă un obiect este clasificat prin proximitatea sa față de un obiect apropiat, mai degrabă decât față de unul mai îndepărtat, clusterele sunt formate pe baza distanței membrilor față de și de la alte obiecte. Clustering-ul aglomerativ din Scikit-learn este ierarhic.
+
+ 
+ > Infografic de [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Clustering pe bază de centroid**. Acest algoritm popular necesită alegerea 'k', sau numărul de clustere de format, după care algoritmul determină punctul central al unui cluster și adună date în jurul acelui punct. [Clustering-ul K-means](https://wikipedia.org/wiki/K-means_clustering) este o versiune populară a clustering-ului pe bază de centroid. Centrul este determinat de media cea mai apropiată, de aici și numele. Distanța pătrată față de cluster este minimizată.
+
+ 
+ > Infografic de [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Clustering bazat pe distribuție**. Bazat pe modelarea statistică, clustering-ul bazat pe distribuție se concentrează pe determinarea probabilității ca un punct de date să aparțină unui cluster și îl atribuie corespunzător. Metodele de amestecuri Gaussiene aparțin acestui tip.
+
+- **Clustering bazat pe densitate**. Punctele de date sunt atribuite clusterelor pe baza densității lor sau a grupării lor în jurul altor puncte. Punctele de date aflate departe de grup sunt considerate outlieri sau zgomot. DBSCAN, Mean-shift și OPTICS aparțin acestui tip de clustering.
+
+- **Clustering bazat pe grilă**. Pentru seturi de date multidimensionale, se creează o grilă, iar datele sunt împărțite între celulele grilei, creând astfel clustere.
+
+## Exercițiu - grupează datele tale
+
+Clustering-ul ca tehnică este foarte ajutat de o vizualizare adecvată, așa că să începem prin a vizualiza datele noastre muzicale. Acest exercițiu ne va ajuta să decidem care dintre metodele de clustering ar trebui să folosim cel mai eficient pentru natura acestor date.
+
+1. Deschide fișierul [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) din acest folder.
+
+1. Importă pachetul `Seaborn` pentru o vizualizare bună a datelor.
+
+ ```python
+ !pip install seaborn
+ ```
+
+1. Adaugă datele despre melodii din [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Încarcă un dataframe cu câteva date despre melodii. Pregătește-te să explorezi aceste date importând bibliotecile și afișând datele:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import pandas as pd
+
+ df = pd.read_csv("../data/nigerian-songs.csv")
+ df.head()
+ ```
+
+ Verifică primele câteva linii de date:
+
+ | | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
+ | --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- |
+ | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 |
+ | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 |
+| 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 |
+| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 |
+| 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 |
+
+1. Obține informații despre dataframe, apelând `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Rezultatul arată astfel:
+
+ ```output
+
+ RangeIndex: 530 entries, 0 to 529
+ Data columns (total 16 columns):
+ # Column Non-Null Count Dtype
+ --- ------ -------------- -----
+ 0 name 530 non-null object
+ 1 album 530 non-null object
+ 2 artist 530 non-null object
+ 3 artist_top_genre 530 non-null object
+ 4 release_date 530 non-null int64
+ 5 length 530 non-null int64
+ 6 popularity 530 non-null int64
+ 7 danceability 530 non-null float64
+ 8 acousticness 530 non-null float64
+ 9 energy 530 non-null float64
+ 10 instrumentalness 530 non-null float64
+ 11 liveness 530 non-null float64
+ 12 loudness 530 non-null float64
+ 13 speechiness 530 non-null float64
+ 14 tempo 530 non-null float64
+ 15 time_signature 530 non-null int64
+ dtypes: float64(8), int64(4), object(4)
+ memory usage: 66.4+ KB
+ ```
+
+1. Verifică din nou valorile nule, apelând `isnull()` și verificând că suma este 0:
+
+ ```python
+ df.isnull().sum()
+ ```
+
+ Totul arată bine:
+
+ ```output
+ name 0
+ album 0
+ artist 0
+ artist_top_genre 0
+ release_date 0
+ length 0
+ popularity 0
+ danceability 0
+ acousticness 0
+ energy 0
+ instrumentalness 0
+ liveness 0
+ loudness 0
+ speechiness 0
+ tempo 0
+ time_signature 0
+ dtype: int64
+ ```
+
+1. Descrie datele:
+
+ ```python
+ df.describe()
+ ```
+
+ | | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
+ | ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- |
+ | count | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 |
+ | mean | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011 | 0.130748 | 116.487864 | 3.986792 |
+ | std | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 |
+ | min | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 |
+ | 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 |
+ | 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 |
+ | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
+ | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
+
+> 🤔 Dacă lucrăm cu clustering, o metodă nesupravegheată care nu necesită date etichetate, de ce arătăm aceste date cu etichete? În faza de explorare a datelor, acestea sunt utile, dar nu sunt necesare pentru ca algoritmii de clustering să funcționeze. Ai putea la fel de bine să elimini anteturile coloanelor și să te referi la date prin numărul coloanei.
+
+Privește valorile generale ale datelor. Observă că popularitatea poate fi '0', ceea ce indică melodii care nu au un clasament. Să eliminăm aceste valori în curând.
+
+1. Folosește un barplot pentru a afla cele mai populare genuri:
+
+ ```python
+ import seaborn as sns
+
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top[:5].index,y=top[:5].values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ 
+
+✅ Dacă dorești să vezi mai multe valori de top, schimbă topul `[:5]` la o valoare mai mare sau elimină-l pentru a vedea totul.
+
+Observă că atunci când genul de top este descris ca 'Missing', înseamnă că Spotify nu l-a clasificat, așa că să scăpăm de acesta.
+
+1. Elimină datele lipsă prin filtrarea lor
+
+ ```python
+ df = df[df['artist_top_genre'] != 'Missing']
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ Acum verifică din nou genurile:
+
+ 
+
+1. Cele trei genuri de top domină acest set de date. Să ne concentrăm pe `afro dancehall`, `afropop` și `nigerian pop`, și să filtrăm suplimentar setul de date pentru a elimina orice valoare de popularitate 0 (ceea ce înseamnă că nu a fost clasificată cu o popularitate în setul de date și poate fi considerată zgomot pentru scopurile noastre):
+
+ ```python
+ df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
+ df = df[(df['popularity'] > 0)]
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+1. Fă un test rapid pentru a vedea dacă datele corelează într-un mod deosebit de puternic:
+
+ ```python
+ corrmat = df.corr(numeric_only=True)
+ f, ax = plt.subplots(figsize=(12, 9))
+ sns.heatmap(corrmat, vmax=.8, square=True)
+ ```
+
+ 
+
+ Singura corelație puternică este între `energy` și `loudness`, ceea ce nu este prea surprinzător, având în vedere că muzica tare este de obicei destul de energică. În rest, corelațiile sunt relativ slabe. Va fi interesant să vedem ce poate face un algoritm de clustering cu aceste date.
+
+ > 🎓 Reține că corelația nu implică cauzalitate! Avem dovada corelației, dar nu și dovada cauzalității. Un [site web amuzant](https://tylervigen.com/spurious-correlations) are câteva vizualizări care subliniază acest punct.
+
+Există vreo convergență în acest set de date în jurul popularității percepute a unei melodii și a dansabilității? Un FacetGrid arată că există cercuri concentrice care se aliniază, indiferent de gen. Ar putea fi că gusturile nigeriene converg la un anumit nivel de dansabilitate pentru acest gen?
+
+✅ Încearcă diferite puncte de date (energy, loudness, speechiness) și mai multe sau diferite genuri muzicale. Ce poți descoperi? Privește tabelul `df.describe()` pentru a vedea răspândirea generală a punctelor de date.
+
+### Exercițiu - distribuția datelor
+
+Aceste trei genuri sunt semnificativ diferite în percepția dansabilității lor, bazată pe popularitate?
+
+1. Examinează distribuția datelor pentru genurile noastre de top în ceea ce privește popularitatea și dansabilitatea de-a lungul unei axe x și y date.
+
+ ```python
+ sns.set_theme(style="ticks")
+
+ g = sns.jointplot(
+ data=df,
+ x="popularity", y="danceability", hue="artist_top_genre",
+ kind="kde",
+ )
+ ```
+
+ Poți descoperi cercuri concentrice în jurul unui punct general de convergență, arătând distribuția punctelor.
+
+ > 🎓 Reține că acest exemplu folosește un grafic KDE (Kernel Density Estimate) care reprezintă datele folosind o curbă continuă de densitate a probabilității. Acest lucru ne permite să interpretăm datele atunci când lucrăm cu distribuții multiple.
+
+ În general, cele trei genuri se aliniază vag în ceea ce privește popularitatea și dansabilitatea. Determinarea clusterelor în aceste date vag aliniate va fi o provocare:
+
+ 
+
+1. Creează un scatter plot:
+
+ ```python
+ sns.FacetGrid(df, hue="artist_top_genre", height=5) \
+ .map(plt.scatter, "popularity", "danceability") \
+ .add_legend()
+ ```
+
+ Un scatterplot pe aceleași axe arată un model similar de convergență
+
+ 
+
+În general, pentru clustering, poți folosi scatterplots pentru a arăta clusterele de date, așa că stăpânirea acestui tip de vizualizare este foarte utilă. În lecția următoare, vom lua aceste date filtrate și vom folosi clustering-ul k-means pentru a descoperi grupuri în aceste date care par să se suprapună în moduri interesante.
+
+---
+
+## 🚀Provocare
+
+În pregătirea pentru lecția următoare, creează un grafic despre diferitele algoritmi de clustering pe care i-ai putea descoperi și folosi într-un mediu de producție. Ce tipuri de probleme încearcă să abordeze clustering-ul?
+
+## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare & Studiu Individual
+
+Înainte de a aplica algoritmi de clustering, așa cum am învățat, este o idee bună să înțelegi natura setului tău de date. Citește mai multe despre acest subiect [aici](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
+
+[Acest articol util](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) te ghidează prin diferitele moduri în care algoritmii de clustering se comportă, având în vedere diferite forme de date.
+
+## Temă
+
+[Cercetează alte vizualizări pentru clustering](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/5-Clustering/1-Visualize/assignment.md b/translations/ro/5-Clustering/1-Visualize/assignment.md
new file mode 100644
index 00000000..6781c98b
--- /dev/null
+++ b/translations/ro/5-Clustering/1-Visualize/assignment.md
@@ -0,0 +1,25 @@
+
+# Cercetare alte vizualizări pentru clustering
+
+## Instrucțiuni
+
+În această lecție, ai lucrat cu câteva tehnici de vizualizare pentru a înțelege cum să îți reprezinți datele în pregătirea pentru clustering. Scatterplot-urile, în special, sunt utile pentru identificarea grupurilor de obiecte. Cercetează diferite metode și biblioteci pentru a crea scatterplot-uri și documentează-ți munca într-un notebook. Poți folosi datele din această lecție, din alte lecții sau date pe care le obții singur (te rugăm să menționezi sursa acestora în notebook-ul tău). Reprezintă câteva date folosind scatterplot-uri și explică ce descoperi.
+
+## Rubrică
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------- |
+| | Este prezentat un notebook cu cinci scatterplot-uri bine documentate | Este prezentat un notebook cu mai puțin de cinci scatterplot-uri și este mai puțin bine documentat | Este prezentat un notebook incomplet |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/5-Clustering/1-Visualize/solution/Julia/README.md b/translations/ro/5-Clustering/1-Visualize/solution/Julia/README.md
new file mode 100644
index 00000000..fd3fe9bb
--- /dev/null
+++ b/translations/ro/5-Clustering/1-Visualize/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/5-Clustering/2-K-Means/README.md b/translations/ro/5-Clustering/2-K-Means/README.md
new file mode 100644
index 00000000..06f67578
--- /dev/null
+++ b/translations/ro/5-Clustering/2-K-Means/README.md
@@ -0,0 +1,261 @@
+
+# Gruparea K-Means
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+În această lecție, vei învăța cum să creezi grupuri folosind Scikit-learn și setul de date despre muzica nigeriană pe care l-ai importat anterior. Vom acoperi elementele de bază ale K-Means pentru grupare. Ține minte că, așa cum ai învățat în lecția anterioară, există multe moduri de a lucra cu grupuri, iar metoda pe care o alegi depinde de datele tale. Vom încerca K-Means, deoarece este cea mai comună tehnică de grupare. Să începem!
+
+Termeni pe care îi vei învăța:
+
+- Scorul siluetei
+- Metoda cotului
+- Inerție
+- Variație
+
+## Introducere
+
+[Gruparea K-Means](https://wikipedia.org/wiki/K-means_clustering) este o metodă derivată din domeniul procesării semnalelor. Este utilizată pentru a împărți și partitiona grupuri de date în 'k' grupuri folosind o serie de observații. Fiecare observație funcționează pentru a grupa un punct de date dat cât mai aproape de 'media' sa cea mai apropiată, sau punctul central al unui grup.
+
+Grupurile pot fi vizualizate ca [diagrame Voronoi](https://wikipedia.org/wiki/Voronoi_diagram), care includ un punct (sau 'sămânță') și regiunea corespunzătoare acestuia.
+
+
+
+> infografic de [Jen Looper](https://twitter.com/jenlooper)
+
+Procesul de grupare K-Means [se execută în trei pași](https://scikit-learn.org/stable/modules/clustering.html#k-means):
+
+1. Algoritmul selectează un număr k de puncte centrale prin eșantionare din setul de date. După aceasta, se repetă:
+ 1. Atribuie fiecare eșantion celui mai apropiat centroid.
+ 2. Creează noi centroizi calculând valoarea medie a tuturor eșantioanelor atribuite centroidelor anterioare.
+ 3. Apoi, calculează diferența dintre noii și vechii centroizi și repetă până când centroizii se stabilizează.
+
+Un dezavantaj al utilizării K-Means este faptul că trebuie să stabilești 'k', adică numărul de centroizi. Din fericire, 'metoda cotului' ajută la estimarea unei valori bune de început pentru 'k'. Vei încerca acest lucru în curând.
+
+## Prerechizite
+
+Vei lucra în fișierul [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb) al acestei lecții, care include importul de date și curățarea preliminară pe care ai făcut-o în lecția anterioară.
+
+## Exercițiu - pregătire
+
+Începe prin a analiza din nou datele despre melodii.
+
+1. Creează un boxplot, apelând `boxplot()` pentru fiecare coloană:
+
+ ```python
+ plt.figure(figsize=(20,20), dpi=200)
+
+ plt.subplot(4,3,1)
+ sns.boxplot(x = 'popularity', data = df)
+
+ plt.subplot(4,3,2)
+ sns.boxplot(x = 'acousticness', data = df)
+
+ plt.subplot(4,3,3)
+ sns.boxplot(x = 'energy', data = df)
+
+ plt.subplot(4,3,4)
+ sns.boxplot(x = 'instrumentalness', data = df)
+
+ plt.subplot(4,3,5)
+ sns.boxplot(x = 'liveness', data = df)
+
+ plt.subplot(4,3,6)
+ sns.boxplot(x = 'loudness', data = df)
+
+ plt.subplot(4,3,7)
+ sns.boxplot(x = 'speechiness', data = df)
+
+ plt.subplot(4,3,8)
+ sns.boxplot(x = 'tempo', data = df)
+
+ plt.subplot(4,3,9)
+ sns.boxplot(x = 'time_signature', data = df)
+
+ plt.subplot(4,3,10)
+ sns.boxplot(x = 'danceability', data = df)
+
+ plt.subplot(4,3,11)
+ sns.boxplot(x = 'length', data = df)
+
+ plt.subplot(4,3,12)
+ sns.boxplot(x = 'release_date', data = df)
+ ```
+
+ Aceste date sunt puțin zgomotoase: observând fiecare coloană ca boxplot, poți vedea valori extreme.
+
+ 
+
+Ai putea parcurge setul de date și elimina aceste valori extreme, dar acest lucru ar face datele destul de minimale.
+
+1. Deocamdată, alege coloanele pe care le vei folosi pentru exercițiul de grupare. Selectează coloane cu intervale similare și codifică coloana `artist_top_genre` ca date numerice:
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+ le = LabelEncoder()
+
+ X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')]
+
+ y = df['artist_top_genre']
+
+ X['artist_top_genre'] = le.fit_transform(X['artist_top_genre'])
+
+ y = le.transform(y)
+ ```
+
+1. Acum trebuie să alegi câte grupuri să vizezi. Știi că există 3 genuri muzicale pe care le-am extras din setul de date, așa că să încercăm cu 3:
+
+ ```python
+ from sklearn.cluster import KMeans
+
+ nclusters = 3
+ seed = 0
+
+ km = KMeans(n_clusters=nclusters, random_state=seed)
+ km.fit(X)
+
+ # Predict the cluster for each data point
+
+ y_cluster_kmeans = km.predict(X)
+ y_cluster_kmeans
+ ```
+
+Vei vedea un array afișat cu grupurile prezise (0, 1 sau 2) pentru fiecare rând din dataframe.
+
+1. Folosește acest array pentru a calcula un 'scor al siluetei':
+
+ ```python
+ from sklearn import metrics
+ score = metrics.silhouette_score(X, y_cluster_kmeans)
+ score
+ ```
+
+## Scorul siluetei
+
+Caută un scor al siluetei mai aproape de 1. Acest scor variază de la -1 la 1, iar dacă scorul este 1, grupul este dens și bine separat de celelalte grupuri. O valoare apropiată de 0 reprezintă grupuri suprapuse, cu eșantioane foarte apropiate de limita de decizie a grupurilor vecine. [(Sursă)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
+
+Scorul nostru este **.53**, deci chiar la mijloc. Acest lucru indică faptul că datele noastre nu sunt deosebit de potrivite pentru acest tip de grupare, dar să continuăm.
+
+### Exercițiu - construiește un model
+
+1. Importă `KMeans` și începe procesul de grupare.
+
+ ```python
+ from sklearn.cluster import KMeans
+ wcss = []
+
+ for i in range(1, 11):
+ kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)
+ kmeans.fit(X)
+ wcss.append(kmeans.inertia_)
+
+ ```
+
+ Există câteva părți aici care merită explicate.
+
+ > 🎓 range: Acestea sunt iterațiile procesului de grupare.
+
+ > 🎓 random_state: "Determină generarea de numere aleatoare pentru inițializarea centroizilor." [Sursă](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
+
+ > 🎓 WCSS: "suma pătratelor din interiorul grupurilor" măsoară distanța medie pătrată a tuturor punctelor dintr-un grup față de centrul grupului. [Sursă](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
+
+ > 🎓 Inerție: Algoritmii K-Means încearcă să aleagă centroizi pentru a minimiza 'inerția', "o măsură a cât de coerente sunt grupurile intern." [Sursă](https://scikit-learn.org/stable/modules/clustering.html). Valoarea este adăugată la variabila wcss la fiecare iterație.
+
+ > 🎓 k-means++: În [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) poți folosi optimizarea 'k-means++', care "inițializează centroizii pentru a fi (în general) distanțați unul de celălalt, conducând probabil la rezultate mai bune decât inițializarea aleatorie."
+
+### Metoda cotului
+
+Anterior, ai presupus că, deoarece ai vizat 3 genuri muzicale, ar trebui să alegi 3 grupuri. Dar este acesta cazul?
+
+1. Folosește 'metoda cotului' pentru a te asigura.
+
+ ```python
+ plt.figure(figsize=(10,5))
+ sns.lineplot(x=range(1, 11), y=wcss, marker='o', color='red')
+ plt.title('Elbow')
+ plt.xlabel('Number of clusters')
+ plt.ylabel('WCSS')
+ plt.show()
+ ```
+
+ Folosește variabila `wcss` pe care ai construit-o în pasul anterior pentru a crea un grafic care arată unde este 'cotul', ceea ce indică numărul optim de grupuri. Poate chiar **este** 3!
+
+ 
+
+## Exercițiu - afișează grupurile
+
+1. Încearcă procesul din nou, de data aceasta setând trei grupuri și afișează grupurile ca un scatterplot:
+
+ ```python
+ from sklearn.cluster import KMeans
+ kmeans = KMeans(n_clusters = 3)
+ kmeans.fit(X)
+ labels = kmeans.predict(X)
+ plt.scatter(df['popularity'],df['danceability'],c = labels)
+ plt.xlabel('popularity')
+ plt.ylabel('danceability')
+ plt.show()
+ ```
+
+1. Verifică acuratețea modelului:
+
+ ```python
+ labels = kmeans.labels_
+
+ correct_labels = sum(y == labels)
+
+ print("Result: %d out of %d samples were correctly labeled." % (correct_labels, y.size))
+
+ print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size)))
+ ```
+
+ Acuratețea acestui model nu este foarte bună, iar forma grupurilor îți oferă un indiciu de ce.
+
+ 
+
+ Aceste date sunt prea dezechilibrate, prea puțin corelate și există prea multă variație între valorile coloanelor pentru a grupa bine. De fapt, grupurile care se formează sunt probabil influențate sau distorsionate puternic de cele trei categorii de genuri pe care le-am definit mai sus. A fost un proces de învățare!
+
+ În documentația Scikit-learn, poți vedea că un model ca acesta, cu grupuri care nu sunt foarte bine delimitate, are o problemă de 'variație':
+
+ 
+ > Infografic din Scikit-learn
+
+## Variație
+
+Variația este definită ca "media diferențelor pătrate față de medie" [(Sursă)](https://www.mathsisfun.com/data/standard-deviation.html). În contextul acestei probleme de grupare, se referă la datele ale căror valori tind să se abată prea mult de la medie.
+
+✅ Acesta este un moment excelent pentru a te gândi la toate modurile în care ai putea corecta această problemă. Ajustezi datele puțin mai mult? Folosești alte coloane? Utilizezi un alt algoritm? Sugestie: Încearcă [scalarea datelor](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) pentru a le normaliza și testează alte coloane.
+
+> Încearcă acest '[calculator de variație](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' pentru a înțelege mai bine conceptul.
+
+---
+
+## 🚀Provocare
+
+Petrece ceva timp cu acest notebook, ajustând parametrii. Poți îmbunătăți acuratețea modelului prin curățarea mai bună a datelor (eliminând valorile extreme, de exemplu)? Poți folosi ponderi pentru a acorda mai multă greutate anumitor eșantioane de date. Ce altceva poți face pentru a crea grupuri mai bune?
+
+Sugestie: Încearcă să scalezi datele. Există cod comentat în notebook care adaugă scalarea standard pentru a face ca valorile coloanelor să semene mai mult între ele în termeni de interval. Vei descoperi că, deși scorul siluetei scade, 'cotul' din graficul cotului se netezește. Acest lucru se întâmplă deoarece lăsarea datelor nescalate permite datelor cu mai puțină variație să aibă mai multă greutate. Citește mai multe despre această problemă [aici](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226).
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Aruncă o privire la un simulator K-Means [cum ar fi acesta](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). Poți folosi acest instrument pentru a vizualiza punctele de date eșantion și pentru a determina centroizii acestora. Poți edita aleatoritatea datelor, numărul de grupuri și numărul de centroizi. Te ajută acest lucru să îți faci o idee despre cum pot fi grupate datele?
+
+De asemenea, aruncă o privire la [acest material despre K-Means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) de la Stanford.
+
+## Temă
+
+[Încearcă metode diferite de grupare](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/5-Clustering/2-K-Means/assignment.md b/translations/ro/5-Clustering/2-K-Means/assignment.md
new file mode 100644
index 00000000..588b5808
--- /dev/null
+++ b/translations/ro/5-Clustering/2-K-Means/assignment.md
@@ -0,0 +1,25 @@
+
+# Încercați metode diferite de grupare
+
+## Instrucțiuni
+
+În această lecție ați învățat despre gruparea K-Means. Uneori, K-Means nu este potrivit pentru datele dvs. Creați un notebook folosind date fie din aceste lecții, fie din altă sursă (creditați sursa) și prezentați o metodă diferită de grupare, care să NU folosească K-Means. Ce ați învățat?
+
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------- |
+| | Este prezentat un notebook cu un model de grupare bine documentat | Este prezentat un notebook fără o documentație bună și/sau incomplet | Este trimisă o lucrare incompletă |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/5-Clustering/2-K-Means/solution/Julia/README.md b/translations/ro/5-Clustering/2-K-Means/solution/Julia/README.md
new file mode 100644
index 00000000..8651fed2
--- /dev/null
+++ b/translations/ro/5-Clustering/2-K-Means/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/5-Clustering/README.md b/translations/ro/5-Clustering/README.md
new file mode 100644
index 00000000..75bfce29
--- /dev/null
+++ b/translations/ro/5-Clustering/README.md
@@ -0,0 +1,42 @@
+
+# Modele de clustering pentru învățarea automată
+
+Clustering-ul este o sarcină de învățare automată care urmărește să găsească obiecte ce seamănă între ele și să le grupeze în grupuri numite clustere. Ceea ce diferențiază clustering-ul de alte abordări în învățarea automată este faptul că procesul se desfășoară automat; de fapt, putem spune că este opusul învățării supravegheate.
+
+## Subiect regional: modele de clustering pentru gusturile muzicale ale publicului din Nigeria 🎧
+
+Publicul divers din Nigeria are gusturi muzicale variate. Folosind date colectate de pe Spotify (inspirate de [acest articol](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)), să analizăm câteva melodii populare în Nigeria. Acest set de date include informații despre scorul de 'danceability', 'acousticness', intensitate, 'speechiness', popularitate și energie ale diferitelor melodii. Va fi interesant să descoperim modele în aceste date!
+
+
+
+> Fotografie realizată de Marcela Laskoski pe Unsplash
+
+În această serie de lecții, veți descoperi noi modalități de a analiza date folosind tehnici de clustering. Clustering-ul este deosebit de util atunci când setul de date nu are etichete. Dacă are etichete, atunci tehnicile de clasificare, precum cele pe care le-ați învățat în lecțiile anterioare, ar putea fi mai utile. Dar în cazurile în care doriți să grupați date neetichetate, clustering-ul este o metodă excelentă pentru a descoperi modele.
+
+> Există instrumente low-code utile care vă pot ajuta să învățați cum să lucrați cu modele de clustering. Încercați [Azure ML pentru această sarcină](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Lecții
+
+1. [Introducere în clustering](1-Visualize/README.md)
+2. [Clustering K-Means](2-K-Means/README.md)
+
+## Credite
+
+Aceste lecții au fost scrise cu 🎶 de [Jen Looper](https://www.twitter.com/jenlooper) cu recenzii utile de la [Rishit Dagli](https://rishit_dagli) și [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan).
+
+Setul de date [Nigerian Songs](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) a fost preluat de pe Kaggle, fiind colectat de pe Spotify.
+
+Exemple utile de K-Means care au ajutat la crearea acestei lecții includ această [explorare a irisului](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), acest [notebook introductiv](https://www.kaggle.com/prashant111/k-means-clustering-with-python) și acest [exemplu ipotetic de ONG](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering).
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/1-Introduction-to-NLP/README.md b/translations/ro/6-NLP/1-Introduction-to-NLP/README.md
new file mode 100644
index 00000000..89db3b4a
--- /dev/null
+++ b/translations/ro/6-NLP/1-Introduction-to-NLP/README.md
@@ -0,0 +1,179 @@
+
+# Introducere în procesarea limbajului natural
+
+Această lecție acoperă o scurtă istorie și concepte importante ale *procesării limbajului natural*, un subdomeniu al *lingvisticii computaționale*.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Introducere
+
+NLP, cum este cunoscut în mod obișnuit, este unul dintre cele mai cunoscute domenii în care învățarea automată a fost aplicată și utilizată în software-ul de producție.
+
+✅ Poți să te gândești la un software pe care îl folosești zilnic și care probabil are integrat NLP? Ce zici de programele de procesare a textului sau aplicațiile mobile pe care le folosești regulat?
+
+Vei învăța despre:
+
+- **Ideea limbajelor**. Cum s-au dezvoltat limbajele și care au fost principalele domenii de studiu.
+- **Definiții și concepte**. Vei învăța definiții și concepte despre cum procesează computerele textul, inclusiv analizarea, gramatica și identificarea substantivelor și verbelor. Există câteva sarcini de codare în această lecție, iar mai multe concepte importante sunt introduse, pe care le vei învăța să le codifici în lecțiile următoare.
+
+## Lingvistică computațională
+
+Lingvistica computațională este un domeniu de cercetare și dezvoltare de-a lungul multor decenii care studiază modul în care computerele pot lucra cu limbajele, le pot înțelege, traduce și comunica. Procesarea limbajului natural (NLP) este un domeniu conex, concentrat pe modul în care computerele pot procesa limbajele 'naturale', adică limbajele umane.
+
+### Exemplu - dictare pe telefon
+
+Dacă ai dictat vreodată unui telefon în loc să tastezi sau ai întrebat un asistent virtual ceva, discursul tău a fost convertit într-o formă text și apoi procesat sau *analizat* din limbajul pe care l-ai vorbit. Cuvintele-cheie detectate au fost apoi procesate într-un format pe care telefonul sau asistentul l-a putut înțelege și pe baza căruia a acționat.
+
+
+> Înțelegerea lingvistică reală este dificilă! Imagine de [Jen Looper](https://twitter.com/jenlooper)
+
+### Cum este posibilă această tehnologie?
+
+Acest lucru este posibil deoarece cineva a scris un program de computer pentru a face acest lucru. Cu câteva decenii în urmă, unii scriitori de science fiction au prezis că oamenii vor vorbi în principal cu computerele lor, iar computerele vor înțelege întotdeauna exact ce au vrut să spună. Din păcate, s-a dovedit a fi o problemă mai dificilă decât și-au imaginat mulți, și, deși este o problemă mult mai bine înțeleasă astăzi, există provocări semnificative în atingerea unei procesări 'perfecte' a limbajului natural atunci când vine vorba de înțelegerea sensului unei propoziții. Aceasta este o problemă deosebit de dificilă când vine vorba de înțelegerea umorului sau detectarea emoțiilor, cum ar fi sarcasmul, într-o propoziție.
+
+În acest moment, s-ar putea să îți amintești de orele de școală în care profesorul acoperea părțile de gramatică dintr-o propoziție. În unele țări, elevii sunt învățați gramatică și lingvistică ca materie dedicată, dar în multe, aceste subiecte sunt incluse ca parte a învățării unui limbaj: fie limba maternă în școala primară (învățarea cititului și scrisului), fie o limbă secundară în școala gimnazială sau liceu. Nu te îngrijora dacă nu ești expert în diferențierea substantivelor de verbe sau adverbelor de adjective!
+
+Dacă te lupți cu diferența dintre *prezentul simplu* și *prezentul continuu*, nu ești singur. Acesta este un lucru provocator pentru mulți oameni, chiar și pentru vorbitorii nativi ai unei limbi. Vestea bună este că computerele sunt foarte bune la aplicarea regulilor formale, iar tu vei învăța să scrii cod care poate *analiza* o propoziție la fel de bine ca un om. Provocarea mai mare pe care o vei examina mai târziu este înțelegerea *sensului* și *sentimentului* unei propoziții.
+
+## Cerințe preliminare
+
+Pentru această lecție, cerința principală este să poți citi și înțelege limba lecției. Nu există probleme de matematică sau ecuații de rezolvat. Deși autorul original a scris această lecție în engleză, ea este tradusă și în alte limbi, așa că s-ar putea să citești o traducere. Există exemple în care sunt utilizate mai multe limbi diferite (pentru a compara regulile gramaticale diferite ale limbilor). Acestea *nu* sunt traduse, dar textul explicativ este, astfel încât sensul ar trebui să fie clar.
+
+Pentru sarcinile de codare, vei folosi Python, iar exemplele sunt în Python 3.8.
+
+În această secțiune, vei avea nevoie și vei folosi:
+
+- **Înțelegerea Python 3**. Înțelegerea limbajului de programare Python 3, această lecție folosește input, bucle, citirea fișierelor, array-uri.
+- **Visual Studio Code + extensie**. Vom folosi Visual Studio Code și extensia sa pentru Python. Poți folosi și un IDE Python la alegerea ta.
+- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) este o bibliotecă simplificată de procesare a textului pentru Python. Urmează instrucțiunile de pe site-ul TextBlob pentru a-l instala pe sistemul tău (instalează și corpora, așa cum este arătat mai jos):
+
+ ```bash
+ pip install -U textblob
+ python -m textblob.download_corpora
+ ```
+
+> 💡 Sfat: Poți rula Python direct în mediile VS Code. Verifică [documentația](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) pentru mai multe informații.
+
+## Vorbind cu mașinile
+
+Istoria încercării de a face computerele să înțeleagă limbajul uman datează de câteva decenii, iar unul dintre primii oameni de știință care a luat în considerare procesarea limbajului natural a fost *Alan Turing*.
+
+### Testul 'Turing'
+
+Când Turing cerceta *inteligența artificială* în anii 1950, el s-a gândit dacă un test conversațional ar putea fi dat unui om și unui computer (prin corespondență scrisă), unde omul din conversație nu era sigur dacă conversa cu un alt om sau cu un computer.
+
+Dacă, după o anumită durată a conversației, omul nu putea determina dacă răspunsurile proveneau de la un computer sau nu, atunci putea fi spus că computerul *gândește*?
+
+### Inspirația - 'jocul de imitație'
+
+Ideea pentru acest test a venit dintr-un joc de petrecere numit *Jocul de Imitație*, unde un interogator este singur într-o cameră și are sarcina de a determina care dintre două persoane (în altă cameră) sunt bărbat și femeie, respectiv. Interogatorul poate trimite note și trebuie să încerce să gândească întrebări ale căror răspunsuri scrise dezvăluie genul persoanei misterioase. Desigur, jucătorii din cealaltă cameră încearcă să inducă în eroare interogatorul prin răspunsuri care să-l deruteze sau să-l confuzeze, în timp ce dau impresia că răspund sincer.
+
+### Dezvoltarea Eliza
+
+În anii 1960, un om de știință de la MIT numit *Joseph Weizenbaum* a dezvoltat [*Eliza*](https://wikipedia.org/wiki/ELIZA), un 'terapeut' computerizat care punea întrebări omului și dădea impresia că înțelege răspunsurile acestuia. Totuși, deși Eliza putea analiza o propoziție și identifica anumite construcții gramaticale și cuvinte-cheie pentru a da un răspuns rezonabil, nu putea fi spus că *înțelege* propoziția. Dacă Eliza era prezentată cu o propoziție în formatul "**Eu sunt** trist", ar putea rearanja și substitui cuvinte în propoziție pentru a forma răspunsul "De cât timp **ești** trist?".
+
+Acest lucru dădea impresia că Eliza înțelegea afirmația și punea o întrebare de continuare, în timp ce, în realitate, schimba timpul verbal și adăuga câteva cuvinte. Dacă Eliza nu putea identifica un cuvânt-cheie pentru care avea un răspuns, ar fi dat un răspuns aleatoriu care ar fi putut fi aplicabil la multe afirmații diferite. Eliza putea fi ușor păcălită, de exemplu, dacă un utilizator scria "**Tu ești** o bicicletă", ar putea răspunde cu "De cât timp **sunt** o bicicletă?", în loc de un răspuns mai rațional.
+
+[](https://youtu.be/RMK9AphfLco "Chatting with Eliza")
+
+> 🎥 Click pe imaginea de mai sus pentru un videoclip despre programul original ELIZA
+
+> Notă: Poți citi descrierea originală a [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) publicată în 1966 dacă ai un cont ACM. Alternativ, citește despre Eliza pe [wikipedia](https://wikipedia.org/wiki/ELIZA)
+
+## Exercițiu - codarea unui bot conversațional de bază
+
+Un bot conversațional, precum Eliza, este un program care solicită input de la utilizator și pare să înțeleagă și să răspundă inteligent. Spre deosebire de Eliza, botul nostru nu va avea mai multe reguli care să-i dea impresia unei conversații inteligente. În schimb, botul nostru va avea o singură abilitate, aceea de a menține conversația cu răspunsuri aleatorii care ar putea funcționa în aproape orice conversație trivială.
+
+### Planul
+
+Pașii tăi pentru construirea unui bot conversațional:
+
+1. Printează instrucțiuni care sfătuiesc utilizatorul cum să interacționeze cu botul
+2. Pornește o buclă
+ 1. Acceptă input de la utilizator
+ 2. Dacă utilizatorul a cerut să iasă, atunci ieși
+ 3. Procesează inputul utilizatorului și determină răspunsul (în acest caz, răspunsul este o alegere aleatorie dintr-o listă de posibile răspunsuri generice)
+ 4. Printează răspunsul
+3. Revino la pasul 2
+
+### Construirea botului
+
+Să creăm botul acum. Vom începe prin definirea unor fraze.
+
+1. Creează acest bot în Python cu următoarele răspunsuri aleatorii:
+
+ ```python
+ random_responses = ["That is quite interesting, please tell me more.",
+ "I see. Do go on.",
+ "Why do you say that?",
+ "Funny weather we've been having, isn't it?",
+ "Let's change the subject.",
+ "Did you catch the game last night?"]
+ ```
+
+ Iată un exemplu de output pentru a te ghida (inputul utilizatorului este pe liniile care încep cu `>`):
+
+ ```output
+ Hello, I am Marvin, the simple robot.
+ You can end this conversation at any time by typing 'bye'
+ After typing each answer, press 'enter'
+ How are you today?
+ > I am good thanks
+ That is quite interesting, please tell me more.
+ > today I went for a walk
+ Did you catch the game last night?
+ > I did, but my team lost
+ Funny weather we've been having, isn't it?
+ > yes but I hope next week is better
+ Let's change the subject.
+ > ok, lets talk about music
+ Why do you say that?
+ > because I like music!
+ Why do you say that?
+ > bye
+ It was nice talking to you, goodbye!
+ ```
+
+ O soluție posibilă pentru sarcină este [aici](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py)
+
+ ✅ Oprește-te și gândește-te
+
+ 1. Crezi că răspunsurile aleatorii ar 'păcăli' pe cineva să creadă că botul chiar îi înțelege?
+ 2. Ce caracteristici ar trebui să aibă botul pentru a fi mai eficient?
+ 3. Dacă un bot ar putea cu adevărat să 'înțeleagă' sensul unei propoziții, ar trebui să 'își amintească' sensul propozițiilor anterioare dintr-o conversație?
+
+---
+
+## 🚀Provocare
+
+Alege unul dintre elementele "oprește-te și gândește-te" de mai sus și încearcă fie să-l implementezi în cod, fie să scrii o soluție pe hârtie folosind pseudocod.
+
+În lecția următoare, vei învăța despre o serie de alte abordări pentru analizarea limbajului natural și învățarea automată.
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Aruncă o privire la referințele de mai jos ca oportunități de lectură suplimentară.
+
+### Referințe
+
+1. Schubert, Lenhart, "Computational Linguistics", *The Stanford Encyclopedia of Philosophy* (Spring 2020 Edition), Edward N. Zalta (ed.), URL = .
+2. Princeton University "About WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010.
+
+## Temă
+
+[Caută un bot](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/1-Introduction-to-NLP/assignment.md b/translations/ro/6-NLP/1-Introduction-to-NLP/assignment.md
new file mode 100644
index 00000000..e6b28776
--- /dev/null
+++ b/translations/ro/6-NLP/1-Introduction-to-NLP/assignment.md
@@ -0,0 +1,25 @@
+
+# Caută un bot
+
+## Instrucțiuni
+
+Boturile sunt peste tot. Sarcina ta: găsește unul și adoptă-l! Le poți găsi pe site-uri web, în aplicații bancare și la telefon, de exemplu, atunci când suni la companii de servicii financiare pentru sfaturi sau informații despre cont. Analizează botul și vezi dacă îl poți deruta. Dacă reușești să-l derutezi, de ce crezi că s-a întâmplat asta? Scrie un scurt eseu despre experiența ta.
+
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | ---------------------- |
+| | Este scris un eseu complet de o pagină, explicând presupusa arhitectură a botului și detaliind experiența ta cu acesta | Eseul este incomplet sau insuficient documentat | Nu este trimis niciun eseu |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de oameni. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/2-Tasks/README.md b/translations/ro/6-NLP/2-Tasks/README.md
new file mode 100644
index 00000000..e02fb9ae
--- /dev/null
+++ b/translations/ro/6-NLP/2-Tasks/README.md
@@ -0,0 +1,226 @@
+
+# Sarcini și tehnici comune de procesare a limbajului natural
+
+Pentru majoritatea sarcinilor de *procesare a limbajului natural*, textul care trebuie procesat trebuie să fie descompus, examinat, iar rezultatele stocate sau corelate cu reguli și seturi de date. Aceste sarcini permit programatorului să derive _semnificația_ sau _intenția_ sau doar _frecvența_ termenilor și cuvintelor dintr-un text.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+Să descoperim tehnicile comune utilizate în procesarea textului. Combinate cu învățarea automată, aceste tehnici te ajută să analizezi eficient cantități mari de text. Totuși, înainte de a aplica ML acestor sarcini, să înțelegem problemele întâmpinate de un specialist NLP.
+
+## Sarcini comune în NLP
+
+Există diferite moduri de a analiza un text pe care lucrezi. Există sarcini pe care le poți efectua și, prin aceste sarcini, poți înțelege textul și trage concluzii. De obicei, aceste sarcini sunt realizate într-o anumită ordine.
+
+### Tokenizare
+
+Probabil primul lucru pe care majoritatea algoritmilor NLP trebuie să-l facă este să împartă textul în tokeni sau cuvinte. Deși pare simplu, luarea în considerare a punctuației și a delimitatorilor de cuvinte și propoziții din diferite limbi poate fi complicată. Este posibil să fie nevoie să folosești diverse metode pentru a determina delimitările.
+
+
+> Tokenizarea unei propoziții din **Mândrie și Prejudecată**. Infografic de [Jen Looper](https://twitter.com/jenlooper)
+
+### Embedding-uri
+
+[Embedding-urile de cuvinte](https://wikipedia.org/wiki/Word_embedding) sunt o modalitate de a converti datele text în format numeric. Embedding-urile sunt realizate astfel încât cuvintele cu semnificații similare sau cuvintele utilizate împreună să se grupeze.
+
+
+> "Am cel mai mare respect pentru nervii tăi, sunt prietenii mei vechi." - Embedding-uri de cuvinte pentru o propoziție din **Mândrie și Prejudecată**. Infografic de [Jen Looper](https://twitter.com/jenlooper)
+
+✅ Încearcă [acest instrument interesant](https://projector.tensorflow.org/) pentru a experimenta cu embedding-uri de cuvinte. Clic pe un cuvânt arată grupuri de cuvinte similare: 'jucărie' se grupează cu 'disney', 'lego', 'playstation' și 'consolă'.
+
+### Parsing și Etichetarea părților de vorbire
+
+Fiecare cuvânt care a fost tokenizat poate fi etichetat ca parte de vorbire - substantiv, verb sau adjectiv. Propoziția `vulpea roșie rapidă a sărit peste câinele maro leneș` ar putea fi etichetată POS astfel: vulpea = substantiv, sărit = verb.
+
+
+
+> Parsing-ul unei propoziții din **Mândrie și Prejudecată**. Infografic de [Jen Looper](https://twitter.com/jenlooper)
+
+Parsing-ul înseamnă recunoașterea cuvintelor care sunt legate între ele într-o propoziție - de exemplu, `vulpea roșie rapidă a sărit` este o secvență adjectiv-substantiv-verb care este separată de secvența `câinele maro leneș`.
+
+### Frecvența cuvintelor și expresiilor
+
+O procedură utilă atunci când analizezi un corp mare de text este să construiești un dicționar al fiecărui cuvânt sau expresie de interes și cât de des apare. Expresia `vulpea roșie rapidă a sărit peste câinele maro leneș` are o frecvență de 2 pentru cuvântul "the".
+
+Să analizăm un exemplu de text în care numărăm frecvența cuvintelor. Poemul lui Rudyard Kipling, The Winners, conține următorul vers:
+
+```output
+What the moral? Who rides may read.
+When the night is thick and the tracks are blind
+A friend at a pinch is a friend, indeed,
+But a fool to wait for the laggard behind.
+Down to Gehenna or up to the Throne,
+He travels the fastest who travels alone.
+```
+
+Deoarece frecvențele expresiilor pot fi insensibile sau sensibile la majuscule, expresia `un prieten` are o frecvență de 2, `the` are o frecvență de 6, iar `travels` are o frecvență de 2.
+
+### N-gramuri
+
+Un text poate fi împărțit în secvențe de cuvinte de o lungime setată, un singur cuvânt (unigram), două cuvinte (bigram), trei cuvinte (trigram) sau orice număr de cuvinte (n-gramuri).
+
+De exemplu, `vulpea roșie rapidă a sărit peste câinele maro leneș` cu un scor n-gram de 2 produce următoarele n-gramuri:
+
+1. vulpea roșie
+2. roșie rapidă
+3. rapidă a
+4. a sărit
+5. sărit peste
+6. peste câinele
+7. câinele maro
+8. maro leneș
+
+Ar putea fi mai ușor să vizualizezi acest lucru ca o fereastră glisantă peste propoziție. Iată cum arată pentru n-gramuri de 3 cuvinte, n-gramul fiind evidențiat în fiecare propoziție:
+
+1. **vulpea roșie rapidă** a sărit peste câinele maro leneș
+2. vulpea **roșie rapidă a** sărit peste câinele maro leneș
+3. vulpea roșie **rapidă a sărit** peste câinele maro leneș
+4. vulpea roșie rapidă **a sărit peste** câinele maro leneș
+5. vulpea roșie rapidă a **sărit peste câinele** maro leneș
+6. vulpea roșie rapidă a sărit **peste câinele maro** leneș
+7. vulpea roșie rapidă a sărit peste **câinele maro leneș**
+
+
+
+> Valoare n-gram de 3: Infografic de [Jen Looper](https://twitter.com/jenlooper)
+
+### Extracția expresiilor nominale
+
+În majoritatea propozițiilor, există un substantiv care este subiectul sau obiectul propoziției. În engleză, acesta poate fi identificat adesea prin prezența cuvintelor 'a', 'an' sau 'the' înaintea sa. Identificarea subiectului sau obiectului unei propoziții prin 'extracția expresiei nominale' este o sarcină comună în NLP atunci când se încearcă înțelegerea semnificației unei propoziții.
+
+✅ În propoziția "Nu pot fixa ora, sau locul, sau privirea sau cuvintele, care au pus bazele. Este prea demult. Eram în mijloc înainte să știu că am început.", poți identifica expresiile nominale?
+
+În propoziția `vulpea roșie rapidă a sărit peste câinele maro leneș` există 2 expresii nominale: **vulpea roșie rapidă** și **câinele maro leneș**.
+
+### Analiza sentimentului
+
+O propoziție sau un text poate fi analizat pentru sentiment, sau cât de *pozitiv* sau *negativ* este. Sentimentul este măsurat în *polaritate* și *obiectivitate/subiectivitate*. Polaritatea este măsurată de la -1.0 la 1.0 (negativ la pozitiv) și de la 0.0 la 1.0 (cel mai obiectiv la cel mai subiectiv).
+
+✅ Mai târziu vei învăța că există diferite moduri de a determina sentimentul folosind învățarea automată, dar un mod este să ai o listă de cuvinte și expresii care sunt categorisite ca pozitive sau negative de un expert uman și să aplici acel model textului pentru a calcula un scor de polaritate. Poți vedea cum ar funcționa acest lucru în unele circumstanțe și mai puțin bine în altele?
+
+### Flexiune
+
+Flexiunea îți permite să iei un cuvânt și să obții forma singulară sau plurală a acestuia.
+
+### Lemmatizare
+
+Un *lemma* este rădăcina sau cuvântul principal pentru un set de cuvinte, de exemplu *zburat*, *zboară*, *zburând* au ca lemma verbul *a zbura*.
+
+Există, de asemenea, baze de date utile disponibile pentru cercetătorii NLP, în special:
+
+### WordNet
+
+[WordNet](https://wordnet.princeton.edu/) este o bază de date de cuvinte, sinonime, antonime și multe alte detalii pentru fiecare cuvânt în multe limbi diferite. Este incredibil de utilă atunci când se încearcă construirea de traduceri, verificatoare ortografice sau instrumente lingvistice de orice tip.
+
+## Biblioteci NLP
+
+Din fericire, nu trebuie să construiești toate aceste tehnici singur, deoarece există biblioteci excelente de Python disponibile care le fac mult mai accesibile pentru dezvoltatorii care nu sunt specializați în procesarea limbajului natural sau învățarea automată. Lecțiile următoare includ mai multe exemple despre acestea, dar aici vei învăța câteva exemple utile pentru a te ajuta cu următoarea sarcină.
+
+### Exercițiu - utilizarea bibliotecii `TextBlob`
+
+Să folosim o bibliotecă numită TextBlob, deoarece conține API-uri utile pentru abordarea acestor tipuri de sarcini. TextBlob "se bazează pe umerii giganților [NLTK](https://nltk.org) și [pattern](https://github.com/clips/pattern), și funcționează bine cu ambele." Are o cantitate considerabilă de ML integrată în API-ul său.
+
+> Notă: Un [Ghid de Start Rapid](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) util este disponibil pentru TextBlob și este recomandat pentru dezvoltatorii Python experimentați.
+
+Când încerci să identifici *expresii nominale*, TextBlob oferă mai multe opțiuni de extractoare pentru a găsi expresii nominale.
+
+1. Aruncă o privire la `ConllExtractor`.
+
+ ```python
+ from textblob import TextBlob
+ from textblob.np_extractors import ConllExtractor
+ # import and create a Conll extractor to use later
+ extractor = ConllExtractor()
+
+ # later when you need a noun phrase extractor:
+ user_input = input("> ")
+ user_input_blob = TextBlob(user_input, np_extractor=extractor) # note non-default extractor specified
+ np = user_input_blob.noun_phrases
+ ```
+
+ > Ce se întâmplă aici? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) este "Un extractor de expresii nominale care folosește parsing-ul de fragmente antrenat cu corpusul de antrenament ConLL-2000." ConLL-2000 se referă la Conferința din 2000 despre Învățarea Computațională a Limbajului Natural. Fiecare an, conferința a găzduit un workshop pentru a aborda o problemă dificilă NLP, iar în 2000 aceasta a fost fragmentarea expresiilor nominale. Un model a fost antrenat pe Wall Street Journal, cu "secțiunile 15-18 ca date de antrenament (211727 tokeni) și secțiunea 20 ca date de testare (47377 tokeni)". Poți consulta procedurile utilizate [aici](https://www.clips.uantwerpen.be/conll2000/chunking/) și [rezultatele](https://ifarm.nl/erikt/research/np-chunking.html).
+
+### Provocare - îmbunătățirea botului tău cu NLP
+
+În lecția anterioară ai construit un bot foarte simplu de întrebări și răspunsuri. Acum, vei face ca Marvin să fie puțin mai empatic analizând inputul tău pentru sentiment și afișând un răspuns care să se potrivească sentimentului. De asemenea, va trebui să identifici o `expresie nominală` și să întrebi despre aceasta.
+
+Pașii tăi pentru construirea unui bot conversațional mai bun:
+
+1. Afișează instrucțiuni care sfătuiesc utilizatorul cum să interacționeze cu botul
+2. Pornește bucla
+ 1. Acceptă inputul utilizatorului
+ 2. Dacă utilizatorul a cerut să iasă, atunci ieși
+ 3. Procesează inputul utilizatorului și determină răspunsul adecvat pentru sentiment
+ 4. Dacă se detectează o expresie nominală în sentiment, pluralizeaz-o și cere mai multe informații despre acel subiect
+ 5. Afișează răspunsul
+3. Revino la pasul 2
+
+Iată fragmentul de cod pentru determinarea sentimentului folosind TextBlob. Observă că există doar patru *grade* de răspunsuri la sentiment (poți avea mai multe dacă dorești):
+
+```python
+if user_input_blob.polarity <= -0.5:
+ response = "Oh dear, that sounds bad. "
+elif user_input_blob.polarity <= 0:
+ response = "Hmm, that's not great. "
+elif user_input_blob.polarity <= 0.5:
+ response = "Well, that sounds positive. "
+elif user_input_blob.polarity <= 1:
+ response = "Wow, that sounds great. "
+```
+
+Iată un exemplu de output pentru a te ghida (inputul utilizatorului este pe liniile care încep cu >):
+
+```output
+Hello, I am Marvin, the friendly robot.
+You can end this conversation at any time by typing 'bye'
+After typing each answer, press 'enter'
+How are you today?
+> I am ok
+Well, that sounds positive. Can you tell me more?
+> I went for a walk and saw a lovely cat
+Well, that sounds positive. Can you tell me more about lovely cats?
+> cats are the best. But I also have a cool dog
+Wow, that sounds great. Can you tell me more about cool dogs?
+> I have an old hounddog but he is sick
+Hmm, that's not great. Can you tell me more about old hounddogs?
+> bye
+It was nice talking to you, goodbye!
+```
+
+O soluție posibilă pentru sarcină este [aici](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py)
+
+✅ Verificare cunoștințe
+
+1. Crezi că răspunsurile empatice ar putea 'păcăli' pe cineva să creadă că botul chiar îi înțelege?
+2. Face identificarea expresiei nominale botul mai 'credibil'?
+3. De ce ar fi utilă extragerea unei 'expresii nominale' dintr-o propoziție?
+
+---
+
+Implementează botul din verificarea cunoștințelor anterioare și testează-l pe un prieten. Poate să-l păcălească? Poți face botul tău mai 'credibil'?
+
+## 🚀Provocare
+
+Ia o sarcină din verificarea cunoștințelor anterioare și încearcă să o implementezi. Testează botul pe un prieten. Poate să-l păcălească? Poți face botul tău mai 'credibil'?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și Studiu Individual
+
+În următoarele câteva lecții vei învăța mai multe despre analiza sentimentului. Cercetează această tehnică interesantă în articole precum cele de pe [KDNuggets](https://www.kdnuggets.com/tag/nlp)
+
+## Temă
+
+[Fă un bot să răspundă](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/2-Tasks/assignment.md b/translations/ro/6-NLP/2-Tasks/assignment.md
new file mode 100644
index 00000000..43477ce5
--- /dev/null
+++ b/translations/ro/6-NLP/2-Tasks/assignment.md
@@ -0,0 +1,25 @@
+
+# Fă un Bot să răspundă
+
+## Instrucțiuni
+
+În lecțiile anterioare, ai programat un bot de bază cu care să poți conversa. Acest bot oferă răspunsuri aleatorii până când spui 'la revedere'. Poți face răspunsurile mai puțin aleatorii și să declanșezi răspunsuri dacă spui lucruri specifice, cum ar fi 'de ce' sau 'cum'? Gândește-te puțin cum învățarea automată ar putea face acest tip de muncă mai puțin manuală pe măsură ce îți extinzi botul. Poți folosi bibliotecile NLTK sau TextBlob pentru a-ți ușura sarcinile.
+
+## Criterii de evaluare
+
+| Criteriu | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | --------------------------------------------- | ------------------------------------------------ | ----------------------- |
+| | Este prezentat și documentat un nou fișier bot.py | Este prezentat un nou fișier bot, dar conține erori | Nu este prezentat un fișier |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/3-Translation-Sentiment/README.md b/translations/ro/6-NLP/3-Translation-Sentiment/README.md
new file mode 100644
index 00000000..d49dc158
--- /dev/null
+++ b/translations/ro/6-NLP/3-Translation-Sentiment/README.md
@@ -0,0 +1,200 @@
+
+# Traducere și analiză a sentimentelor cu ML
+
+În lecțiile anterioare ai învățat cum să construiești un bot de bază folosind `TextBlob`, o bibliotecă care încorporează ML în culise pentru a efectua sarcini NLP de bază, cum ar fi extragerea frazelor nominale. O altă provocare importantă în lingvistica computațională este traducerea _exactă_ a unei propoziții dintr-o limbă vorbită sau scrisă în alta.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+Traducerea este o problemă foarte dificilă, complicată de faptul că există mii de limbi, fiecare având reguli gramaticale foarte diferite. O abordare este să convertești regulile gramaticale formale ale unei limbi, cum ar fi engleza, într-o structură independentă de limbă și apoi să o traduci prin conversia înapoi într-o altă limbă. Această abordare presupune următorii pași:
+
+1. **Identificare**. Identifică sau etichetează cuvintele din limba de intrare ca substantive, verbe etc.
+2. **Crearea traducerii**. Produce o traducere directă a fiecărui cuvânt în formatul limbii țintă.
+
+### Exemplu de propoziție, engleză în irlandeză
+
+În 'engleză', propoziția _I feel happy_ are trei cuvinte în ordinea:
+
+- **subiect** (I)
+- **verb** (feel)
+- **adjectiv** (happy)
+
+Totuși, în limba 'irlandeză', aceeași propoziție are o structură gramaticală foarte diferită - emoțiile precum "*happy*" sau "*sad*" sunt exprimate ca fiind *asupra* ta.
+
+Fraza engleză `I feel happy` în irlandeză ar fi `Tá athas orm`. O traducere *literală* ar fi `Happy is upon me`.
+
+Un vorbitor de irlandeză care traduce în engleză ar spune `I feel happy`, nu `Happy is upon me`, deoarece înțelege sensul propoziției, chiar dacă cuvintele și structura propoziției sunt diferite.
+
+Ordinea formală pentru propoziția în irlandeză este:
+
+- **verb** (Tá sau is)
+- **adjectiv** (athas, sau happy)
+- **subiect** (orm, sau upon me)
+
+## Traducere
+
+Un program de traducere naiv ar putea traduce doar cuvintele, ignorând structura propoziției.
+
+✅ Dacă ai învățat o a doua (sau a treia sau mai multe) limbă ca adult, probabil ai început prin a gândi în limba ta maternă, traducând un concept cuvânt cu cuvânt în mintea ta în a doua limbă și apoi exprimând traducerea. Acest lucru este similar cu ceea ce fac programele de traducere naive. Este important să depășești această fază pentru a atinge fluența!
+
+Traducerea naivă duce la traduceri greșite (și uneori amuzante): `I feel happy` se traduce literal în `Mise bhraitheann athas` în irlandeză. Asta înseamnă (literal) `me feel happy` și nu este o propoziție validă în irlandeză. Chiar dacă engleza și irlandeza sunt limbi vorbite pe două insule vecine, ele sunt foarte diferite, având structuri gramaticale diferite.
+
+> Poți viziona câteva videoclipuri despre tradițiile lingvistice irlandeze, cum ar fi [acesta](https://www.youtube.com/watch?v=mRIaLSdRMMs)
+
+### Abordări bazate pe învățarea automată
+
+Până acum, ai învățat despre abordarea regulilor formale în procesarea limbajului natural. O altă abordare este să ignori sensul cuvintelor și _în schimb să folosești învățarea automată pentru a detecta modele_. Acest lucru poate funcționa în traducere dacă ai multe texte (un *corpus*) sau texte (*corpora*) în ambele limbi, de origine și țintă.
+
+De exemplu, consideră cazul *Mândrie și Prejudecată*, un roman bine-cunoscut scris de Jane Austen în 1813. Dacă consulți cartea în engleză și o traducere umană a cărții în *franceză*, ai putea detecta fraze în una care sunt traduse _idiomatic_ în cealaltă. Vei face asta în curând.
+
+De exemplu, când o frază engleză precum `I have no money` este tradusă literal în franceză, ar putea deveni `Je n'ai pas de monnaie`. "Monnaie" este un 'fals cognat' francez complicat, deoarece 'money' și 'monnaie' nu sunt sinonime. O traducere mai bună pe care ar putea-o face un om ar fi `Je n'ai pas d'argent`, deoarece transmite mai bine sensul că nu ai bani (mai degrabă decât 'mărunțiș', care este sensul lui 'monnaie').
+
+
+
+> Imagine de [Jen Looper](https://twitter.com/jenlooper)
+
+Dacă un model ML are suficiente traduceri umane pentru a construi un model, poate îmbunătăți acuratețea traducerilor prin identificarea modelelor comune în texte care au fost traduse anterior de vorbitori experți ai ambelor limbi.
+
+### Exercițiu - traducere
+
+Poți folosi `TextBlob` pentru a traduce propoziții. Încearcă celebra primă frază din **Mândrie și Prejudecată**:
+
+```python
+from textblob import TextBlob
+
+blob = TextBlob(
+ "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
+)
+print(blob.translate(to="fr"))
+
+```
+
+`TextBlob` face o treabă destul de bună la traducere: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
+
+Se poate argumenta că traducerea lui TextBlob este mult mai exactă, de fapt, decât traducerea franceză din 1932 a cărții de V. Leconte și Ch. Pressoir:
+
+"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."
+
+În acest caz, traducerea informată de ML face o treabă mai bună decât traducătorul uman care pune inutil cuvinte în gura autorului original pentru 'claritate'.
+
+> Ce se întâmplă aici? și de ce este TextBlob atât de bun la traducere? Ei bine, în culise, folosește Google Translate, o inteligență artificială sofisticată capabilă să analizeze milioane de fraze pentru a prezice cele mai bune șiruri pentru sarcina în cauză. Nu se întâmplă nimic manual aici și ai nevoie de o conexiune la internet pentru a folosi `blob.translate`.
+
+✅ Încearcă câteva propoziții. Care este mai bună, traducerea ML sau cea umană? În ce cazuri?
+
+## Analiza sentimentelor
+
+Un alt domeniu în care învățarea automată poate funcționa foarte bine este analiza sentimentelor. O abordare non-ML a sentimentului este identificarea cuvintelor și frazelor care sunt 'pozitive' și 'negative'. Apoi, dat fiind un nou text, se calculează valoarea totală a cuvintelor pozitive, negative și neutre pentru a identifica sentimentul general.
+
+Această abordare poate fi ușor păcălită, așa cum ai văzut în sarcina Marvin - propoziția `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` este o propoziție sarcastică, cu sentiment negativ, dar algoritmul simplu detectează 'great', 'wonderful', 'glad' ca pozitive și 'waste', 'lost' și 'dark' ca negative. Sentimentul general este influențat de aceste cuvinte contradictorii.
+
+✅ Oprește-te un moment și gândește-te cum transmitem sarcasmul ca vorbitori umani. Inflecția tonului joacă un rol important. Încearcă să spui fraza "Well, that film was awesome" în moduri diferite pentru a descoperi cum vocea ta transmite sensul.
+
+### Abordări ML
+
+Abordarea ML ar fi să aduni manual texte negative și pozitive - tweet-uri, recenzii de filme sau orice altceva unde omul a dat un scor *și* o opinie scrisă. Apoi, tehnicile NLP pot fi aplicate opiniilor și scorurilor, astfel încât să apară modele (de exemplu, recenziile pozitive ale filmelor tind să aibă fraza 'Oscar worthy' mai mult decât recenziile negative ale filmelor, sau recenziile pozitive ale restaurantelor spun 'gourmet' mult mai des decât 'disgusting').
+
+> ⚖️ **Exemplu**: Dacă ai lucra în biroul unui politician și s-ar dezbate o nouă lege, alegătorii ar putea scrie biroului cu e-mailuri de susținere sau e-mailuri împotriva legii respective. Să presupunem că ești însărcinat să citești e-mailurile și să le sortezi în 2 grămezi, *pentru* și *împotrivă*. Dacă ar fi multe e-mailuri, ai putea fi copleșit încercând să le citești pe toate. Nu ar fi minunat dacă un bot ar putea să le citească pe toate pentru tine, să le înțeleagă și să îți spună în ce grămadă aparține fiecare e-mail?
+>
+> O modalitate de a realiza acest lucru este să folosești învățarea automată. Ai antrena modelul cu o parte din e-mailurile *împotrivă* și o parte din e-mailurile *pentru*. Modelul ar tinde să asocieze fraze și cuvinte cu partea împotrivă și partea pentru, *dar nu ar înțelege niciunul dintre conținuturi*, doar că anumite cuvinte și modele erau mai susceptibile să apară într-un e-mail *împotrivă* sau *pentru*. Ai putea să-l testezi cu câteva e-mailuri pe care nu le-ai folosit pentru a antrena modelul și să vezi dacă ajunge la aceeași concluzie ca tine. Apoi, odată ce ești mulțumit de acuratețea modelului, ai putea procesa e-mailurile viitoare fără a fi nevoie să le citești pe fiecare.
+
+✅ Acest proces seamănă cu procesele pe care le-ai folosit în lecțiile anterioare?
+
+## Exercițiu - propoziții sentimentale
+
+Sentimentul este măsurat cu o *polaritate* de -1 la 1, ceea ce înseamnă că -1 este cel mai negativ sentiment, iar 1 este cel mai pozitiv. Sentimentul este de asemenea măsurat cu un scor de 0 - 1 pentru obiectivitate (0) și subiectivitate (1).
+
+Aruncă o altă privire la *Mândrie și Prejudecată* de Jane Austen. Textul este disponibil aici la [Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm). Exemplul de mai jos arată un scurt program care analizează sentimentul primelor și ultimelor propoziții din carte și afișează polaritatea sentimentului și scorul de subiectivitate/obiectivitate.
+
+Ar trebui să folosești biblioteca `TextBlob` (descrisă mai sus) pentru a determina `sentimentul` (nu trebuie să scrii propriul calculator de sentiment) în următoarea sarcină.
+
+```python
+from textblob import TextBlob
+
+quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""
+
+quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""
+
+sentiment1 = TextBlob(quote1).sentiment
+sentiment2 = TextBlob(quote2).sentiment
+
+print(quote1 + " has a sentiment of " + str(sentiment1))
+print(quote2 + " has a sentiment of " + str(sentiment2))
+```
+
+Vezi următorul output:
+
+```output
+It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)
+
+Darcy, as well as Elizabeth, really loved them; and they were
+ both ever sensible of the warmest gratitude towards the persons
+ who, by bringing her into Derbyshire, had been the means of
+ uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)
+```
+
+## Provocare - verifică polaritatea sentimentului
+
+Sarcina ta este să determini, folosind polaritatea sentimentului, dacă *Mândrie și Prejudecată* are mai multe propoziții absolut pozitive decât absolut negative. Pentru această sarcină, poți presupune că un scor de polaritate de 1 sau -1 este absolut pozitiv sau negativ, respectiv.
+
+**Pași:**
+
+1. Descarcă o [copie a Mândrie și Prejudecată](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) de la Project Gutenberg ca fișier .txt. Elimină metadatele de la începutul și sfârșitul fișierului, lăsând doar textul original
+2. Deschide fișierul în Python și extrage conținutul ca șir
+3. Creează un TextBlob folosind șirul cărții
+4. Analizează fiecare propoziție din carte într-un loop
+ 1. Dacă polaritatea este 1 sau -1, stochează propoziția într-un array sau listă de mesaje pozitive sau negative
+5. La final, afișează toate propozițiile pozitive și negative (separat) și numărul fiecăreia.
+
+Iată o [soluție](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb).
+
+✅ Verificare cunoștințe
+
+1. Sentimentul se bazează pe cuvintele folosite în propoziție, dar codul *înțelege* cuvintele?
+2. Crezi că polaritatea sentimentului este exactă, sau cu alte cuvinte, *ești de acord* cu scorurile?
+ 1. În special, ești de acord sau nu cu polaritatea absolut **pozitivă** a următoarelor propoziții?
+ * “What an excellent father you have, girls!” said she, when the door was shut.
+ * “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect.
+ * How wonderfully these sort of things occur!
+ * I have the greatest dislike in the world to that sort of thing.
+ * Charlotte is an excellent manager, I dare say.
+ * “This is delightful indeed!
+ * I am so happy!
+ * Your idea of the ponies is delightful.
+ 2. Următoarele 3 propoziții au fost evaluate cu un sentiment absolut pozitiv, dar la o lectură atentă, ele nu sunt propoziții pozitive. De ce analiza sentimentului a considerat că sunt propoziții pozitive?
+ * Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power.
+ * If I could but see you as happy!
+ * Our distress, my dear Lizzy, is very great.
+ 3. Ești de acord sau nu cu polaritatea absolut **negativă** a următoarelor propoziții?
+ - Everybody is disgusted with his pride.
+ - “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful.
+ - The pause was to Elizabeth’s feelings dreadful.
+ - It would be dreadful!
+
+✅ Orice pasionat de Jane Austen va înțelege că ea folosește adesea cărțile sale pentru a critica aspectele mai ridicole ale societății engleze din perioada Regenței. Elizabeth Bennett, personajul principal din *Mândrie și Prejudecată*, este un observator social atent (la fel ca autoarea) și limbajul ei este adesea puternic nuanțat. Chiar și Mr. Darcy (interesul romantic din poveste) observă utilizarea jucăușă și ironică a limbajului de către Elizabeth: "I have had the pleasure of your acquaintance long enough to know that you find great enjoyment in occasionally professing opinions which in fact are not your own."
+
+---
+
+## 🚀Provocare
+
+Poți face Marvin și mai bun prin extragerea altor caracteristici din inputul utilizatorului?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și auto-studiu
+Există multe modalități de a extrage sentimentul din text. Gândește-te la aplicațiile de afaceri care ar putea folosi această tehnică. Reflectează asupra modului în care aceasta poate da greș. Citește mai multe despre sisteme sofisticate, pregătite pentru întreprinderi, care analizează sentimentul, cum ar fi [Azure Text Analysis](https://docs.microsoft.com/azure/cognitive-services/Text-Analytics/how-tos/text-analytics-how-to-sentiment-analysis?tabs=version-3-1?WT.mc_id=academic-77952-leestott). Testează câteva dintre propozițiile din Mândrie și Prejudecată de mai sus și vezi dacă poate detecta nuanțele.
+
+## Temă
+
+[Licență poetică](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți de faptul că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/3-Translation-Sentiment/assignment.md b/translations/ro/6-NLP/3-Translation-Sentiment/assignment.md
new file mode 100644
index 00000000..072bb65a
--- /dev/null
+++ b/translations/ro/6-NLP/3-Translation-Sentiment/assignment.md
@@ -0,0 +1,25 @@
+
+# Licență poetică
+
+## Instrucțiuni
+
+În [acest notebook](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) poți găsi peste 500 de poezii ale lui Emily Dickinson, analizate anterior pentru sentiment folosind Azure text analytics. Folosind acest set de date, analizează-l utilizând tehnicile descrise în lecție. Se potrivește sentimentul sugerat al unei poezii cu decizia mai sofisticată a serviciului Azure? De ce sau de ce nu, în opinia ta? Te surprinde ceva?
+
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | -------------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------ |
+| | Este prezentat un notebook cu o analiză solidă a unui eșantion de output al autorului | Notebook-ul este incomplet sau nu realizează analiza | Nu este prezentat niciun notebook |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/3-Translation-Sentiment/solution/Julia/README.md b/translations/ro/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
new file mode 100644
index 00000000..fc34e838
--- /dev/null
+++ b/translations/ro/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/3-Translation-Sentiment/solution/R/README.md b/translations/ro/6-NLP/3-Translation-Sentiment/solution/R/README.md
new file mode 100644
index 00000000..76b88df7
--- /dev/null
+++ b/translations/ro/6-NLP/3-Translation-Sentiment/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/4-Hotel-Reviews-1/README.md b/translations/ro/6-NLP/4-Hotel-Reviews-1/README.md
new file mode 100644
index 00000000..6d107f62
--- /dev/null
+++ b/translations/ro/6-NLP/4-Hotel-Reviews-1/README.md
@@ -0,0 +1,417 @@
+
+# Analiza sentimentului cu recenzii de hotel - procesarea datelor
+
+În această secțiune vei folosi tehnicile din lecțiile anterioare pentru a realiza o analiză exploratorie a unui set de date mare. După ce vei avea o înțelegere bună a utilității diferitelor coloane, vei învăța:
+
+- cum să elimini coloanele inutile
+- cum să calculezi date noi bazate pe coloanele existente
+- cum să salvezi setul de date rezultat pentru utilizare în provocarea finală
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+### Introducere
+
+Până acum ai învățat despre cum datele text sunt destul de diferite față de datele numerice. Dacă textul a fost scris sau rostit de un om, acesta poate fi analizat pentru a găsi modele și frecvențe, sentimente și semnificații. Această lecție te introduce într-un set de date real cu o provocare reală: **[515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)**, care include o [licență CC0: Public Domain](https://creativecommons.org/publicdomain/zero/1.0/). Datele au fost extrase de pe Booking.com din surse publice. Creatorul setului de date este Jiashen Liu.
+
+### Pregătire
+
+Vei avea nevoie de:
+
+* Abilitatea de a rula notebook-uri .ipynb folosind Python 3
+* pandas
+* NLTK, [pe care ar trebui să-l instalezi local](https://www.nltk.org/install.html)
+* Setul de date disponibil pe Kaggle [515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe). Are aproximativ 230 MB dezarhivat. Descarcă-l în folderul rădăcină `/data` asociat acestor lecții NLP.
+
+## Analiza exploratorie a datelor
+
+Această provocare presupune că construiești un bot de recomandare pentru hoteluri folosind analiza sentimentului și scorurile recenziilor oaspeților. Setul de date pe care îl vei folosi include recenzii pentru 1493 hoteluri diferite din 6 orașe.
+
+Folosind Python, un set de date cu recenzii de hotel și analiza sentimentului din NLTK, ai putea afla:
+
+* Care sunt cele mai frecvent utilizate cuvinte și expresii în recenzii?
+* Corelează *etichetele* oficiale care descriu un hotel cu scorurile recenziilor (de exemplu, există recenzii mai negative pentru un hotel de la *Familie cu copii mici* decât de la *Călător singur*, indicând poate că este mai potrivit pentru *Călători singuri*?)
+* Sunt scorurile sentimentului din NLTK în acord cu scorul numeric al recenziei hotelului?
+
+#### Setul de date
+
+Să explorăm setul de date pe care l-ai descărcat și salvat local. Deschide fișierul într-un editor precum VS Code sau chiar Excel.
+
+Anteturile din setul de date sunt următoarele:
+
+*Hotel_Address, Additional_Number_of_Scoring, Review_Date, Average_Score, Hotel_Name, Reviewer_Nationality, Negative_Review, Review_Total_Negative_Word_Counts, Total_Number_of_Reviews, Positive_Review, Review_Total_Positive_Word_Counts, Total_Number_of_Reviews_Reviewer_Has_Given, Reviewer_Score, Tags, days_since_review, lat, lng*
+
+Iată-le grupate într-un mod care ar putea fi mai ușor de examinat:
+##### Coloane despre hotel
+
+* `Hotel_Name`, `Hotel_Address`, `lat` (latitudine), `lng` (longitudine)
+ * Folosind *lat* și *lng* ai putea crea o hartă cu Python care să arate locațiile hotelurilor (poate codificate pe culori pentru recenzii negative și pozitive)
+ * Hotel_Address nu pare să fie util pentru noi și probabil îl vom înlocui cu o țară pentru o sortare și căutare mai ușoară
+
+**Coloane meta-recenzie hotel**
+
+* `Average_Score`
+ * Conform creatorului setului de date, această coloană reprezintă *Scorul mediu al hotelului, calculat pe baza celui mai recent comentariu din ultimul an*. Acesta pare un mod neobișnuit de a calcula scorul, dar este datele extrase, așa că le putem lua ca atare pentru moment.
+
+ ✅ Pe baza celorlalte coloane din acest set de date, te poți gândi la un alt mod de a calcula scorul mediu?
+
+* `Total_Number_of_Reviews`
+ * Numărul total de recenzii pe care acest hotel le-a primit - nu este clar (fără a scrie cod) dacă se referă la recenziile din setul de date.
+* `Additional_Number_of_Scoring`
+ * Acest lucru înseamnă că a fost dat un scor de recenzie, dar nu a fost scrisă nicio recenzie pozitivă sau negativă de către recenzor
+
+**Coloane despre recenzii**
+
+- `Reviewer_Score`
+ - Acesta este o valoare numerică cu cel mult 1 zecimală între valorile minime și maxime 2.5 și 10
+ - Nu este explicat de ce 2.5 este cel mai mic scor posibil
+- `Negative_Review`
+ - Dacă un recenzor nu a scris nimic, acest câmp va avea "**No Negative**"
+ - Reține că un recenzor poate scrie o recenzie pozitivă în coloana Negative review (de exemplu, "nu este nimic rău la acest hotel")
+- `Review_Total_Negative_Word_Counts`
+ - Numărul mai mare de cuvinte negative indică un scor mai mic (fără a verifica sentimentul)
+- `Positive_Review`
+ - Dacă un recenzor nu a scris nimic, acest câmp va avea "**No Positive**"
+ - Reține că un recenzor poate scrie o recenzie negativă în coloana Positive review (de exemplu, "nu este nimic bun la acest hotel")
+- `Review_Total_Positive_Word_Counts`
+ - Numărul mai mare de cuvinte pozitive indică un scor mai mare (fără a verifica sentimentul)
+- `Review_Date` și `days_since_review`
+ - Se poate aplica o măsură de prospețime sau vechime unei recenzii (recenziile mai vechi s-ar putea să nu fie la fel de precise ca cele mai noi, deoarece managementul hotelului s-a schimbat, s-au făcut renovări, s-a adăugat o piscină etc.)
+- `Tags`
+ - Acestea sunt descrieri scurte pe care un recenzor le poate selecta pentru a descrie tipul de oaspete care a fost (de exemplu, singur sau familie), tipul de cameră pe care a avut-o, durata șederii și modul în care recenzia a fost trimisă.
+ - Din păcate, utilizarea acestor etichete este problematică, verifică secțiunea de mai jos care discută utilitatea lor
+
+**Coloane despre recenzor**
+
+- `Total_Number_of_Reviews_Reviewer_Has_Given`
+ - Acesta ar putea fi un factor într-un model de recomandare, de exemplu, dacă ai putea determina că recenzorii mai prolifici cu sute de recenzii sunt mai predispuși să fie negativi decât pozitivi. Totuși, recenzorul oricărei recenzii nu este identificat cu un cod unic și, prin urmare, nu poate fi legat de un set de recenzii. Există 30 de recenzori cu 100 sau mai multe recenzii, dar este greu de văzut cum acest lucru poate ajuta modelul de recomandare.
+- `Reviewer_Nationality`
+ - Unii oameni ar putea crede că anumite naționalități sunt mai predispuse să ofere o recenzie pozitivă sau negativă din cauza unei înclinații naționale. Fii atent când construiești astfel de opinii anecdotice în modelele tale. Acestea sunt stereotipuri naționale (și uneori rasiale), iar fiecare recenzor a fost un individ care a scris o recenzie bazată pe experiența sa. Aceasta ar fi putut fi filtrată prin multe lentile, cum ar fi șederile anterioare la hotel, distanța parcursă și temperamentul personal. Este greu de justificat ideea că naționalitatea a fost motivul unui scor de recenzie.
+
+##### Exemple
+
+| Scor mediu | Număr total de recenzii | Scor recenzor | Recenzie Negativă | Recenzie Pozitivă | Etichete |
+| ---------- | ----------------------- | ------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | -------------------------------------------------------------------------------------------- |
+| 7.8 | 1945 | 2.5 | Acesta nu este în prezent un hotel, ci un șantier de construcții. Am fost terorizat de dimineață devreme și toată ziua cu zgomot de construcție inacceptabil în timp ce mă odihneam după o călătorie lungă și lucram în cameră. Oamenii lucrau toată ziua, adică cu ciocane pneumatice în camerele adiacente. Am cerut schimbarea camerei, dar nu era disponibilă nicio cameră liniștită. Ca să fie și mai rău, am fost suprataxat. Am plecat seara, deoarece aveam un zbor foarte devreme și am primit o factură corespunzătoare. O zi mai târziu, hotelul a făcut o altă taxare fără consimțământul meu, peste prețul rezervat. Este un loc groaznic. Nu te pedepsi rezervând aici. | Nimic. Loc groaznic. Stai departe. | Călătorie de afaceri. Cuplu. Cameră dublă standard. Ședere 2 nopți. |
+
+După cum poți vedea, acest oaspete nu a avut o ședere fericită la acest hotel. Hotelul are un scor mediu bun de 7.8 și 1945 de recenzii, dar acest recenzor i-a dat 2.5 și a scris 115 cuvinte despre cât de negativă a fost șederea sa. Dacă nu ar fi scris nimic în coloana Positive_Review, ai putea presupune că nu a fost nimic pozitiv, dar totuși au scris 7 cuvinte de avertizare. Dacă am număra doar cuvintele în loc de semnificația sau sentimentul cuvintelor, am putea avea o viziune distorsionată asupra intenției recenzorului. Ciudat, scorul lor de 2.5 este confuz, deoarece dacă șederea la hotel a fost atât de rea, de ce să-i acorde vreun punct? Investigând setul de date mai atent, vei vedea că cel mai mic scor posibil este 2.5, nu 0. Cel mai mare scor posibil este 10.
+
+##### Etichete
+
+Așa cum s-a menționat mai sus, la prima vedere, ideea de a folosi `Tags` pentru a categorisi datele are sens. Din păcate, aceste etichete nu sunt standardizate, ceea ce înseamnă că într-un hotel, opțiunile ar putea fi *Single room*, *Twin room* și *Double room*, dar în următorul hotel, acestea sunt *Deluxe Single Room*, *Classic Queen Room* și *Executive King Room*. Acestea ar putea fi aceleași lucruri, dar există atât de multe variații încât alegerea devine:
+
+1. Încercarea de a schimba toți termenii într-un standard unic, ceea ce este foarte dificil, deoarece nu este clar care ar fi calea de conversie în fiecare caz (de exemplu, *Classic single room* se mapează la *Single room*, dar *Superior Queen Room with Courtyard Garden or City View* este mult mai greu de mapat)
+
+1. Putem adopta o abordare NLP și măsura frecvența anumitor termeni precum *Solo*, *Business Traveller* sau *Family with young kids* pe măsură ce se aplică fiecărui hotel și să includem acest lucru în recomandare
+
+Etichetele sunt de obicei (dar nu întotdeauna) un câmp unic care conține o listă de 5 până la 6 valori separate prin virgulă, aliniate la *Tipul de călătorie*, *Tipul de oaspeți*, *Tipul de cameră*, *Numărul de nopți* și *Tipul de dispozitiv pe care a fost trimisă recenzia*. Totuși, deoarece unii recenzori nu completează fiecare câmp (pot lăsa unul gol), valorile nu sunt întotdeauna în aceeași ordine.
+
+De exemplu, ia *Tipul de grup*. Există 1025 de posibilități unice în acest câmp din coloana `Tags`, și din păcate doar unele dintre ele se referă la un grup (unele sunt tipul de cameră etc.). Dacă filtrezi doar cele care menționează familie, rezultatele conțin multe rezultate de tip *Family room*. Dacă incluzi termenul *with*, adică numeri valorile *Family with*, rezultatele sunt mai bune, cu peste 80.000 din cele 515.000 de rezultate conținând expresia "Family with young children" sau "Family with older children".
+
+Aceasta înseamnă că coloana etichete nu este complet inutilă pentru noi, dar va necesita ceva muncă pentru a o face utilă.
+
+##### Scorul mediu al hotelului
+
+Există o serie de ciudățenii sau discrepanțe în setul de date pe care nu le pot explica, dar sunt ilustrate aici pentru a fi conștient de ele atunci când construiești modelele tale. Dacă le descoperi, te rugăm să ne anunți în secțiunea de discuții!
+
+Setul de date are următoarele coloane legate de scorul mediu și numărul de recenzii:
+
+1. Hotel_Name
+2. Additional_Number_of_Scoring
+3. Average_Score
+4. Total_Number_of_Reviews
+5. Reviewer_Score
+
+Hotelul cu cele mai multe recenzii din acest set de date este *Britannia International Hotel Canary Wharf* cu 4789 de recenzii din 515.000. Dar dacă ne uităm la valoarea `Total_Number_of_Reviews` pentru acest hotel, este 9086. Ai putea presupune că există mult mai multe scoruri fără recenzii, așa că poate ar trebui să adăugăm valoarea din coloana `Additional_Number_of_Scoring`. Acea valoare este 2682, iar adăugând-o la 4789 obținem 7471, care este încă cu 1615 mai puțin decât `Total_Number_of_Reviews`.
+
+Dacă iei coloana `Average_Score`, ai putea presupune că este media recenziilor din setul de date, dar descrierea de pe Kaggle este "*Scorul mediu al hotelului, calculat pe baza celui mai recent comentariu din ultimul an*". Acest lucru nu pare foarte util, dar putem calcula propria noastră medie bazată pe scorurile recenziilor din setul de date. Folosind același hotel ca exemplu, scorul mediu al hotelului este dat ca 7.1, dar scorul calculat (scorul mediu al recenzorilor *din* setul de date) este 6.8. Acesta este apropiat, dar nu aceeași valoare, și putem doar presupune că scorurile date în recenziile `Additional_Number_of_Scoring` au crescut media la 7.1. Din păcate, fără nicio modalitate de a testa sau de a dovedi această afirmație, este dificil să folosim sau să avem încredere în `Average_Score`, `Additional_Number_of_Scoring` și `Total_Number_of_Reviews` atunci când se bazează pe, sau se referă la, date pe care nu le avem.
+
+Pentru a complica lucrurile și mai mult, hotelul cu al doilea cel mai mare număr de recenzii are un scor mediu calculat de 8.12, iar scorul mediu din setul de date este 8.1. Este acest scor corect o coincidență sau este primul hotel o discrepanță?
+
+Pe posibilitatea ca acest hotel să fie un punct de excepție și că poate majoritatea valorilor se potrivesc (dar unele nu dintr-un motiv oarecare), vom scrie un program scurt în continuare pentru a explora valorile din setul de date și a determina utilizarea corectă (sau neutilizarea) valorilor.
+> 🚨 O notă de precauție
+>
+> Când lucrați cu acest set de date, veți scrie cod care calculează ceva din text fără a fi nevoie să citiți sau să analizați textul în mod direct. Aceasta este esența NLP-ului, interpretarea semnificației sau sentimentului fără a fi nevoie ca un om să o facă. Totuși, este posibil să citiți unele dintre recenziile negative. Vă îndemn să nu o faceți, deoarece nu este necesar. Unele dintre ele sunt absurde sau irelevante, cum ar fi recenzii negative despre hotel de genul „Vremea nu a fost grozavă”, ceva ce este dincolo de controlul hotelului sau, de fapt, al oricui. Dar există și o latură întunecată a unor recenzii. Uneori, recenziile negative sunt rasiste, sexiste sau discriminatorii pe criterii de vârstă. Acest lucru este regretabil, dar de așteptat într-un set de date extras de pe un site public. Unii recenzori lasă comentarii pe care le-ați putea considera dezgustătoare, inconfortabile sau deranjante. Este mai bine să lăsați codul să măsoare sentimentul decât să le citiți voi înșivă și să fiți afectați. Acestea fiind spuse, este vorba de o minoritate care scrie astfel de lucruri, dar ele există totuși.
+## Exercițiu - Explorarea datelor
+### Încarcă datele
+
+Ajunge cu examinarea vizuală a datelor, acum vei scrie cod și vei obține răspunsuri! Această secțiune folosește biblioteca pandas. Prima ta sarcină este să te asiguri că poți încărca și citi datele CSV. Biblioteca pandas are un loader rapid pentru fișiere CSV, iar rezultatul este plasat într-un dataframe, la fel ca în lecțiile anterioare. Fișierul CSV pe care îl încărcăm are peste jumătate de milion de rânduri, dar doar 17 coloane. Pandas îți oferă multe modalități puternice de a interacționa cu un dataframe, inclusiv abilitatea de a efectua operații pe fiecare rând.
+
+De aici înainte, în această lecție, vor fi fragmente de cod și câteva explicații ale codului, precum și discuții despre ce înseamnă rezultatele. Folosește _notebook.ipynb_ inclus pentru codul tău.
+
+Să începem cu încărcarea fișierului de date pe care îl vei folosi:
+
+```python
+# Load the hotel reviews from CSV
+import pandas as pd
+import time
+# importing time so the start and end time can be used to calculate file loading time
+print("Loading data file now, this could take a while depending on file size")
+start = time.time()
+# df is 'DataFrame' - make sure you downloaded the file to the data folder
+df = pd.read_csv('../../data/Hotel_Reviews.csv')
+end = time.time()
+print("Loading took " + str(round(end - start, 2)) + " seconds")
+```
+
+Acum că datele sunt încărcate, putem efectua câteva operații asupra lor. Păstrează acest cod în partea de sus a programului pentru următoarea parte.
+
+## Explorează datele
+
+În acest caz, datele sunt deja *curate*, ceea ce înseamnă că sunt gata de lucru și nu conțin caractere în alte limbi care ar putea încurca algoritmii care se așteaptă doar la caractere în limba engleză.
+
+✅ Este posibil să trebuiască să lucrezi cu date care necesită o procesare inițială pentru a le formata înainte de a aplica tehnici NLP, dar nu de această dată. Dacă ar fi necesar, cum ai gestiona caracterele non-engleze?
+
+Ia un moment pentru a te asigura că, odată ce datele sunt încărcate, le poți explora cu cod. Este foarte ușor să vrei să te concentrezi pe coloanele `Negative_Review` și `Positive_Review`. Acestea sunt pline de text natural pentru algoritmii tăi NLP. Dar stai! Înainte de a te arunca în NLP și sentiment, ar trebui să urmezi codul de mai jos pentru a verifica dacă valorile date în setul de date se potrivesc cu valorile pe care le calculezi cu pandas.
+
+## Operații pe dataframe
+
+Prima sarcină din această lecție este să verifici dacă următoarele afirmații sunt corecte, scriind cod care examinează dataframe-ul (fără a-l modifica).
+
+> La fel ca multe sarcini de programare, există mai multe moduri de a le finaliza, dar un sfat bun este să o faci în cel mai simplu și ușor mod posibil, mai ales dacă va fi mai ușor de înțeles când te vei întoarce la acest cod în viitor. Cu dataframe-uri, există un API cuprinzător care va avea adesea o modalitate eficientă de a face ceea ce dorești.
+
+Tratează următoarele întrebări ca sarcini de cod și încearcă să le răspunzi fără a te uita la soluție.
+
+1. Afișează *forma* dataframe-ului pe care tocmai l-ai încărcat (forma este numărul de rânduri și coloane).
+2. Calculează frecvența naționalităților recenzorilor:
+ 1. Câte valori distincte există pentru coloana `Reviewer_Nationality` și care sunt acestea?
+ 2. Care este naționalitatea recenzorului cea mai comună în setul de date (afișează țara și numărul de recenzii)?
+ 3. Care sunt următoarele 10 cele mai frecvente naționalități și frecvența lor?
+3. Care a fost hotelul cel mai frecvent recenzat pentru fiecare dintre cele mai frecvente 10 naționalități ale recenzorilor?
+4. Câte recenzii sunt per hotel (frecvența recenziilor hotelului) în setul de date?
+5. Deși există o coloană `Average_Score` pentru fiecare hotel în setul de date, poți calcula și un scor mediu (obținând media tuturor scorurilor recenzorilor din setul de date pentru fiecare hotel). Adaugă o nouă coloană în dataframe-ul tău cu antetul `Calc_Average_Score` care conține acea medie calculată.
+6. Există hoteluri care au același `Average_Score` și `Calc_Average_Score` (rotunjite la o zecimală)?
+ 1. Încearcă să scrii o funcție Python care ia un Series (rând) ca argument și compară valorile, afișând un mesaj când valorile nu sunt egale. Apoi folosește metoda `.apply()` pentru a procesa fiecare rând cu funcția.
+7. Calculează și afișează câte rânduri au valori "No Negative" în coloana `Negative_Review`.
+8. Calculează și afișează câte rânduri au valori "No Positive" în coloana `Positive_Review`.
+9. Calculează și afișează câte rânduri au valori "No Positive" în coloana `Positive_Review` **și** valori "No Negative" în coloana `Negative_Review`.
+
+### Răspunsuri în cod
+
+1. Afișează *forma* dataframe-ului pe care tocmai l-ai încărcat (forma este numărul de rânduri și coloane).
+
+ ```python
+ print("The shape of the data (rows, cols) is " + str(df.shape))
+ > The shape of the data (rows, cols) is (515738, 17)
+ ```
+
+2. Calculează frecvența naționalităților recenzorilor:
+
+ 1. Câte valori distincte există pentru coloana `Reviewer_Nationality` și care sunt acestea?
+ 2. Care este naționalitatea recenzorului cea mai comună în setul de date (afișează țara și numărul de recenzii)?
+
+ ```python
+ # value_counts() creates a Series object that has index and values in this case, the country and the frequency they occur in reviewer nationality
+ nationality_freq = df["Reviewer_Nationality"].value_counts()
+ print("There are " + str(nationality_freq.size) + " different nationalities")
+ # print first and last rows of the Series. Change to nationality_freq.to_string() to print all of the data
+ print(nationality_freq)
+
+ There are 227 different nationalities
+ United Kingdom 245246
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ ...
+ Comoros 1
+ Palau 1
+ Northern Mariana Islands 1
+ Cape Verde 1
+ Guinea 1
+ Name: Reviewer_Nationality, Length: 227, dtype: int64
+ ```
+
+ 3. Care sunt următoarele 10 cele mai frecvente naționalități și frecvența lor?
+
+ ```python
+ print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.")
+ # Notice there is a leading space on the values, strip() removes that for printing
+ # What is the top 10 most common nationalities and their frequencies?
+ print("The next 10 highest frequency reviewer nationalities are:")
+ print(nationality_freq[1:11].to_string())
+
+ The highest frequency reviewer nationality is United Kingdom with 245246 reviews.
+ The next 10 highest frequency reviewer nationalities are:
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ Saudi Arabia 8951
+ Netherlands 8772
+ Switzerland 8678
+ Germany 7941
+ Canada 7894
+ France 7296
+ ```
+
+3. Care a fost hotelul cel mai frecvent recenzat pentru fiecare dintre cele mai frecvente 10 naționalități ale recenzorilor?
+
+ ```python
+ # What was the most frequently reviewed hotel for the top 10 nationalities
+ # Normally with pandas you will avoid an explicit loop, but wanted to show creating a new dataframe using criteria (don't do this with large amounts of data because it could be very slow)
+ for nat in nationality_freq[:10].index:
+ # First, extract all the rows that match the criteria into a new dataframe
+ nat_df = df[df["Reviewer_Nationality"] == nat]
+ # Now get the hotel freq
+ freq = nat_df["Hotel_Name"].value_counts()
+ print("The most reviewed hotel for " + str(nat).strip() + " was " + str(freq.index[0]) + " with " + str(freq[0]) + " reviews.")
+
+ The most reviewed hotel for United Kingdom was Britannia International Hotel Canary Wharf with 3833 reviews.
+ The most reviewed hotel for United States of America was Hotel Esther a with 423 reviews.
+ The most reviewed hotel for Australia was Park Plaza Westminster Bridge London with 167 reviews.
+ The most reviewed hotel for Ireland was Copthorne Tara Hotel London Kensington with 239 reviews.
+ The most reviewed hotel for United Arab Emirates was Millennium Hotel London Knightsbridge with 129 reviews.
+ The most reviewed hotel for Saudi Arabia was The Cumberland A Guoman Hotel with 142 reviews.
+ The most reviewed hotel for Netherlands was Jaz Amsterdam with 97 reviews.
+ The most reviewed hotel for Switzerland was Hotel Da Vinci with 97 reviews.
+ The most reviewed hotel for Germany was Hotel Da Vinci with 86 reviews.
+ The most reviewed hotel for Canada was St James Court A Taj Hotel London with 61 reviews.
+ ```
+
+4. Câte recenzii sunt per hotel (frecvența recenziilor hotelului) în setul de date?
+
+ ```python
+ # First create a new dataframe based on the old one, removing the uneeded columns
+ hotel_freq_df = df.drop(["Hotel_Address", "Additional_Number_of_Scoring", "Review_Date", "Average_Score", "Reviewer_Nationality", "Negative_Review", "Review_Total_Negative_Word_Counts", "Positive_Review", "Review_Total_Positive_Word_Counts", "Total_Number_of_Reviews_Reviewer_Has_Given", "Reviewer_Score", "Tags", "days_since_review", "lat", "lng"], axis = 1)
+
+ # Group the rows by Hotel_Name, count them and put the result in a new column Total_Reviews_Found
+ hotel_freq_df['Total_Reviews_Found'] = hotel_freq_df.groupby('Hotel_Name').transform('count')
+
+ # Get rid of all the duplicated rows
+ hotel_freq_df = hotel_freq_df.drop_duplicates(subset = ["Hotel_Name"])
+ display(hotel_freq_df)
+ ```
+ | Hotel_Name | Total_Number_of_Reviews | Total_Reviews_Found |
+ | :----------------------------------------: | :---------------------: | :-----------------: |
+ | Britannia International Hotel Canary Wharf | 9086 | 4789 |
+ | Park Plaza Westminster Bridge London | 12158 | 4169 |
+ | Copthorne Tara Hotel London Kensington | 7105 | 3578 |
+ | ... | ... | ... |
+ | Mercure Paris Porte d Orleans | 110 | 10 |
+ | Hotel Wagner | 135 | 10 |
+ | Hotel Gallitzinberg | 173 | 8 |
+
+ Poți observa că rezultatele *numărate în setul de date* nu se potrivesc cu valoarea din `Total_Number_of_Reviews`. Nu este clar dacă această valoare din setul de date reprezenta numărul total de recenzii pe care hotelul le avea, dar nu toate au fost extrase, sau alt calcul. `Total_Number_of_Reviews` nu este utilizat în model din cauza acestei neclarități.
+
+5. Deși există o coloană `Average_Score` pentru fiecare hotel în setul de date, poți calcula și un scor mediu (obținând media tuturor scorurilor recenzorilor din setul de date pentru fiecare hotel). Adaugă o nouă coloană în dataframe-ul tău cu antetul `Calc_Average_Score` care conține acea medie calculată. Afișează coloanele `Hotel_Name`, `Average_Score` și `Calc_Average_Score`.
+
+ ```python
+ # define a function that takes a row and performs some calculation with it
+ def get_difference_review_avg(row):
+ return row["Average_Score"] - row["Calc_Average_Score"]
+
+ # 'mean' is mathematical word for 'average'
+ df['Calc_Average_Score'] = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+
+ # Add a new column with the difference between the two average scores
+ df["Average_Score_Difference"] = df.apply(get_difference_review_avg, axis = 1)
+
+ # Create a df without all the duplicates of Hotel_Name (so only 1 row per hotel)
+ review_scores_df = df.drop_duplicates(subset = ["Hotel_Name"])
+
+ # Sort the dataframe to find the lowest and highest average score difference
+ review_scores_df = review_scores_df.sort_values(by=["Average_Score_Difference"])
+
+ display(review_scores_df[["Average_Score_Difference", "Average_Score", "Calc_Average_Score", "Hotel_Name"]])
+ ```
+
+ Poți să te întrebi despre valoarea `Average_Score` și de ce este uneori diferită de scorul mediu calculat. Deoarece nu putem ști de ce unele valori se potrivesc, dar altele au o diferență, este mai sigur în acest caz să folosim scorurile recenzorilor pe care le avem pentru a calcula media noi înșine. Totuși, diferențele sunt de obicei foarte mici, iată hotelurile cu cea mai mare deviație între media din setul de date și media calculată:
+
+ | Average_Score_Difference | Average_Score | Calc_Average_Score | Hotel_Name |
+ | :----------------------: | :-----------: | :----------------: | ------------------------------------------: |
+ | -0.8 | 7.7 | 8.5 | Best Western Hotel Astoria |
+ | -0.7 | 8.8 | 9.5 | Hotel Stendhal Place Vend me Paris MGallery |
+ | -0.7 | 7.5 | 8.2 | Mercure Paris Porte d Orleans |
+ | -0.7 | 7.9 | 8.6 | Renaissance Paris Vendome Hotel |
+ | -0.5 | 7.0 | 7.5 | Hotel Royal Elys es |
+ | ... | ... | ... | ... |
+ | 0.7 | 7.5 | 6.8 | Mercure Paris Op ra Faubourg Montmartre |
+ | 0.8 | 7.1 | 6.3 | Holiday Inn Paris Montparnasse Pasteur |
+ | 0.9 | 6.8 | 5.9 | Villa Eugenie |
+ | 0.9 | 8.6 | 7.7 | MARQUIS Faubourg St Honor Relais Ch teaux |
+ | 1.3 | 7.2 | 5.9 | Kube Hotel Ice Bar |
+
+ Cu doar 1 hotel având o diferență de scor mai mare de 1, înseamnă că probabil putem ignora diferența și să folosim scorul mediu calculat.
+
+6. Calculează și afișează câte rânduri au valori "No Negative" în coloana `Negative_Review`.
+
+7. Calculează și afișează câte rânduri au valori "No Positive" în coloana `Positive_Review`.
+
+8. Calculează și afișează câte rânduri au valori "No Positive" în coloana `Positive_Review` **și** valori "No Negative" în coloana `Negative_Review`.
+
+ ```python
+ # with lambdas:
+ start = time.time()
+ no_negative_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" else False , axis=1)
+ print("Number of No Negative reviews: " + str(len(no_negative_reviews[no_negative_reviews == True].index)))
+
+ no_positive_reviews = df.apply(lambda x: True if x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of No Positive reviews: " + str(len(no_positive_reviews[no_positive_reviews == True].index)))
+
+ both_no_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" and x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of both No Negative and No Positive reviews: " + str(len(both_no_reviews[both_no_reviews == True].index)))
+ end = time.time()
+ print("Lambdas took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Lambdas took 9.64 seconds
+ ```
+
+## O altă metodă
+
+O altă metodă de a număra elementele fără Lambdas și de a folosi sum pentru a număra rândurile:
+
+ ```python
+ # without lambdas (using a mixture of notations to show you can use both)
+ start = time.time()
+ no_negative_reviews = sum(df.Negative_Review == "No Negative")
+ print("Number of No Negative reviews: " + str(no_negative_reviews))
+
+ no_positive_reviews = sum(df["Positive_Review"] == "No Positive")
+ print("Number of No Positive reviews: " + str(no_positive_reviews))
+
+ both_no_reviews = sum((df.Negative_Review == "No Negative") & (df.Positive_Review == "No Positive"))
+ print("Number of both No Negative and No Positive reviews: " + str(both_no_reviews))
+
+ end = time.time()
+ print("Sum took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Sum took 0.19 seconds
+ ```
+
+ Poți să fi observat că există 127 rânduri care au atât valori "No Negative", cât și "No Positive" pentru coloanele `Negative_Review` și `Positive_Review` respectiv. Asta înseamnă că recenzorul a dat hotelului un scor numeric, dar a refuzat să scrie fie o recenzie pozitivă, fie negativă. Din fericire, aceasta este o cantitate mică de rânduri (127 din 515738, sau 0.02%), deci probabil nu va influența modelul sau rezultatele într-o direcție particulară, dar s-ar putea să nu te fi așteptat ca un set de date de recenzii să aibă rânduri fără recenzii, așa că merită să explorezi datele pentru a descoperi astfel de rânduri.
+
+Acum că ai explorat setul de date, în lecția următoare vei filtra datele și vei adăuga o analiză a sentimentului.
+
+---
+## 🚀Provocare
+
+Această lecție demonstrează, așa cum am văzut în lecțiile anterioare, cât de important este să înțelegi datele și particularitățile lor înainte de a efectua operații asupra lor. Datele bazate pe text, în special, necesită o examinare atentă. Explorează diverse seturi de date bogate în text și vezi dacă poți descoperi zone care ar putea introduce bias sau sentiment distorsionat într-un model.
+
+## [Quiz post-lectură](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Urmează [acest parcurs de învățare despre NLP](https://docs.microsoft.com/learn/paths/explore-natural-language-processing/?WT.mc_id=academic-77952-leestott) pentru a descoperi instrumente pe care să le încerci atunci când construiești modele bazate pe vorbire și text.
+
+## Temă
+
+[NLTK](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/4-Hotel-Reviews-1/assignment.md b/translations/ro/6-NLP/4-Hotel-Reviews-1/assignment.md
new file mode 100644
index 00000000..2036cd5f
--- /dev/null
+++ b/translations/ro/6-NLP/4-Hotel-Reviews-1/assignment.md
@@ -0,0 +1,19 @@
+
+# NLTK
+
+## Instrucțiuni
+
+NLTK este o bibliotecă bine-cunoscută utilizată în lingvistica computațională și procesarea limbajului natural (NLP). Profită de această ocazie pentru a citi '[cartea NLTK](https://www.nltk.org/book/)' și încearcă exercițiile din ea. În această temă fără notă, vei avea ocazia să cunoști mai bine această bibliotecă.
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md b/translations/ro/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
new file mode 100644
index 00000000..0902240e
--- /dev/null
+++ b/translations/ro/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/4-Hotel-Reviews-1/solution/R/README.md b/translations/ro/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
new file mode 100644
index 00000000..afd3ff6b
--- /dev/null
+++ b/translations/ro/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/5-Hotel-Reviews-2/README.md b/translations/ro/6-NLP/5-Hotel-Reviews-2/README.md
new file mode 100644
index 00000000..0c8c3a7a
--- /dev/null
+++ b/translations/ro/6-NLP/5-Hotel-Reviews-2/README.md
@@ -0,0 +1,388 @@
+
+# Analiza sentimentelor cu recenzii de hotel
+
+Acum că ai explorat în detaliu setul de date, este momentul să filtrezi coloanele și să utilizezi tehnici NLP pe setul de date pentru a obține noi perspective despre hoteluri.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+### Operațiuni de filtrare și analiză a sentimentelor
+
+Așa cum probabil ai observat, setul de date are câteva probleme. Unele coloane sunt pline de informații inutile, altele par incorecte. Chiar dacă sunt corecte, nu este clar cum au fost calculate, iar răspunsurile nu pot fi verificate independent prin propriile calcule.
+
+## Exercițiu: un pic mai mult procesare a datelor
+
+Curăță datele puțin mai mult. Adaugă coloane care vor fi utile mai târziu, modifică valorile din alte coloane și elimină complet anumite coloane.
+
+1. Procesarea inițială a coloanelor
+
+ 1. Elimină `lat` și `lng`
+
+ 2. Înlocuiește valorile din `Hotel_Address` cu următoarele valori (dacă adresa conține numele orașului și țării, schimbă-l doar la oraș și țară).
+
+ Acestea sunt singurele orașe și țări din setul de date:
+
+ Amsterdam, Netherlands
+
+ Barcelona, Spain
+
+ London, United Kingdom
+
+ Milan, Italy
+
+ Paris, France
+
+ Vienna, Austria
+
+ ```python
+ def replace_address(row):
+ if "Netherlands" in row["Hotel_Address"]:
+ return "Amsterdam, Netherlands"
+ elif "Barcelona" in row["Hotel_Address"]:
+ return "Barcelona, Spain"
+ elif "United Kingdom" in row["Hotel_Address"]:
+ return "London, United Kingdom"
+ elif "Milan" in row["Hotel_Address"]:
+ return "Milan, Italy"
+ elif "France" in row["Hotel_Address"]:
+ return "Paris, France"
+ elif "Vienna" in row["Hotel_Address"]:
+ return "Vienna, Austria"
+
+ # Replace all the addresses with a shortened, more useful form
+ df["Hotel_Address"] = df.apply(replace_address, axis = 1)
+ # The sum of the value_counts() should add up to the total number of reviews
+ print(df["Hotel_Address"].value_counts())
+ ```
+
+ Acum poți interoga date la nivel de țară:
+
+ ```python
+ display(df.groupby("Hotel_Address").agg({"Hotel_Name": "nunique"}))
+ ```
+
+ | Hotel_Address | Hotel_Name |
+ | :--------------------- | :--------: |
+ | Amsterdam, Netherlands | 105 |
+ | Barcelona, Spain | 211 |
+ | London, United Kingdom | 400 |
+ | Milan, Italy | 162 |
+ | Paris, France | 458 |
+ | Vienna, Austria | 158 |
+
+2. Procesează coloanele meta-recenziei hotelului
+
+ 1. Elimină `Additional_Number_of_Scoring`
+
+ 1. Înlocuiește `Total_Number_of_Reviews` cu numărul total de recenzii pentru acel hotel care sunt efectiv în setul de date
+
+ 1. Înlocuiește `Average_Score` cu scorul calculat de noi
+
+ ```python
+ # Drop `Additional_Number_of_Scoring`
+ df.drop(["Additional_Number_of_Scoring"], axis = 1, inplace=True)
+ # Replace `Total_Number_of_Reviews` and `Average_Score` with our own calculated values
+ df.Total_Number_of_Reviews = df.groupby('Hotel_Name').transform('count')
+ df.Average_Score = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+ ```
+
+3. Procesează coloanele recenziilor
+
+ 1. Elimină `Review_Total_Negative_Word_Counts`, `Review_Total_Positive_Word_Counts`, `Review_Date` și `days_since_review`
+
+ 2. Păstrează `Reviewer_Score`, `Negative_Review` și `Positive_Review` așa cum sunt,
+
+ 3. Păstrează `Tags` pentru moment
+
+ - Vom face câteva operațiuni suplimentare de filtrare pe tag-uri în secțiunea următoare, iar apoi tag-urile vor fi eliminate
+
+4. Procesează coloanele recenzentului
+
+ 1. Elimină `Total_Number_of_Reviews_Reviewer_Has_Given`
+
+ 2. Păstrează `Reviewer_Nationality`
+
+### Coloanele de tag-uri
+
+Coloana `Tag` este problematică deoarece este o listă (în formă de text) stocată în coloană. Din păcate, ordinea și numărul de subsecțiuni din această coloană nu sunt întotdeauna aceleași. Este dificil pentru un om să identifice frazele corecte de interes, deoarece există 515.000 de rânduri și 1427 de hoteluri, iar fiecare are opțiuni ușor diferite pe care un recenzent le-ar putea alege. Aici intervine NLP. Poți scana textul și găsi cele mai comune fraze și să le numeri.
+
+Din păcate, nu suntem interesați de cuvinte individuale, ci de fraze de mai multe cuvinte (de exemplu, *Călătorie de afaceri*). Rularea unui algoritm de distribuție a frecvenței frazelor pe atât de multe date (6762646 cuvinte) ar putea dura un timp extraordinar, dar fără a privi datele, ar părea că este o cheltuială necesară. Aici este utilă analiza exploratorie a datelor, deoarece ai văzut un eșantion de tag-uri precum `[' Călătorie de afaceri ', ' Călător singur ', ' Cameră single ', ' A stat 5 nopți ', ' Trimis de pe un dispozitiv mobil ']`, poți începe să te întrebi dacă este posibil să reduci semnificativ procesarea pe care trebuie să o faci. Din fericire, este - dar mai întâi trebuie să urmezi câțiva pași pentru a determina tag-urile de interes.
+
+### Filtrarea tag-urilor
+
+Amintește-ți că scopul setului de date este să adaugi sentiment și coloane care te vor ajuta să alegi cel mai bun hotel (pentru tine sau poate pentru un client care îți cere să creezi un bot de recomandare pentru hoteluri). Trebuie să te întrebi dacă tag-urile sunt utile sau nu în setul de date final. Iată o interpretare (dacă ai nevoie de setul de date pentru alte motive, tag-urile ar putea rămâne/să fie excluse din selecție):
+
+1. Tipul de călătorie este relevant și ar trebui să rămână
+2. Tipul grupului de oaspeți este important și ar trebui să rămână
+3. Tipul camerei, suitei sau studioului în care a stat oaspetele este irelevant (toate hotelurile au practic aceleași camere)
+4. Dispozitivul pe care a fost trimisă recenzia este irelevant
+5. Numărul de nopți în care recenzentul a stat *ar putea* fi relevant dacă atribui șederile mai lungi cu faptul că le-a plăcut mai mult hotelul, dar este o presupunere și probabil irelevant
+
+În rezumat, **păstrează 2 tipuri de tag-uri și elimină celelalte**.
+
+Mai întâi, nu vrei să numeri tag-urile până când acestea nu sunt într-un format mai bun, ceea ce înseamnă eliminarea parantezelor pătrate și a ghilimelelor. Poți face acest lucru în mai multe moduri, dar vrei cea mai rapidă metodă, deoarece ar putea dura mult timp să procesezi multe date. Din fericire, pandas are o metodă ușoară pentru fiecare dintre acești pași.
+
+```Python
+# Remove opening and closing brackets
+df.Tags = df.Tags.str.strip("[']")
+# remove all quotes too
+df.Tags = df.Tags.str.replace(" ', '", ",", regex = False)
+```
+
+Fiecare tag devine ceva de genul: `Călătorie de afaceri, Călător singur, Cameră single, A stat 5 nopți, Trimis de pe un dispozitiv mobil`.
+
+Apoi găsim o problemă. Unele recenzii sau rânduri au 5 coloane, altele 3, altele 6. Acesta este un rezultat al modului în care a fost creat setul de date și este dificil de remediat. Vrei să obții o numărătoare a frecvenței fiecărei fraze, dar acestea sunt în ordine diferită în fiecare recenzie, astfel încât numărătoarea ar putea fi greșită, iar un hotel ar putea să nu primească un tag atribuit pe care îl merita.
+
+În schimb, vei folosi ordinea diferită în avantajul nostru, deoarece fiecare tag este format din mai multe cuvinte, dar și separat prin virgulă! Cea mai simplă metodă este să creezi 6 coloane temporare, fiecare tag fiind inserat în coloana corespunzătoare ordinii sale în tag. Apoi poți combina cele 6 coloane într-o singură coloană mare și să rulezi metoda `value_counts()` pe coloana rezultată. Printând rezultatul, vei vedea că au existat 2428 de tag-uri unice. Iată un mic eșantion:
+
+| Tag | Count |
+| ------------------------------ | ------ |
+| Călătorie de relaxare | 417778 |
+| Trimis de pe un dispozitiv mobil | 307640 |
+| Cuplu | 252294 |
+| A stat 1 noapte | 193645 |
+| A stat 2 nopți | 133937 |
+| Călător singur | 108545 |
+| A stat 3 nopți | 95821 |
+| Călătorie de afaceri | 82939 |
+| Grup | 65392 |
+| Familie cu copii mici | 61015 |
+| A stat 4 nopți | 47817 |
+| Cameră dublă | 35207 |
+| Cameră dublă standard | 32248 |
+| Cameră dublă superioară | 31393 |
+| Familie cu copii mai mari | 26349 |
+| Cameră dublă deluxe | 24823 |
+| Cameră dublă sau twin | 22393 |
+| A stat 5 nopți | 20845 |
+| Cameră dublă sau twin standard | 17483 |
+| Cameră dublă clasică | 16989 |
+| Cameră dublă sau twin superioară | 13570 |
+| 2 camere | 12393 |
+
+Unele dintre tag-urile comune, cum ar fi `Trimis de pe un dispozitiv mobil`, nu ne sunt de folos, așa că ar fi inteligent să le eliminăm înainte de a număra frecvența frazelor, dar este o operațiune atât de rapidă încât le poți lăsa și să le ignori.
+
+### Eliminarea tag-urilor legate de durata șederii
+
+Eliminarea acestor tag-uri este pasul 1, reducând ușor numărul total de tag-uri care trebuie luate în considerare. Observă că nu le elimini din setul de date, ci doar alegi să le elimini din considerare ca valori de numărat/păstrat în setul de date al recenziilor.
+
+| Durata șederii | Count |
+| -------------- | ------ |
+| A stat 1 noapte | 193645 |
+| A stat 2 nopți | 133937 |
+| A stat 3 nopți | 95821 |
+| A stat 4 nopți | 47817 |
+| A stat 5 nopți | 20845 |
+| A stat 6 nopți | 9776 |
+| A stat 7 nopți | 7399 |
+| A stat 8 nopți | 2502 |
+| A stat 9 nopți | 1293 |
+| ... | ... |
+
+Există o mare varietate de camere, suite, studiouri, apartamente și așa mai departe. Toate înseamnă aproximativ același lucru și nu sunt relevante pentru tine, așa că elimină-le din considerare.
+
+| Tipul camerei | Count |
+| ---------------------------- | ----- |
+| Cameră dublă | 35207 |
+| Cameră dublă standard | 32248 |
+| Cameră dublă superioară | 31393 |
+| Cameră dublă deluxe | 24823 |
+| Cameră dublă sau twin | 22393 |
+| Cameră dublă sau twin standard | 17483 |
+| Cameră dublă clasică | 16989 |
+| Cameră dublă sau twin superioară | 13570 |
+
+În cele din urmă, și acest lucru este încântător (pentru că nu a necesitat prea multă procesare), vei rămâne cu următoarele tag-uri *utile*:
+
+| Tag | Count |
+| --------------------------------------------- | ------ |
+| Călătorie de relaxare | 417778 |
+| Cuplu | 252294 |
+| Călător singur | 108545 |
+| Călătorie de afaceri | 82939 |
+| Grup (combinat cu Călători cu prieteni) | 67535 |
+| Familie cu copii mici | 61015 |
+| Familie cu copii mai mari | 26349 |
+| Cu un animal de companie | 1405 |
+
+Ai putea argumenta că `Călători cu prieteni` este același lucru cu `Grup` mai mult sau mai puțin, și ar fi corect să le combini, așa cum este indicat mai sus. Codul pentru identificarea tag-urilor corecte se află în [notebook-ul Tags](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb).
+
+Ultimul pas este să creezi coloane noi pentru fiecare dintre aceste tag-uri. Apoi, pentru fiecare rând de recenzie, dacă coloana `Tag` se potrivește cu una dintre coloanele noi, adaugă un 1, dacă nu, adaugă un 0. Rezultatul final va fi o numărătoare a câți recenzenți au ales acest hotel (în agregat) pentru, de exemplu, afaceri vs relaxare, sau pentru a aduce un animal de companie, și aceasta este o informație utilă atunci când recomanzi un hotel.
+
+```python
+# Process the Tags into new columns
+# The file Hotel_Reviews_Tags.py, identifies the most important tags
+# Leisure trip, Couple, Solo traveler, Business trip, Group combined with Travelers with friends,
+# Family with young children, Family with older children, With a pet
+df["Leisure_trip"] = df.Tags.apply(lambda tag: 1 if "Leisure trip" in tag else 0)
+df["Couple"] = df.Tags.apply(lambda tag: 1 if "Couple" in tag else 0)
+df["Solo_traveler"] = df.Tags.apply(lambda tag: 1 if "Solo traveler" in tag else 0)
+df["Business_trip"] = df.Tags.apply(lambda tag: 1 if "Business trip" in tag else 0)
+df["Group"] = df.Tags.apply(lambda tag: 1 if "Group" in tag or "Travelers with friends" in tag else 0)
+df["Family_with_young_children"] = df.Tags.apply(lambda tag: 1 if "Family with young children" in tag else 0)
+df["Family_with_older_children"] = df.Tags.apply(lambda tag: 1 if "Family with older children" in tag else 0)
+df["With_a_pet"] = df.Tags.apply(lambda tag: 1 if "With a pet" in tag else 0)
+
+```
+
+### Salvează fișierul
+
+În cele din urmă, salvează setul de date așa cum este acum, cu un nume nou.
+
+```python
+df.drop(["Review_Total_Negative_Word_Counts", "Review_Total_Positive_Word_Counts", "days_since_review", "Total_Number_of_Reviews_Reviewer_Has_Given"], axis = 1, inplace=True)
+
+# Saving new data file with calculated columns
+print("Saving results to Hotel_Reviews_Filtered.csv")
+df.to_csv(r'../data/Hotel_Reviews_Filtered.csv', index = False)
+```
+
+## Operațiuni de analiză a sentimentelor
+
+În această secțiune finală, vei aplica analiza sentimentelor pe coloanele de recenzii și vei salva rezultatele într-un set de date.
+
+## Exercițiu: încarcă și salvează datele filtrate
+
+Observă că acum încarci setul de date filtrat care a fost salvat în secțiunea anterioară, **nu** setul de date original.
+
+```python
+import time
+import pandas as pd
+import nltk as nltk
+from nltk.corpus import stopwords
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+nltk.download('vader_lexicon')
+
+# Load the filtered hotel reviews from CSV
+df = pd.read_csv('../../data/Hotel_Reviews_Filtered.csv')
+
+# You code will be added here
+
+
+# Finally remember to save the hotel reviews with new NLP data added
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r'../data/Hotel_Reviews_NLP.csv', index = False)
+```
+
+### Eliminarea cuvintelor de umplutură
+
+Dacă ai rula analiza sentimentelor pe coloanele de recenzii negative și pozitive, ar putea dura mult timp. Testat pe un laptop puternic cu CPU rapid, a durat 12 - 14 minute, în funcție de biblioteca de analiză a sentimentelor utilizată. Este un timp (relativ) lung, așa că merită investigat dacă poate fi accelerat.
+
+Eliminarea cuvintelor de umplutură, sau a cuvintelor comune în limba engleză care nu schimbă sentimentul unei propoziții, este primul pas. Prin eliminarea lor, analiza sentimentelor ar trebui să ruleze mai rapid, dar să nu fie mai puțin precisă (deoarece cuvintele de umplutură nu afectează sentimentul, dar încetinesc analiza).
+
+Cea mai lungă recenzie negativă avea 395 de cuvinte, dar după eliminarea cuvintelor de umplutură, are 195 de cuvinte.
+
+Eliminarea cuvintelor de umplutură este, de asemenea, o operațiune rapidă; eliminarea lor din 2 coloane de recenzii pe 515.000 de rânduri a durat 3,3 secunde pe dispozitivul de testare. Ar putea dura puțin mai mult sau mai puțin pentru tine, în funcție de viteza CPU-ului dispozitivului, RAM, dacă ai un SSD sau nu și alți factori. Durata relativ scurtă a operațiunii înseamnă că, dacă îmbunătățește timpul de analiză a sentimentelor, atunci merită făcută.
+
+```python
+from nltk.corpus import stopwords
+
+# Load the hotel reviews from CSV
+df = pd.read_csv("../../data/Hotel_Reviews_Filtered.csv")
+
+# Remove stop words - can be slow for a lot of text!
+# Ryan Han (ryanxjhan on Kaggle) has a great post measuring performance of different stop words removal approaches
+# https://www.kaggle.com/ryanxjhan/fast-stop-words-removal # using the approach that Ryan recommends
+start = time.time()
+cache = set(stopwords.words("english"))
+def remove_stopwords(review):
+ text = " ".join([word for word in review.split() if word not in cache])
+ return text
+
+# Remove the stop words from both columns
+df.Negative_Review = df.Negative_Review.apply(remove_stopwords)
+df.Positive_Review = df.Positive_Review.apply(remove_stopwords)
+```
+
+### Realizarea analizei sentimentelor
+
+Acum ar trebui să calculezi analiza sentimentelor pentru coloanele de recenzii negative și pozitive și să stochezi rezultatul în 2 coloane noi. Testul sentimentului va fi să-l compari cu scorul recenzentului pentru aceeași recenzie. De exemplu, dacă sentimentul consideră că recenzia negativă avea un sentiment de 1 (sentiment extrem de pozitiv) și un sentiment de 1 pentru recenzia pozitivă, dar recenzentul a dat hotelului cel mai mic scor posibil, atunci fie textul recenziei nu se potrivește cu scorul, fie analizatorul de sentimente nu a putut recunoaște corect sentimentul. Ar trebui să te aștepți ca unele scoruri de sentiment să fie complet greșite, și adesea acest lucru va fi explicabil, de exemplu, recenzia ar putea fi extrem de sarcastică: "Desigur, AM IUBIT să dorm într-o cameră fără încălzire", iar analizatorul de sentimente consideră că acesta este un sentiment pozitiv, deși un om care citește ar ști că este sarcasm.
+NLTK oferă diferiți analizatori de sentiment pentru a învăța, iar tu poți să îi înlocuiești și să vezi dacă sentimentul este mai precis sau mai puțin precis. Analiza de sentiment VADER este utilizată aici.
+
+> Hutto, C.J. & Gilbert, E.E. (2014). VADER: Un model simplificat bazat pe reguli pentru analiza sentimentului textelor din social media. A opta Conferință Internațională despre Bloguri și Social Media (ICWSM-14). Ann Arbor, MI, iunie 2014.
+
+```python
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+
+# Create the vader sentiment analyser (there are others in NLTK you can try too)
+vader_sentiment = SentimentIntensityAnalyzer()
+# Hutto, C.J. & Gilbert, E.E. (2014). VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text. Eighth International Conference on Weblogs and Social Media (ICWSM-14). Ann Arbor, MI, June 2014.
+
+# There are 3 possibilities of input for a review:
+# It could be "No Negative", in which case, return 0
+# It could be "No Positive", in which case, return 0
+# It could be a review, in which case calculate the sentiment
+def calc_sentiment(review):
+ if review == "No Negative" or review == "No Positive":
+ return 0
+ return vader_sentiment.polarity_scores(review)["compound"]
+```
+
+Mai târziu, în programul tău, când ești pregătit să calculezi sentimentul, îl poți aplica fiecărei recenzii astfel:
+
+```python
+# Add a negative sentiment and positive sentiment column
+print("Calculating sentiment columns for both positive and negative reviews")
+start = time.time()
+df["Negative_Sentiment"] = df.Negative_Review.apply(calc_sentiment)
+df["Positive_Sentiment"] = df.Positive_Review.apply(calc_sentiment)
+end = time.time()
+print("Calculating sentiment took " + str(round(end - start, 2)) + " seconds")
+```
+
+Aceasta durează aproximativ 120 de secunde pe computerul meu, dar va varia în funcție de fiecare computer. Dacă vrei să tipărești rezultatele și să vezi dacă sentimentul se potrivește cu recenzia:
+
+```python
+df = df.sort_values(by=["Negative_Sentiment"], ascending=True)
+print(df[["Negative_Review", "Negative_Sentiment"]])
+df = df.sort_values(by=["Positive_Sentiment"], ascending=True)
+print(df[["Positive_Review", "Positive_Sentiment"]])
+```
+
+Ultimul lucru pe care trebuie să-l faci cu fișierul înainte de a-l folosi în provocare este să-l salvezi! De asemenea, ar trebui să iei în considerare reordonarea tuturor coloanelor noi astfel încât să fie ușor de lucrat cu ele (pentru un om, este o schimbare cosmetică).
+
+```python
+# Reorder the columns (This is cosmetic, but to make it easier to explore the data later)
+df = df.reindex(["Hotel_Name", "Hotel_Address", "Total_Number_of_Reviews", "Average_Score", "Reviewer_Score", "Negative_Sentiment", "Positive_Sentiment", "Reviewer_Nationality", "Leisure_trip", "Couple", "Solo_traveler", "Business_trip", "Group", "Family_with_young_children", "Family_with_older_children", "With_a_pet", "Negative_Review", "Positive_Review"], axis=1)
+
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r"../data/Hotel_Reviews_NLP.csv", index = False)
+```
+
+Ar trebui să rulezi întregul cod din [notebook-ul de analiză](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) (după ce ai rulat [notebook-ul de filtrare](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) pentru a genera fișierul Hotel_Reviews_Filtered.csv).
+
+Pentru a recapitula, pașii sunt:
+
+1. Fișierul original al datasetului **Hotel_Reviews.csv** este explorat în lecția anterioară cu [notebook-ul de explorare](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb)
+2. Hotel_Reviews.csv este filtrat de [notebook-ul de filtrare](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb), rezultând **Hotel_Reviews_Filtered.csv**
+3. Hotel_Reviews_Filtered.csv este procesat de [notebook-ul de analiză a sentimentului](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb), rezultând **Hotel_Reviews_NLP.csv**
+4. Folosește Hotel_Reviews_NLP.csv în provocarea NLP de mai jos
+
+### Concluzie
+
+Când ai început, aveai un dataset cu coloane și date, dar nu toate puteau fi verificate sau utilizate. Ai explorat datele, ai filtrat ceea ce nu aveai nevoie, ai convertit etichetele în ceva util, ai calculat propriile medii, ai adăugat câteva coloane de sentiment și, sperăm, ai învățat lucruri interesante despre procesarea textului natural.
+
+## [Quiz de după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Provocare
+
+Acum că ai analizat datasetul pentru sentiment, vezi dacă poți folosi strategiile pe care le-ai învățat în acest curriculum (poate clustering?) pentru a determina modele legate de sentiment.
+
+## Recapitulare & Studiu Individual
+
+Parcurge [acest modul Learn](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott) pentru a învăța mai multe și pentru a folosi diferite instrumente pentru a explora sentimentul în text.
+## Temă
+
+[Încearcă un alt dataset](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/5-Hotel-Reviews-2/assignment.md b/translations/ro/6-NLP/5-Hotel-Reviews-2/assignment.md
new file mode 100644
index 00000000..a011af8c
--- /dev/null
+++ b/translations/ro/6-NLP/5-Hotel-Reviews-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Încearcă un set de date diferit
+
+## Instrucțiuni
+
+Acum că ai învățat să folosești NLTK pentru a atribui sentiment textului, încearcă un set de date diferit. Probabil va fi nevoie să faci ceva procesare a datelor, așa că creează un notebook și documentează procesul tău de gândire. Ce descoperi?
+
+## Criterii de evaluare
+
+| Criteriu | Exemplu | Adecvat | Necesită îmbunătățiri |
+| -------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------- |
+| | Un notebook complet și un set de date sunt prezentate, cu celule bine documentate care explică modul în care este atribuit sentimentul | Notebook-ul lipsește explicații bune | Notebook-ul este defect |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md b/translations/ro/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
new file mode 100644
index 00000000..2617884a
--- /dev/null
+++ b/translations/ro/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/5-Hotel-Reviews-2/solution/R/README.md b/translations/ro/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
new file mode 100644
index 00000000..be365118
--- /dev/null
+++ b/translations/ro/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/README.md b/translations/ro/6-NLP/README.md
new file mode 100644
index 00000000..54053e3a
--- /dev/null
+++ b/translations/ro/6-NLP/README.md
@@ -0,0 +1,38 @@
+
+# Introducere în procesarea limbajului natural
+
+Procesarea limbajului natural (NLP) reprezintă abilitatea unui program de calculator de a înțelege limbajul uman așa cum este vorbit și scris – denumit limbaj natural. Este o componentă a inteligenței artificiale (AI). NLP există de mai bine de 50 de ani și își are rădăcinile în domeniul lingvisticii. Întregul domeniu este orientat spre a ajuta mașinile să înțeleagă și să proceseze limbajul uman. Acest lucru poate fi utilizat ulterior pentru a îndeplini sarcini precum verificarea ortografică sau traducerea automată. Are o varietate de aplicații practice în mai multe domenii, inclusiv cercetarea medicală, motoarele de căutare și analiza de business.
+
+## Subiect regional: Limbile și literatura europeană și hotelurile romantice din Europa ❤️
+
+În această secțiune a curriculumului, vei fi introdus în una dintre cele mai răspândite utilizări ale învățării automate: procesarea limbajului natural (NLP). Derivată din lingvistica computațională, această categorie de inteligență artificială reprezintă puntea de legătură între oameni și mașini prin comunicare vocală sau textuală.
+
+În aceste lecții vom învăța elementele de bază ale NLP construind mici roboți conversaționali pentru a înțelege cum învățarea automată contribuie la crearea unor conversații din ce în ce mai „inteligente”. Vei călători în timp, discutând cu Elizabeth Bennett și Mr. Darcy din romanul clasic al lui Jane Austen, **Mândrie și Prejudecată**, publicat în 1813. Apoi, îți vei aprofunda cunoștințele învățând despre analiza sentimentelor prin recenzii de hoteluri din Europa.
+
+
+> Fotografie de Elaine Howlin pe Unsplash
+
+## Lecții
+
+1. [Introducere în procesarea limbajului natural](1-Introduction-to-NLP/README.md)
+2. [Sarcini și tehnici comune în NLP](2-Tasks/README.md)
+3. [Traducere și analiză a sentimentelor cu învățarea automată](3-Translation-Sentiment/README.md)
+4. [Pregătirea datelor tale](4-Hotel-Reviews-1/README.md)
+5. [NLTK pentru analiza sentimentelor](5-Hotel-Reviews-2/README.md)
+
+## Credite
+
+Aceste lecții despre procesarea limbajului natural au fost scrise cu ☕ de [Stephen Howell](https://twitter.com/Howell_MSFT)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/6-NLP/data/README.md b/translations/ro/6-NLP/data/README.md
new file mode 100644
index 00000000..81dc3052
--- /dev/null
+++ b/translations/ro/6-NLP/data/README.md
@@ -0,0 +1,15 @@
+
+Descarcă datele recenziilor hotelului în acest folder.
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/1-Introduction/README.md b/translations/ro/7-TimeSeries/1-Introduction/README.md
new file mode 100644
index 00000000..05b60b02
--- /dev/null
+++ b/translations/ro/7-TimeSeries/1-Introduction/README.md
@@ -0,0 +1,199 @@
+
+# Introducere în prognoza seriilor temporale
+
+
+
+> Sketchnote de [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+În această lecție și în cea următoare, vei învăța câte ceva despre prognoza seriilor temporale, o parte interesantă și valoroasă din repertoriul unui om de știință în ML, care este puțin mai puțin cunoscută decât alte subiecte. Prognoza seriilor temporale este un fel de „glob de cristal”: pe baza performanței trecute a unei variabile, cum ar fi prețul, poți prezice valoarea sa potențială viitoare.
+
+[](https://youtu.be/cBojo1hsHiI "Introducere în prognoza seriilor temporale")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un videoclip despre prognoza seriilor temporale
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+Este un domeniu util și interesant, cu valoare reală pentru afaceri, având aplicații directe în probleme de prețuri, inventar și lanțuri de aprovizionare. Deși tehnicile de învățare profundă au început să fie utilizate pentru a obține mai multe informații și a prezice mai bine performanța viitoare, prognoza seriilor temporale rămâne un domeniu puternic influențat de tehnicile clasice de ML.
+
+> Curriculumul util despre serii temporale de la Penn State poate fi găsit [aici](https://online.stat.psu.edu/stat510/lesson/1)
+
+## Introducere
+
+Să presupunem că administrezi o serie de parcometre inteligente care oferă date despre cât de des sunt utilizate și pentru cât timp, de-a lungul timpului.
+
+> Ce-ar fi dacă ai putea prezice, pe baza performanței trecute a parcometrului, valoarea sa viitoare conform legilor cererii și ofertei?
+
+Prezicerea exactă a momentului în care să acționezi pentru a-ți atinge obiectivul este o provocare care ar putea fi abordată prin prognoza seriilor temporale. Nu ar face oamenii fericiți să fie taxați mai mult în perioadele aglomerate când caută un loc de parcare, dar ar fi o modalitate sigură de a genera venituri pentru curățarea străzilor!
+
+Să explorăm câteva tipuri de algoritmi pentru serii temporale și să începem un notebook pentru a curăța și pregăti niște date. Datele pe care le vei analiza sunt preluate din competiția de prognoză GEFCom2014. Acestea constau în 3 ani de valori orare ale consumului de energie electrică și temperaturii, între 2012 și 2014. Având în vedere modelele istorice ale consumului de energie electrică și temperaturii, poți prezice valorile viitoare ale consumului de energie electrică.
+
+În acest exemplu, vei învăța cum să prognozezi un pas de timp înainte, folosind doar datele istorice ale consumului. Totuși, înainte de a începe, este util să înțelegi ce se întâmplă în culise.
+
+## Câteva definiții
+
+Când întâlnești termenul „serii temporale”, trebuie să înțelegi utilizarea sa în mai multe contexte diferite.
+
+🎓 **Serii temporale**
+
+În matematică, „o serie temporală este o serie de puncte de date indexate (sau listate sau reprezentate grafic) în ordine temporală. Cel mai frecvent, o serie temporală este o secvență luată la puncte succesive, spațiate egal în timp.” Un exemplu de serie temporală este valoarea de închidere zilnică a [Dow Jones Industrial Average](https://wikipedia.org/wiki/Time_series). Utilizarea graficelor de serii temporale și modelarea statistică sunt frecvent întâlnite în procesarea semnalelor, prognoza meteo, predicția cutremurelor și alte domenii în care evenimentele au loc și punctele de date pot fi reprezentate grafic în timp.
+
+🎓 **Analiza seriilor temporale**
+
+Analiza seriilor temporale este analiza datelor menționate mai sus. Datele de serii temporale pot lua forme distincte, inclusiv „serii temporale întrerupte”, care detectează modele în evoluția unei serii temporale înainte și după un eveniment întreruptor. Tipul de analiză necesar pentru seria temporală depinde de natura datelor. Datele de serii temporale în sine pot lua forma unor serii de numere sau caractere.
+
+Analiza care urmează să fie efectuată utilizează o varietate de metode, inclusiv domeniul frecvenței și domeniul timpului, metode liniare și neliniare și altele. [Află mai multe](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) despre numeroasele moduri de a analiza acest tip de date.
+
+🎓 **Prognoza seriilor temporale**
+
+Prognoza seriilor temporale este utilizarea unui model pentru a prezice valori viitoare pe baza modelelor afișate de datele colectate anterior, pe măsură ce au avut loc în trecut. Deși este posibil să folosești modele de regresie pentru a explora datele de serii temporale, cu indici de timp ca variabile x pe un grafic, astfel de date sunt cel mai bine analizate folosind tipuri speciale de modele.
+
+Datele de serii temporale sunt o listă de observații ordonate, spre deosebire de datele care pot fi analizate prin regresie liniară. Cel mai comun model este ARIMA, un acronim care înseamnă „Autoregressive Integrated Moving Average”.
+
+[Modelele ARIMA](https://online.stat.psu.edu/stat510/lesson/1/1.1) „relatează valoarea prezentă a unei serii cu valorile trecute și erorile de predicție trecute.” Acestea sunt cele mai potrivite pentru analizarea datelor din domeniul timpului, unde datele sunt ordonate în timp.
+
+> Există mai multe tipuri de modele ARIMA, despre care poți învăța [aici](https://people.duke.edu/~rnau/411arim.htm) și pe care le vei aborda în lecția următoare.
+
+În lecția următoare, vei construi un model ARIMA folosind [Serii Temporale Univariate](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm), care se concentrează pe o singură variabilă ce își schimbă valoarea în timp. Un exemplu de acest tip de date este [acest set de date](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) care înregistrează concentrația lunară de CO2 la Observatorul Mauna Loa:
+
+| CO2 | YearMonth | Year | Month |
+| :----: | :-------: | :---: | :---: |
+| 330.62 | 1975.04 | 1975 | 1 |
+| 331.40 | 1975.13 | 1975 | 2 |
+| 331.87 | 1975.21 | 1975 | 3 |
+| 333.18 | 1975.29 | 1975 | 4 |
+| 333.92 | 1975.38 | 1975 | 5 |
+| 333.43 | 1975.46 | 1975 | 6 |
+| 331.85 | 1975.54 | 1975 | 7 |
+| 330.01 | 1975.63 | 1975 | 8 |
+| 328.51 | 1975.71 | 1975 | 9 |
+| 328.41 | 1975.79 | 1975 | 10 |
+| 329.25 | 1975.88 | 1975 | 11 |
+| 330.97 | 1975.96 | 1975 | 12 |
+
+✅ Identifică variabila care se schimbă în timp în acest set de date
+
+## Caracteristici ale datelor de serii temporale de luat în considerare
+
+Când analizezi datele de serii temporale, s-ar putea să observi că acestea au [anumite caracteristici](https://online.stat.psu.edu/stat510/lesson/1/1.1) pe care trebuie să le iei în considerare și să le atenuezi pentru a înțelege mai bine modelele lor. Dacă consideri datele de serii temporale ca potențial oferind un „semnal” pe care vrei să-l analizezi, aceste caracteristici pot fi considerate „zgomot”. Adesea va trebui să reduci acest „zgomot” prin compensarea unor caracteristici folosind tehnici statistice.
+
+Iată câteva concepte pe care ar trebui să le cunoști pentru a putea lucra cu serii temporale:
+
+🎓 **Tendințe**
+
+Tendințele sunt definite ca creșteri și scăderi măsurabile în timp. [Citește mai multe](https://machinelearningmastery.com/time-series-trends-in-python). În contextul seriilor temporale, este vorba despre cum să utilizezi și, dacă este necesar, să elimini tendințele din seria ta temporală.
+
+🎓 **[Sezonalitate](https://machinelearningmastery.com/time-series-seasonality-with-python/)**
+
+Sezonalitatea este definită ca fluctuații periodice, cum ar fi creșterile de vânzări în perioada sărbătorilor, de exemplu. [Aruncă o privire](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm) la modul în care diferite tipuri de grafice afișează sezonalitatea în date.
+
+🎓 **Valori extreme**
+
+Valorile extreme sunt departe de variația standard a datelor.
+
+🎓 **Cicluri pe termen lung**
+
+Independent de sezonalitate, datele pot afișa un ciclu pe termen lung, cum ar fi o recesiune economică care durează mai mult de un an.
+
+🎓 **Variație constantă**
+
+De-a lungul timpului, unele date afișează fluctuații constante, cum ar fi consumul de energie pe zi și noapte.
+
+🎓 **Schimbări bruște**
+
+Datele pot afișa o schimbare bruscă care ar putea necesita o analiză suplimentară. Închiderea bruscă a afacerilor din cauza COVID, de exemplu, a cauzat schimbări în date.
+
+✅ Iată un [exemplu de grafic de serii temporale](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) care arată cheltuielile zilnice cu moneda din joc pe parcursul câtorva ani. Poți identifica oricare dintre caracteristicile enumerate mai sus în aceste date?
+
+
+
+## Exercițiu - începerea cu datele despre consumul de energie
+
+Să începem să creăm un model de serii temporale pentru a prezice consumul viitor de energie pe baza consumului trecut.
+
+> Datele din acest exemplu sunt preluate din competiția de prognoză GEFCom2014. Acestea constau în 3 ani de valori orare ale consumului de energie electrică și temperaturii, între 2012 și 2014.
+>
+> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli și Rob J. Hyndman, „Prognoza probabilistică a energiei: Competiția Globală de Prognoză a Energiei 2014 și dincolo de aceasta”, International Journal of Forecasting, vol.32, nr.3, pp 896-913, iulie-septembrie, 2016.
+
+1. În folderul `working` al acestei lecții, deschide fișierul _notebook.ipynb_. Începe prin adăugarea bibliotecilor care te vor ajuta să încarci și să vizualizezi datele:
+
+ ```python
+ import os
+ import matplotlib.pyplot as plt
+ from common.utils import load_data
+ %matplotlib inline
+ ```
+
+ Observă că folosești fișierele din folderul inclus `common`, care configurează mediul și se ocupă de descărcarea datelor.
+
+2. Apoi, examinează datele ca un dataframe apelând `load_data()` și `head()`:
+
+ ```python
+ data_dir = './data'
+ energy = load_data(data_dir)[['load']]
+ energy.head()
+ ```
+
+ Poți vedea că există două coloane care reprezintă data și consumul:
+
+ | | load |
+ | :-----------------: | :----: |
+ | 2012-01-01 00:00:00 | 2698.0 |
+ | 2012-01-01 01:00:00 | 2558.0 |
+ | 2012-01-01 02:00:00 | 2444.0 |
+ | 2012-01-01 03:00:00 | 2402.0 |
+ | 2012-01-01 04:00:00 | 2403.0 |
+
+3. Acum, reprezintă grafic datele apelând `plot()`:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+4. Acum, reprezintă grafic prima săptămână din iulie 2014, oferind-o ca input pentru `energy` în modelul `[de la data]: [până la data]`:
+
+ ```python
+ energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Un grafic frumos! Aruncă o privire la aceste grafice și vezi dacă poți determina oricare dintre caracteristicile enumerate mai sus. Ce putem deduce prin vizualizarea datelor?
+
+În lecția următoare, vei crea un model ARIMA pentru a realiza câteva prognoze.
+
+---
+
+## 🚀Provocare
+
+Fă o listă cu toate industriile și domeniile de cercetare pe care le poți gândi că ar beneficia de prognoza seriilor temporale. Poți gândi o aplicație a acestor tehnici în arte? În econometrie? Ecologie? Retail? Industrie? Finanțe? Unde altundeva?
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Deși nu le vom acoperi aici, rețelele neuronale sunt uneori utilizate pentru a îmbunătăți metodele clasice de prognoză a seriilor temporale. Citește mai multe despre ele [în acest articol](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412)
+
+## Temă
+
+[Vizualizează mai multe serii temporale](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/1-Introduction/assignment.md b/translations/ro/7-TimeSeries/1-Introduction/assignment.md
new file mode 100644
index 00000000..5b7feac1
--- /dev/null
+++ b/translations/ro/7-TimeSeries/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Vizualizați mai multe serii temporale
+
+## Instrucțiuni
+
+Ați început să învățați despre prognoza seriilor temporale analizând tipul de date care necesită acest model special. Ați vizualizat câteva date legate de energie. Acum, căutați alte tipuri de date care ar beneficia de prognoza seriilor temporale. Găsiți trei exemple (încercați [Kaggle](https://kaggle.com) și [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)) și creați un notebook pentru a le vizualiza. Notați orice caracteristici speciale pe care le au (sezonalitate, schimbări bruște sau alte tendințe) în notebook.
+
+## Criterii de evaluare
+
+| Criteriu | Exemplară | Adecvat | Necesită îmbunătățiri |
+| -------- | ------------------------------------------------------ | ---------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| | Trei seturi de date sunt reprezentate grafic și explicate în notebook | Două seturi de date sunt reprezentate grafic și explicate în notebook | Puține seturi de date sunt reprezentate grafic sau explicate în notebook sau datele prezentate sunt insuficiente |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/1-Introduction/solution/Julia/README.md b/translations/ro/7-TimeSeries/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..4c9fa23c
--- /dev/null
+++ b/translations/ro/7-TimeSeries/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/1-Introduction/solution/R/README.md b/translations/ro/7-TimeSeries/1-Introduction/solution/R/README.md
new file mode 100644
index 00000000..ec1f813a
--- /dev/null
+++ b/translations/ro/7-TimeSeries/1-Introduction/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/2-ARIMA/README.md b/translations/ro/7-TimeSeries/2-ARIMA/README.md
new file mode 100644
index 00000000..2aa914e4
--- /dev/null
+++ b/translations/ro/7-TimeSeries/2-ARIMA/README.md
@@ -0,0 +1,405 @@
+
+# Prognoza seriilor temporale cu ARIMA
+
+În lecția anterioară, ai învățat câte ceva despre prognoza seriilor temporale și ai încărcat un set de date care arată fluctuațiile consumului de energie electrică pe o anumită perioadă de timp.
+
+[](https://youtu.be/IUSk-YDau10 "Introducere în ARIMA")
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un videoclip: O scurtă introducere în modelele ARIMA. Exemplul este realizat în R, dar conceptele sunt universale.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Introducere
+
+În această lecție, vei descoperi o metodă specifică de a construi modele folosind [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average). Modelele ARIMA sunt deosebit de potrivite pentru a se adapta datelor care prezintă [non-staționaritate](https://wikipedia.org/wiki/Stationary_process).
+
+## Concepte generale
+
+Pentru a putea lucra cu ARIMA, există câteva concepte pe care trebuie să le cunoști:
+
+- 🎓 **Staționaritate**. Dintr-un context statistic, staționaritatea se referă la datele a căror distribuție nu se schimbă atunci când sunt deplasate în timp. Datele non-staționare, în schimb, prezintă fluctuații datorate tendințelor care trebuie transformate pentru a fi analizate. Sezonalitatea, de exemplu, poate introduce fluctuații în date și poate fi eliminată printr-un proces de 'diferențiere sezonieră'.
+
+- 🎓 **[Diferențiere](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**. Diferențierea datelor, din nou dintr-un context statistic, se referă la procesul de transformare a datelor non-staționare pentru a le face staționare prin eliminarea tendinței lor non-constante. "Diferențierea elimină schimbările în nivelul unei serii temporale, eliminând tendințele și sezonalitatea și, în consecință, stabilizând media seriei temporale." [Lucrare de Shixiong et al](https://arxiv.org/abs/1904.07632)
+
+## ARIMA în contextul seriilor temporale
+
+Să analizăm componentele ARIMA pentru a înțelege mai bine cum ne ajută să modelăm seriile temporale și să facem predicții pe baza acestora.
+
+- **AR - pentru AutoRegresiv**. Modelele autoregresive, așa cum sugerează numele, privesc 'înapoi' în timp pentru a analiza valorile anterioare din datele tale și pentru a face presupuneri despre acestea. Aceste valori anterioare sunt numite 'lags'. Un exemplu ar fi datele care arată vânzările lunare de creioane. Totalul vânzărilor din fiecare lună ar fi considerat o 'variabilă în evoluție' în setul de date. Acest model este construit astfel încât "variabila de interes în evoluție este regresată pe valorile sale întârziate (adică, anterioare)." [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)
+
+- **I - pentru Integrat**. Spre deosebire de modelele similare 'ARMA', 'I' din ARIMA se referă la aspectul său *[integrat](https://wikipedia.org/wiki/Order_of_integration)*. Datele sunt 'integrate' atunci când sunt aplicate pași de diferențiere pentru a elimina non-staționaritatea.
+
+- **MA - pentru Medie Mobilă**. Aspectul de [medie mobilă](https://wikipedia.org/wiki/Moving-average_model) al acestui model se referă la variabila de ieșire care este determinată prin observarea valorilor curente și anterioare ale lagurilor.
+
+Pe scurt: ARIMA este utilizat pentru a face ca un model să se potrivească cât mai bine cu forma specială a datelor din seriile temporale.
+
+## Exercițiu - construiește un model ARIMA
+
+Deschide folderul [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) din această lecție și găsește fișierul [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb).
+
+1. Rulează notebook-ul pentru a încărca biblioteca Python `statsmodels`; vei avea nevoie de aceasta pentru modelele ARIMA.
+
+1. Încarcă bibliotecile necesare.
+
+1. Acum, încarcă mai multe biblioteci utile pentru a reprezenta grafic datele:
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from pandas.plotting import autocorrelation_plot
+ from statsmodels.tsa.statespace.sarimax import SARIMAX
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ from IPython.display import Image
+
+ %matplotlib inline
+ pd.options.display.float_format = '{:,.2f}'.format
+ np.set_printoptions(precision=2)
+ warnings.filterwarnings("ignore") # specify to ignore warning messages
+ ```
+
+1. Încarcă datele din fișierul `/data/energy.csv` într-un dataframe Pandas și analizează-le:
+
+ ```python
+ energy = load_data('./data')[['load']]
+ energy.head(10)
+ ```
+
+1. Reprezintă grafic toate datele disponibile despre consumul de energie din ianuarie 2012 până în decembrie 2014. Nu ar trebui să existe surprize, deoarece am văzut aceste date în lecția anterioară:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ Acum, să construim un model!
+
+### Creează seturi de date pentru antrenare și testare
+
+Acum că datele tale sunt încărcate, le poți separa în seturi de antrenare și testare. Vei antrena modelul pe setul de antrenare. Ca de obicei, după ce modelul a terminat antrenarea, îi vei evalua acuratețea folosind setul de testare. Trebuie să te asiguri că setul de testare acoperă o perioadă ulterioară în timp față de setul de antrenare pentru a te asigura că modelul nu obține informații din perioadele viitoare.
+
+1. Alocă o perioadă de două luni, de la 1 septembrie până la 31 octombrie 2014, pentru setul de antrenare. Setul de testare va include perioada de două luni de la 1 noiembrie până la 31 decembrie 2014:
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+ Deoarece aceste date reflectă consumul zilnic de energie, există un model sezonier puternic, dar consumul este cel mai asemănător cu consumul din zilele mai recente.
+
+1. Vizualizează diferențele:
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Prin urmare, utilizarea unei ferestre relativ mici de timp pentru antrenarea datelor ar trebui să fie suficientă.
+
+ > Notă: Deoarece funcția pe care o folosim pentru a ajusta modelul ARIMA utilizează validare în eșantion în timpul ajustării, vom omite datele de validare.
+
+### Pregătește datele pentru antrenare
+
+Acum, trebuie să pregătești datele pentru antrenare prin filtrarea și scalarea acestora. Filtrează setul de date pentru a include doar perioadele de timp și coloanele necesare și scalează datele pentru a te asigura că sunt proiectate în intervalul 0,1.
+
+1. Filtrează setul de date original pentru a include doar perioadele de timp menționate anterior pentru fiecare set și doar coloana necesară 'load' plus data:
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ Poți vedea forma datelor:
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+1. Scalează datele pentru a fi în intervalul (0, 1).
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ train.head(10)
+ ```
+
+1. Vizualizează datele originale vs. datele scalate:
+
+ ```python
+ energy[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']].rename(columns={'load':'original load'}).plot.hist(bins=100, fontsize=12)
+ train.rename(columns={'load':'scaled load'}).plot.hist(bins=100, fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ > Datele originale
+
+ 
+
+ > Datele scalate
+
+1. Acum că ai calibrat datele scalate, poți scala datele de testare:
+
+ ```python
+ test['load'] = scaler.transform(test)
+ test.head()
+ ```
+
+### Implementează ARIMA
+
+Este timpul să implementezi ARIMA! Acum vei folosi biblioteca `statsmodels` pe care ai instalat-o mai devreme.
+
+Acum trebuie să urmezi câțiva pași:
+
+ 1. Definește modelul apelând `SARIMAX()` și trecând parametrii modelului: parametrii p, d și q, și parametrii P, D și Q.
+ 2. Pregătește modelul pentru datele de antrenare apelând funcția `fit()`.
+ 3. Fă predicții apelând funcția `forecast()` și specificând numărul de pași (orizontul) pentru prognoză.
+
+> 🎓 Ce reprezintă toți acești parametri? Într-un model ARIMA există 3 parametri care sunt utilizați pentru a ajuta la modelarea principalelor aspecte ale unei serii temporale: sezonalitatea, tendința și zgomotul. Acești parametri sunt:
+
+`p`: parametrul asociat aspectului autoregresiv al modelului, care încorporează valorile *anterioare*.
+`d`: parametrul asociat părții integrate a modelului, care afectează cantitatea de *diferențiere* (🎓 amintește-ți diferențierea 👆?) aplicată unei serii temporale.
+`q`: parametrul asociat părții de medie mobilă a modelului.
+
+> Notă: Dacă datele tale au un aspect sezonier - ceea ce este cazul aici -, folosim un model ARIMA sezonier (SARIMA). În acest caz, trebuie să folosești un alt set de parametri: `P`, `D` și `Q`, care descriu aceleași asocieri ca `p`, `d` și `q`, dar corespund componentelor sezoniere ale modelului.
+
+1. Începe prin a seta valoarea preferată pentru orizont. Să încercăm 3 ore:
+
+ ```python
+ # Specify the number of steps to forecast ahead
+ HORIZON = 3
+ print('Forecasting horizon:', HORIZON, 'hours')
+ ```
+
+ Selectarea celor mai bune valori pentru parametrii unui model ARIMA poate fi provocatoare, deoarece este oarecum subiectivă și consumatoare de timp. Ai putea lua în considerare utilizarea unei funcții `auto_arima()` din biblioteca [`pyramid`](https://alkaline-ml.com/pmdarima/0.9.0/modules/generated/pyramid.arima.auto_arima.html).
+
+1. Deocamdată, încearcă câteva selecții manuale pentru a găsi un model bun.
+
+ ```python
+ order = (4, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ model = SARIMAX(endog=train, order=order, seasonal_order=seasonal_order)
+ results = model.fit()
+
+ print(results.summary())
+ ```
+
+ Se afișează un tabel cu rezultatele.
+
+Ai construit primul tău model! Acum trebuie să găsim o modalitate de a-l evalua.
+
+### Evaluează modelul tău
+
+Pentru a-ți evalua modelul, poți efectua așa-numita validare `walk forward`. În practică, modelele de serii temporale sunt re-antrenate de fiecare dată când devin disponibile date noi. Acest lucru permite modelului să facă cea mai bună prognoză la fiecare pas de timp.
+
+Începând de la începutul seriei temporale, folosind această tehnică, antrenează modelul pe setul de date de antrenare. Apoi, fă o predicție pentru următorul pas de timp. Predicția este evaluată în raport cu valoarea cunoscută. Setul de antrenare este apoi extins pentru a include valoarea cunoscută, iar procesul se repetă.
+
+> Notă: Ar trebui să menții fereastra setului de antrenare fixă pentru o antrenare mai eficientă, astfel încât de fiecare dată când adaugi o nouă observație la setul de antrenare, să elimini observația de la începutul setului.
+
+Acest proces oferă o estimare mai robustă a modului în care modelul va performa în practică. Totuși, vine cu costul computațional de a crea atât de multe modele. Acest lucru este acceptabil dacă datele sunt mici sau dacă modelul este simplu, dar ar putea fi o problemă la scară mare.
+
+Validarea walk-forward este standardul de aur pentru evaluarea modelelor de serii temporale și este recomandată pentru proiectele tale.
+
+1. Mai întâi, creează un punct de date de testare pentru fiecare pas al ORIZONTULUI.
+
+ ```python
+ test_shifted = test.copy()
+
+ for t in range(1, HORIZON+1):
+ test_shifted['load+'+str(t)] = test_shifted['load'].shift(-t, freq='H')
+
+ test_shifted = test_shifted.dropna(how='any')
+ test_shifted.head(5)
+ ```
+
+ | | | load | load+1 | load+2 |
+ | ---------- | -------- | ---- | ------ | ------ |
+ | 2014-12-30 | 00:00:00 | 0.33 | 0.29 | 0.27 |
+ | 2014-12-30 | 01:00:00 | 0.29 | 0.27 | 0.27 |
+ | 2014-12-30 | 02:00:00 | 0.27 | 0.27 | 0.30 |
+ | 2014-12-30 | 03:00:00 | 0.27 | 0.30 | 0.41 |
+ | 2014-12-30 | 04:00:00 | 0.30 | 0.41 | 0.57 |
+
+ Datele sunt deplasate orizontal în funcție de punctul lor de orizont.
+
+1. Fă predicții pe datele tale de testare folosind această abordare cu fereastră glisantă într-un buclă de dimensiunea lungimii datelor de testare:
+
+ ```python
+ %%time
+ training_window = 720 # dedicate 30 days (720 hours) for training
+
+ train_ts = train['load']
+ test_ts = test_shifted
+
+ history = [x for x in train_ts]
+ history = history[(-training_window):]
+
+ predictions = list()
+
+ order = (2, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ for t in range(test_ts.shape[0]):
+ model = SARIMAX(endog=history, order=order, seasonal_order=seasonal_order)
+ model_fit = model.fit()
+ yhat = model_fit.forecast(steps = HORIZON)
+ predictions.append(yhat)
+ obs = list(test_ts.iloc[t])
+ # move the training window
+ history.append(obs[0])
+ history.pop(0)
+ print(test_ts.index[t])
+ print(t+1, ': predicted =', yhat, 'expected =', obs)
+ ```
+
+ Poți urmări procesul de antrenare:
+
+ ```output
+ 2014-12-30 00:00:00
+ 1 : predicted = [0.32 0.29 0.28] expected = [0.32945389435989236, 0.2900626678603402, 0.2739480752014323]
+
+ 2014-12-30 01:00:00
+ 2 : predicted = [0.3 0.29 0.3 ] expected = [0.2900626678603402, 0.2739480752014323, 0.26812891674127126]
+
+ 2014-12-30 02:00:00
+ 3 : predicted = [0.27 0.28 0.32] expected = [0.2739480752014323, 0.26812891674127126, 0.3025962399283795]
+ ```
+
+1. Compară predicțiile cu sarcina reală:
+
+ ```python
+ eval_df = pd.DataFrame(predictions, columns=['t+'+str(t) for t in range(1, HORIZON+1)])
+ eval_df['timestamp'] = test.index[0:len(test.index)-HORIZON+1]
+ eval_df = pd.melt(eval_df, id_vars='timestamp', value_name='prediction', var_name='h')
+ eval_df['actual'] = np.array(np.transpose(test_ts)).ravel()
+ eval_df[['prediction', 'actual']] = scaler.inverse_transform(eval_df[['prediction', 'actual']])
+ eval_df.head()
+ ```
+
+ Rezultate
+ | | | timestamp | h | prediction | actual |
+ | --- | ---------- | --------- | --- | ---------- | -------- |
+ | 0 | 2014-12-30 | 00:00:00 | t+1 | 3,008.74 | 3,023.00 |
+ | 1 | 2014-12-30 | 01:00:00 | t+1 | 2,955.53 | 2,935.00 |
+ | 2 | 2014-12-30 | 02:00:00 | t+1 | 2,900.17 | 2,899.00 |
+ | 3 | 2014-12-30 | 03:00:00 | t+1 | 2,917.69 | 2,886.00 |
+ | 4 | 2014-12-30 | 04:00:00 | t+1 | 2,946.99 | 2,963.00 |
+
+ Observă predicția datelor orare, comparativ cu sarcina reală. Cât de precis este acest lucru?
+
+### Verifică acuratețea modelului
+
+Verifică acuratețea modelului tău testând eroarea procentuală medie absolută (MAPE) pe toate predicțiile.
+> **🧮 Arată-mi matematica**
+>
+> 
+>
+> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) este utilizat pentru a arăta acuratețea predicției ca un raport definit de formula de mai sus. Diferența dintre valoarea reală și cea prezisă este împărțită la valoarea reală. "Valoarea absolută în acest calcul este însumată pentru fiecare punct de prognoză în timp și împărțită la numărul de puncte ajustate n." [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
+1. Exprimă ecuația în cod:
+
+ ```python
+ if(HORIZON > 1):
+ eval_df['APE'] = (eval_df['prediction'] - eval_df['actual']).abs() / eval_df['actual']
+ print(eval_df.groupby('h')['APE'].mean())
+ ```
+
+1. Calculează MAPE pentru un pas:
+
+ ```python
+ print('One step forecast MAPE: ', (mape(eval_df[eval_df['h'] == 't+1']['prediction'], eval_df[eval_df['h'] == 't+1']['actual']))*100, '%')
+ ```
+
+ MAPE pentru prognoza unui pas: 0.5570581332313952 %
+
+1. Afișează MAPE pentru prognoza multi-pas:
+
+ ```python
+ print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%')
+ ```
+
+ ```output
+ Multi-step forecast MAPE: 1.1460048657704118 %
+ ```
+
+ Un număr mic este ideal: consideră că o prognoză cu un MAPE de 10 este cu 10% în afara valorii reale.
+
+1. Dar, ca întotdeauna, este mai ușor să vezi acest tip de măsurare a acurateței vizual, așa că hai să o reprezentăm grafic:
+
+ ```python
+ if(HORIZON == 1):
+ ## Plotting single step forecast
+ eval_df.plot(x='timestamp', y=['actual', 'prediction'], style=['r', 'b'], figsize=(15, 8))
+
+ else:
+ ## Plotting multi step forecast
+ plot_df = eval_df[(eval_df.h=='t+1')][['timestamp', 'actual']]
+ for t in range(1, HORIZON+1):
+ plot_df['t+'+str(t)] = eval_df[(eval_df.h=='t+'+str(t))]['prediction'].values
+
+ fig = plt.figure(figsize=(15, 8))
+ ax = plt.plot(plot_df['timestamp'], plot_df['actual'], color='red', linewidth=4.0)
+ ax = fig.add_subplot(111)
+ for t in range(1, HORIZON+1):
+ x = plot_df['timestamp'][(t-1):]
+ y = plot_df['t+'+str(t)][0:len(x)]
+ ax.plot(x, y, color='blue', linewidth=4*math.pow(.9,t), alpha=math.pow(0.8,t))
+
+ ax.legend(loc='best')
+
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+🏆 Un grafic foarte reușit, care arată un model cu o acuratețe bună. Bravo!
+
+---
+
+## 🚀Provocare
+
+Explorează metodele de testare a acurateței unui model de serie temporală. Am discutat despre MAPE în această lecție, dar există și alte metode pe care le-ai putea folosi? Cercetează-le și notează-le. Un document util poate fi găsit [aici](https://otexts.com/fpp2/accuracy.html)
+
+## [Quiz după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare & Studiu Individual
+
+Această lecție abordează doar elementele de bază ale prognozei seriilor temporale cu ARIMA. Ia-ți timp să îți aprofundezi cunoștințele explorând [acest depozit](https://microsoft.github.io/forecasting/) și diferitele tipuri de modele pentru a învăța alte modalități de a construi modele de serie temporală.
+
+## Temă
+
+[Un nou model ARIMA](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/2-ARIMA/assignment.md b/translations/ro/7-TimeSeries/2-ARIMA/assignment.md
new file mode 100644
index 00000000..6c70159a
--- /dev/null
+++ b/translations/ro/7-TimeSeries/2-ARIMA/assignment.md
@@ -0,0 +1,25 @@
+
+# Un nou model ARIMA
+
+## Instrucțiuni
+
+Acum că ai construit un model ARIMA, construiește unul nou folosind date proaspete (încearcă unul dintre [aceste seturi de date de la Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Notează munca ta într-un notebook, vizualizează datele și modelul tău, și testează acuratețea folosind MAPE.
+
+## Criterii de evaluare
+
+| Criteriu | Exemplu | Adecvat | Necesită îmbunătățiri |
+| -------- | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------- |
+| | Este prezentat un notebook cu un nou model ARIMA construit, testat și explicat, cu vizualizări și acuratețea specificată. | Notebook-ul prezentat nu este notat sau conține erori | Este prezentat un notebook incomplet |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/2-ARIMA/solution/Julia/README.md b/translations/ro/7-TimeSeries/2-ARIMA/solution/Julia/README.md
new file mode 100644
index 00000000..b60fd86d
--- /dev/null
+++ b/translations/ro/7-TimeSeries/2-ARIMA/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/2-ARIMA/solution/R/README.md b/translations/ro/7-TimeSeries/2-ARIMA/solution/R/README.md
new file mode 100644
index 00000000..7aec2eaf
--- /dev/null
+++ b/translations/ro/7-TimeSeries/2-ARIMA/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/3-SVR/README.md b/translations/ro/7-TimeSeries/3-SVR/README.md
new file mode 100644
index 00000000..8a557983
--- /dev/null
+++ b/translations/ro/7-TimeSeries/3-SVR/README.md
@@ -0,0 +1,393 @@
+
+# Predicția seriilor temporale cu Support Vector Regressor
+
+În lecția anterioară, ai învățat cum să folosești modelul ARIMA pentru a face predicții ale seriilor temporale. Acum vei explora modelul Support Vector Regressor, un model de regresie utilizat pentru a prezice date continue.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Introducere
+
+În această lecție, vei descoperi o metodă specifică de a construi modele cu [**SVM**: **S**upport **V**ector **M**achine](https://en.wikipedia.org/wiki/Support-vector_machine) pentru regresie, sau **SVR: Support Vector Regressor**.
+
+### SVR în contextul seriilor temporale [^1]
+
+Înainte de a înțelege importanța SVR în predicția seriilor temporale, iată câteva concepte importante pe care trebuie să le cunoști:
+
+- **Regresie:** Tehnică de învățare supravegheată pentru a prezice valori continue dintr-un set dat de intrări. Ideea este de a ajusta o curbă (sau o linie) în spațiul caracteristicilor care să includă cât mai multe puncte de date. [Click aici](https://en.wikipedia.org/wiki/Regression_analysis) pentru mai multe informații.
+- **Support Vector Machine (SVM):** Un tip de model de învățare automată supravegheat utilizat pentru clasificare, regresie și detectarea anomaliilor. Modelul este un hiperplan în spațiul caracteristicilor, care, în cazul clasificării, acționează ca o graniță, iar în cazul regresiei, acționează ca linia de ajustare optimă. În SVM, o funcție Kernel este utilizată în general pentru a transforma setul de date într-un spațiu cu un număr mai mare de dimensiuni, astfel încât să fie mai ușor separabil. [Click aici](https://en.wikipedia.org/wiki/Support-vector_machine) pentru mai multe informații despre SVM.
+- **Support Vector Regressor (SVR):** Un tip de SVM, utilizat pentru a găsi linia de ajustare optimă (care, în cazul SVM, este un hiperplan) ce include cât mai multe puncte de date.
+
+### De ce SVR? [^1]
+
+În lecția anterioară ai învățat despre ARIMA, care este o metodă statistică liniară foarte eficientă pentru a prezice datele seriilor temporale. Totuși, în multe cazuri, datele seriilor temporale prezintă *non-liniaritate*, care nu poate fi modelată de metodele liniare. În astfel de cazuri, abilitatea SVM de a considera non-liniaritatea datelor pentru sarcinile de regresie face ca SVR să fie eficient în predicția seriilor temporale.
+
+## Exercițiu - construirea unui model SVR
+
+Primele câteva etape pentru pregătirea datelor sunt aceleași ca în lecția anterioară despre [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA).
+
+Deschide folderul [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/3-SVR/working) din această lecție și găsește fișierul [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/3-SVR/working/notebook.ipynb). [^2]
+
+1. Rulează notebook-ul și importă bibliotecile necesare: [^2]
+
+ ```python
+ import sys
+ sys.path.append('../../')
+ ```
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from sklearn.svm import SVR
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ ```
+
+2. Încarcă datele din fișierul `/data/energy.csv` într-un dataframe Pandas și analizează-le: [^2]
+
+ ```python
+ energy = load_data('../../data')[['load']]
+ ```
+
+3. Plotează toate datele disponibile despre energie din ianuarie 2012 până în decembrie 2014: [^2]
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Acum, să construim modelul SVR.
+
+### Crearea seturilor de date pentru antrenare și testare
+
+Acum datele tale sunt încărcate, așa că le poți separa în seturi de antrenare și testare. Apoi vei rearanja datele pentru a crea un set de date bazat pe pași de timp, necesar pentru SVR. Vei antrena modelul pe setul de antrenare. După ce modelul a terminat antrenarea, îi vei evalua acuratețea pe setul de antrenare, setul de testare și apoi pe întregul set de date pentru a vedea performanța generală. Trebuie să te asiguri că setul de testare acoperă o perioadă ulterioară în timp față de setul de antrenare pentru a te asigura că modelul nu obține informații din perioadele viitoare [^2] (o situație cunoscută sub numele de *Overfitting*).
+
+1. Alocă o perioadă de două luni, de la 1 septembrie până la 31 octombrie 2014, pentru setul de antrenare. Setul de testare va include perioada de două luni de la 1 noiembrie până la 31 decembrie 2014: [^2]
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+2. Vizualizează diferențele: [^2]
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+### Pregătirea datelor pentru antrenare
+
+Acum trebuie să pregătești datele pentru antrenare prin filtrarea și scalarea acestora. Filtrează setul de date pentru a include doar perioadele de timp și coloanele necesare, și scalează datele pentru a te asigura că sunt proiectate în intervalul 0,1.
+
+1. Filtrează setul de date original pentru a include doar perioadele de timp menționate anterior pentru fiecare set și doar coloana necesară 'load' plus data: [^2]
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+2. Scalează datele de antrenare pentru a fi în intervalul (0, 1): [^2]
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ ```
+
+4. Acum scalează datele de testare: [^2]
+
+ ```python
+ test['load'] = scaler.transform(test)
+ ```
+
+### Crearea datelor cu pași de timp [^1]
+
+Pentru SVR, transformi datele de intrare în forma `[batch, timesteps]`. Așadar, rearanjezi `train_data` și `test_data` existente astfel încât să existe o nouă dimensiune care se referă la pașii de timp.
+
+```python
+# Converting to numpy arrays
+train_data = train.values
+test_data = test.values
+```
+
+Pentru acest exemplu, luăm `timesteps = 5`. Așadar, intrările modelului sunt datele pentru primii 4 pași de timp, iar ieșirea va fi datele pentru al 5-lea pas de timp.
+
+```python
+timesteps=5
+```
+
+Conversia datelor de antrenare într-un tensor 2D folosind list comprehension:
+
+```python
+train_data_timesteps=np.array([[j for j in train_data[i:i+timesteps]] for i in range(0,len(train_data)-timesteps+1)])[:,:,0]
+train_data_timesteps.shape
+```
+
+```output
+(1412, 5)
+```
+
+Conversia datelor de testare într-un tensor 2D:
+
+```python
+test_data_timesteps=np.array([[j for j in test_data[i:i+timesteps]] for i in range(0,len(test_data)-timesteps+1)])[:,:,0]
+test_data_timesteps.shape
+```
+
+```output
+(44, 5)
+```
+
+Selectarea intrărilor și ieșirilor din datele de antrenare și testare:
+
+```python
+x_train, y_train = train_data_timesteps[:,:timesteps-1],train_data_timesteps[:,[timesteps-1]]
+x_test, y_test = test_data_timesteps[:,:timesteps-1],test_data_timesteps[:,[timesteps-1]]
+
+print(x_train.shape, y_train.shape)
+print(x_test.shape, y_test.shape)
+```
+
+```output
+(1412, 4) (1412, 1)
+(44, 4) (44, 1)
+```
+
+### Implementarea SVR [^1]
+
+Acum este momentul să implementezi SVR. Pentru a citi mai multe despre această implementare, poți consulta [această documentație](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html). Pentru implementarea noastră, urmăm acești pași:
+
+ 1. Definim modelul apelând `SVR()` și trecând hiperparametrii modelului: kernel, gamma, c și epsilon
+ 2. Pregătim modelul pentru datele de antrenare apelând funcția `fit()`
+ 3. Facem predicții apelând funcția `predict()`
+
+Acum creăm un model SVR. Aici folosim [kernelul RBF](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel) și setăm hiperparametrii gamma, C și epsilon la 0.5, 10 și 0.05 respectiv.
+
+```python
+model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05)
+```
+
+#### Antrenează modelul pe datele de antrenare [^1]
+
+```python
+model.fit(x_train, y_train[:,0])
+```
+
+```output
+SVR(C=10, cache_size=200, coef0=0.0, degree=3, epsilon=0.05, gamma=0.5,
+ kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)
+```
+
+#### Realizează predicții cu modelul [^1]
+
+```python
+y_train_pred = model.predict(x_train).reshape(-1,1)
+y_test_pred = model.predict(x_test).reshape(-1,1)
+
+print(y_train_pred.shape, y_test_pred.shape)
+```
+
+```output
+(1412, 1) (44, 1)
+```
+
+Ai construit modelul SVR! Acum trebuie să-l evaluăm.
+
+### Evaluează modelul [^1]
+
+Pentru evaluare, mai întâi vom scala înapoi datele la scara originală. Apoi, pentru a verifica performanța, vom plota graficul seriei temporale originale și prezise și vom afișa rezultatul MAPE.
+
+Scalează ieșirea prezisă și cea originală:
+
+```python
+# Scaling the predictions
+y_train_pred = scaler.inverse_transform(y_train_pred)
+y_test_pred = scaler.inverse_transform(y_test_pred)
+
+print(len(y_train_pred), len(y_test_pred))
+```
+
+```python
+# Scaling the original values
+y_train = scaler.inverse_transform(y_train)
+y_test = scaler.inverse_transform(y_test)
+
+print(len(y_train), len(y_test))
+```
+
+#### Verifică performanța modelului pe datele de antrenare și testare [^1]
+
+Extragem marcajele temporale din setul de date pentru a le afișa pe axa x a graficului nostru. Observă că folosim primele ```timesteps-1``` valori ca intrare pentru prima ieșire, astfel încât marcajele temporale pentru ieșire vor începe după aceea.
+
+```python
+train_timestamps = energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)].index[timesteps-1:]
+test_timestamps = energy[test_start_dt:].index[timesteps-1:]
+
+print(len(train_timestamps), len(test_timestamps))
+```
+
+```output
+1412 44
+```
+
+Plotează predicțiile pentru datele de antrenare:
+
+```python
+plt.figure(figsize=(25,6))
+plt.plot(train_timestamps, y_train, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(train_timestamps, y_train_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.title("Training data prediction")
+plt.show()
+```
+
+
+
+Afișează MAPE pentru datele de antrenare
+
+```python
+print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')
+```
+
+```output
+MAPE for training data: 1.7195710200875551 %
+```
+
+Plotează predicțiile pentru datele de testare
+
+```python
+plt.figure(figsize=(10,3))
+plt.plot(test_timestamps, y_test, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(test_timestamps, y_test_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+Afișează MAPE pentru datele de testare
+
+```python
+print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')
+```
+
+```output
+MAPE for testing data: 1.2623790187854018 %
+```
+
+🏆 Ai obținut un rezultat foarte bun pe setul de date de testare!
+
+### Verifică performanța modelului pe întregul set de date [^1]
+
+```python
+# Extracting load values as numpy array
+data = energy.copy().values
+
+# Scaling
+data = scaler.transform(data)
+
+# Transforming to 2D tensor as per model input requirement
+data_timesteps=np.array([[j for j in data[i:i+timesteps]] for i in range(0,len(data)-timesteps+1)])[:,:,0]
+print("Tensor shape: ", data_timesteps.shape)
+
+# Selecting inputs and outputs from data
+X, Y = data_timesteps[:,:timesteps-1],data_timesteps[:,[timesteps-1]]
+print("X shape: ", X.shape,"\nY shape: ", Y.shape)
+```
+
+```output
+Tensor shape: (26300, 5)
+X shape: (26300, 4)
+Y shape: (26300, 1)
+```
+
+```python
+# Make model predictions
+Y_pred = model.predict(X).reshape(-1,1)
+
+# Inverse scale and reshape
+Y_pred = scaler.inverse_transform(Y_pred)
+Y = scaler.inverse_transform(Y)
+```
+
+```python
+plt.figure(figsize=(30,8))
+plt.plot(Y, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(Y_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+```python
+print('MAPE: ', mape(Y_pred, Y)*100, '%')
+```
+
+```output
+MAPE: 2.0572089029888656 %
+```
+
+🏆 Grafice foarte frumoase, care arată un model cu o acuratețe bună. Felicitări!
+
+---
+
+## 🚀Provocare
+
+- Încearcă să ajustezi hiperparametrii (gamma, C, epsilon) în timp ce creezi modelul și evaluează-l pe date pentru a vedea care set de hiperparametri oferă cele mai bune rezultate pe datele de testare. Pentru a afla mai multe despre acești hiperparametri, poți consulta documentul [aici](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel).
+- Încearcă să folosești funcții kernel diferite pentru model și analizează performanțele acestora pe setul de date. Un document util poate fi găsit [aici](https://scikit-learn.org/stable/modules/svm.html#kernel-functions).
+- Încearcă să folosești valori diferite pentru `timesteps` pentru ca modelul să privească înapoi pentru a face predicții.
+
+## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și studiu individual
+
+Această lecție a fost pentru a introduce aplicația SVR pentru predicția seriilor temporale. Pentru a citi mai multe despre SVR, poți consulta [acest blog](https://www.analyticsvidhya.com/blog/2020/03/support-vector-regression-tutorial-for-machine-learning/). Această [documentație despre scikit-learn](https://scikit-learn.org/stable/modules/svm.html) oferă o explicație mai cuprinzătoare despre SVM-uri în general, [SVR-uri](https://scikit-learn.org/stable/modules/svm.html#regression) și, de asemenea, alte detalii de implementare, cum ar fi diferitele [funcții kernel](https://scikit-learn.org/stable/modules/svm.html#kernel-functions) care pot fi utilizate și parametrii acestora.
+
+## Temă
+
+[Un nou model SVR](assignment.md)
+
+## Credite
+
+[^1]: Textul, codul și rezultatele din această secțiune au fost contribuite de [@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD)
+[^2]: Textul, codul și rezultatele din această secțiune au fost preluate din [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/3-SVR/assignment.md b/translations/ro/7-TimeSeries/3-SVR/assignment.md
new file mode 100644
index 00000000..4ba90dbf
--- /dev/null
+++ b/translations/ro/7-TimeSeries/3-SVR/assignment.md
@@ -0,0 +1,29 @@
+
+# Un nou model SVR
+
+## Instrucțiuni [^1]
+
+Acum că ai construit un model SVR, creează unul nou folosind date proaspete (încearcă unul dintre [aceste seturi de date de la Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Notează munca ta într-un notebook, vizualizează datele și modelul tău, și testează acuratețea folosind grafice adecvate și MAPE. De asemenea, încearcă să ajustezi diferiți hiperparametri și să folosești valori diferite pentru timesteps.
+
+## Criterii de evaluare [^1]
+
+| Criteriu | Exemplary | Adequate | Needs Improvement |
+| -------- | ------------------------------------------------------------ | --------------------------------------------------------- | ----------------------------------- |
+| | Este prezentat un notebook cu un model SVR construit, testat și explicat, incluzând vizualizări și acuratețea declarată. | Notebook-ul prezentat nu este notat sau conține erori. | Este prezentat un notebook incomplet. |
+
+
+
+[^1]:Textul din această secțiune se bazează pe [temă de la ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/7-TimeSeries/README.md b/translations/ro/7-TimeSeries/README.md
new file mode 100644
index 00000000..ac12a904
--- /dev/null
+++ b/translations/ro/7-TimeSeries/README.md
@@ -0,0 +1,37 @@
+
+# Introducere în prognoza seriilor temporale
+
+Ce este prognoza seriilor temporale? Este vorba despre prezicerea evenimentelor viitoare prin analizarea tendințelor din trecut.
+
+## Subiect regional: consumul de energie electrică la nivel mondial ✨
+
+În aceste două lecții, vei fi introdus în prognoza seriilor temporale, un domeniu ceva mai puțin cunoscut al învățării automate, dar care este extrem de valoros pentru aplicații industriale și de afaceri, printre altele. Deși rețelele neuronale pot fi utilizate pentru a spori utilitatea acestor modele, le vom studia în contextul învățării automate clasice, deoarece modelele ajută la prezicerea performanței viitoare pe baza trecutului.
+
+Focalizarea noastră regională este consumul de energie electrică la nivel mondial, un set de date interesant pentru a învăța cum să prognozăm consumul de energie viitor pe baza modelelor de încărcare din trecut. Poți vedea cum acest tip de prognoză poate fi extrem de util într-un mediu de afaceri.
+
+
+
+Fotografie de [Peddi Sai hrithik](https://unsplash.com/@shutter_log?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) cu turnuri electrice pe un drum din Rajasthan pe [Unsplash](https://unsplash.com/s/photos/electric-india?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
+
+## Lecții
+
+1. [Introducere în prognoza seriilor temporale](1-Introduction/README.md)
+2. [Construirea modelelor ARIMA pentru serii temporale](2-ARIMA/README.md)
+3. [Construirea unui Support Vector Regressor pentru prognoza seriilor temporale](3-SVR/README.md)
+
+## Credite
+
+"Introducere în prognoza seriilor temporale" a fost scrisă cu ⚡️ de [Francesca Lazzeri](https://twitter.com/frlazzeri) și [Jen Looper](https://twitter.com/jenlooper). Notebook-urile au apărut pentru prima dată online în [repo-ul Azure "Deep Learning For Time Series"](https://github.com/Azure/DeepLearningForTimeSeriesForecasting) scris inițial de Francesca Lazzeri. Lecția despre SVR a fost scrisă de [Anirban Mukherjee](https://github.com/AnirbanMukherjeeXD).
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/1-QLearning/README.md b/translations/ro/8-Reinforcement/1-QLearning/README.md
new file mode 100644
index 00000000..188ca884
--- /dev/null
+++ b/translations/ro/8-Reinforcement/1-QLearning/README.md
@@ -0,0 +1,256 @@
+
+# Introducere în Învățarea prin Recompensă și Q-Learning
+
+
+> Sketchnote de [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Învățarea prin recompensă implică trei concepte importante: agentul, câteva stări și un set de acțiuni pentru fiecare stare. Prin executarea unei acțiuni într-o stare specificată, agentul primește o recompensă. Imaginează din nou jocul pe calculator Super Mario. Tu ești Mario, te afli într-un nivel de joc, stând lângă marginea unei prăpăstii. Deasupra ta este o monedă. Tu, fiind Mario, într-un nivel de joc, într-o poziție specifică... aceasta este starea ta. Dacă faci un pas spre dreapta (o acțiune), vei cădea în prăpastie, ceea ce îți va aduce un scor numeric scăzut. Totuși, dacă apeși butonul de săritură, vei obține un punct și vei rămâne în viață. Acesta este un rezultat pozitiv și ar trebui să îți aducă un scor numeric pozitiv.
+
+Folosind învățarea prin recompensă și un simulator (jocul), poți învăța cum să joci pentru a maximiza recompensa, adică să rămâi în viață și să obții cât mai multe puncte.
+
+[](https://www.youtube.com/watch?v=lDq_en8RNOo)
+
+> 🎥 Click pe imaginea de mai sus pentru a-l asculta pe Dmitry discutând despre Învățarea prin Recompensă
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## Cerințe preliminare și configurare
+
+În această lecție, vom experimenta cu ceva cod în Python. Ar trebui să poți rula codul din Jupyter Notebook din această lecție, fie pe computerul tău, fie undeva în cloud.
+
+Poți deschide [notebook-ul lecției](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) și să parcurgi lecția pentru a construi.
+
+> **Notă:** Dacă deschizi acest cod din cloud, trebuie să obții și fișierul [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), care este utilizat în codul notebook-ului. Adaugă-l în același director ca notebook-ul.
+
+## Introducere
+
+În această lecție, vom explora lumea **[Petru și Lupul](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)**, inspirată de un basm muzical al compozitorului rus [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Vom folosi **Învățarea prin Recompensă** pentru a-l lăsa pe Petru să-și exploreze mediul, să colecteze mere gustoase și să evite întâlnirea cu lupul.
+
+**Învățarea prin Recompensă** (RL) este o tehnică de învățare care ne permite să învățăm un comportament optim al unui **agent** într-un **mediu** prin efectuarea multor experimente. Un agent în acest mediu ar trebui să aibă un **scop**, definit de o **funcție de recompensă**.
+
+## Mediul
+
+Pentru simplitate, să considerăm lumea lui Petru ca o tablă pătrată de dimensiune `width` x `height`, ca aceasta:
+
+
+
+Fiecare celulă din această tablă poate fi:
+
+* **teren**, pe care Petru și alte creaturi pot merge.
+* **apă**, pe care evident nu poți merge.
+* un **copac** sau **iarbă**, un loc unde te poți odihni.
+* un **măr**, care reprezintă ceva ce Petru ar fi bucuros să găsească pentru a se hrăni.
+* un **lup**, care este periculos și ar trebui evitat.
+
+Există un modul Python separat, [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), care conține codul pentru a lucra cu acest mediu. Deoarece acest cod nu este important pentru înțelegerea conceptelor noastre, vom importa modulul și îl vom folosi pentru a crea tabla exemplu (bloc de cod 1):
+
+```python
+from rlboard import *
+
+width, height = 8,8
+m = Board(width,height)
+m.randomize(seed=13)
+m.plot()
+```
+
+Acest cod ar trebui să imprime o imagine a mediului similară cu cea de mai sus.
+
+## Acțiuni și politică
+
+În exemplul nostru, scopul lui Petru ar fi să găsească un măr, evitând lupul și alte obstacole. Pentru a face acest lucru, el poate, în esență, să se plimbe până găsește un măr.
+
+Astfel, în orice poziție, el poate alege între una dintre următoarele acțiuni: sus, jos, stânga și dreapta.
+
+Vom defini aceste acțiuni ca un dicționar și le vom mapa la perechi de modificări corespunzătoare ale coordonatelor. De exemplu, deplasarea spre dreapta (`R`) ar corespunde perechii `(1,0)`. (bloc de cod 2):
+
+```python
+actions = { "U" : (0,-1), "D" : (0,1), "L" : (-1,0), "R" : (1,0) }
+action_idx = { a : i for i,a in enumerate(actions.keys()) }
+```
+
+Pentru a rezuma, strategia și scopul acestui scenariu sunt următoarele:
+
+- **Strategia** agentului nostru (Petru) este definită de o așa-numită **politică**. O politică este o funcție care returnează acțiunea într-o stare dată. În cazul nostru, starea problemei este reprezentată de tablă, inclusiv poziția curentă a jucătorului.
+
+- **Scopul** învățării prin recompensă este să învățăm în cele din urmă o politică bună care ne va permite să rezolvăm problema eficient. Totuși, ca bază, să considerăm cea mai simplă politică numită **plimbare aleatorie**.
+
+## Plimbare aleatorie
+
+Să rezolvăm mai întâi problema noastră implementând o strategie de plimbare aleatorie. Cu plimbarea aleatorie, vom alege aleator următoarea acțiune din acțiunile permise, până ajungem la măr (bloc de cod 3).
+
+1. Implementează plimbarea aleatorie cu codul de mai jos:
+
+ ```python
+ def random_policy(m):
+ return random.choice(list(actions))
+
+ def walk(m,policy,start_position=None):
+ n = 0 # number of steps
+ # set initial position
+ if start_position:
+ m.human = start_position
+ else:
+ m.random_start()
+ while True:
+ if m.at() == Board.Cell.apple:
+ return n # success!
+ if m.at() in [Board.Cell.wolf, Board.Cell.water]:
+ return -1 # eaten by wolf or drowned
+ while True:
+ a = actions[policy(m)]
+ new_pos = m.move_pos(m.human,a)
+ if m.is_valid(new_pos) and m.at(new_pos)!=Board.Cell.water:
+ m.move(a) # do the actual move
+ break
+ n+=1
+
+ walk(m,random_policy)
+ ```
+
+ Apelul la `walk` ar trebui să returneze lungimea traseului corespunzător, care poate varia de la o rulare la alta.
+
+1. Rulează experimentul de plimbare de mai multe ori (să zicem, 100) și imprimă statisticile rezultate (bloc de cod 4):
+
+ ```python
+ def print_statistics(policy):
+ s,w,n = 0,0,0
+ for _ in range(100):
+ z = walk(m,policy)
+ if z<0:
+ w+=1
+ else:
+ s += z
+ n += 1
+ print(f"Average path length = {s/n}, eaten by wolf: {w} times")
+
+ print_statistics(random_policy)
+ ```
+
+ Observă că lungimea medie a unui traseu este în jur de 30-40 de pași, ceea ce este destul de mult, având în vedere că distanța medie până la cel mai apropiat măr este în jur de 5-6 pași.
+
+ Poți vedea și cum arată mișcarea lui Petru în timpul plimbării aleatorii:
+
+ 
+
+## Funcția de recompensă
+
+Pentru a face politica noastră mai inteligentă, trebuie să înțelegem care mișcări sunt "mai bune" decât altele. Pentru a face acest lucru, trebuie să definim scopul nostru.
+
+Scopul poate fi definit în termeni de o **funcție de recompensă**, care va returna o valoare de scor pentru fiecare stare. Cu cât numărul este mai mare, cu atât funcția de recompensă este mai bună. (bloc de cod 5)
+
+```python
+move_reward = -0.1
+goal_reward = 10
+end_reward = -10
+
+def reward(m,pos=None):
+ pos = pos or m.human
+ if not m.is_valid(pos):
+ return end_reward
+ x = m.at(pos)
+ if x==Board.Cell.water or x == Board.Cell.wolf:
+ return end_reward
+ if x==Board.Cell.apple:
+ return goal_reward
+ return move_reward
+```
+
+Un lucru interesant despre funcțiile de recompensă este că, în cele mai multe cazuri, *primim o recompensă substanțială doar la sfârșitul jocului*. Aceasta înseamnă că algoritmul nostru ar trebui cumva să-și amintească "pașii buni" care duc la o recompensă pozitivă la final și să le crească importanța. În mod similar, toate mișcările care duc la rezultate proaste ar trebui descurajate.
+
+## Q-Learning
+
+Un algoritm pe care îl vom discuta aici se numește **Q-Learning**. În acest algoritm, politica este definită de o funcție (sau o structură de date) numită **Q-Table**. Aceasta înregistrează "calitatea" fiecărei acțiuni într-o stare dată.
+
+Se numește Q-Table deoarece este adesea convenabil să o reprezentăm ca o tabelă sau un array multidimensional. Deoarece tabla noastră are dimensiuni `width` x `height`, putem reprezenta Q-Table folosind un array numpy cu forma `width` x `height` x `len(actions)`: (bloc de cod 6)
+
+```python
+Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)
+```
+
+Observă că inițializăm toate valorile din Q-Table cu o valoare egală, în cazul nostru - 0.25. Aceasta corespunde politicii de "plimbare aleatorie", deoarece toate mișcările din fiecare stare sunt la fel de bune. Putem transmite Q-Table funcției `plot` pentru a vizualiza tabela pe tablă: `m.plot(Q)`.
+
+
+
+În centrul fiecărei celule există o "săgeată" care indică direcția preferată de mișcare. Deoarece toate direcțiile sunt egale, se afișează un punct.
+
+Acum trebuie să rulăm simularea, să explorăm mediul nostru și să învățăm o distribuție mai bună a valorilor din Q-Table, care ne va permite să găsim drumul către măr mult mai rapid.
+
+## Esența Q-Learning: Ecuația Bellman
+
+Odată ce începem să ne mișcăm, fiecare acțiune va avea o recompensă corespunzătoare, adică teoretic putem selecta următoarea acțiune pe baza celei mai mari recompense imediate. Totuși, în cele mai multe stări, mișcarea nu va atinge scopul nostru de a ajunge la măr și, astfel, nu putem decide imediat care direcție este mai bună.
+
+> Amintește-ți că nu rezultatul imediat contează, ci mai degrabă rezultatul final, pe care îl vom obține la sfârșitul simulării.
+
+Pentru a ține cont de această recompensă întârziată, trebuie să folosim principiile **[programării dinamice](https://en.wikipedia.org/wiki/Dynamic_programming)**, care ne permit să gândim problema noastră recursiv.
+
+Să presupunem că acum ne aflăm în starea *s* și vrem să ne mutăm în următoarea stare *s'*. Prin aceasta, vom primi recompensa imediată *r(s,a)*, definită de funcția de recompensă, plus o recompensă viitoare. Dacă presupunem că Q-Table reflectă corect "atractivitatea" fiecărei acțiuni, atunci în starea *s'* vom alege o acțiune *a'* care corespunde valorii maxime a *Q(s',a')*. Astfel, cea mai bună recompensă viitoare posibilă pe care am putea să o obținem în starea *s* va fi definită ca `max`
+
+## Verificarea politicii
+
+Deoarece Q-Table listează "atractivitatea" fiecărei acțiuni în fiecare stare, este destul de simplu să o folosim pentru a defini navigarea eficientă în lumea noastră. În cel mai simplu caz, putem selecta acțiunea corespunzătoare valorii maxime din Q-Table: (bloc de cod 9)
+
+```python
+def qpolicy_strict(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = list(actions)[np.argmax(v)]
+ return a
+
+walk(m,qpolicy_strict)
+```
+
+> Dacă încercați codul de mai sus de mai multe ori, este posibil să observați că uneori "se blochează" și trebuie să apăsați butonul STOP din notebook pentru a-l întrerupe. Acest lucru se întâmplă deoarece pot exista situații în care două stări "indică" una către cealaltă în termeni de valoare optimă Q, caz în care agentul ajunge să se miște între aceste stări la nesfârșit.
+
+## 🚀Provocare
+
+> **Sarcina 1:** Modificați funcția `walk` pentru a limita lungimea maximă a traseului la un anumit număr de pași (de exemplu, 100) și observați cum codul de mai sus returnează această valoare din când în când.
+
+> **Sarcina 2:** Modificați funcția `walk` astfel încât să nu se întoarcă în locurile în care a fost deja anterior. Acest lucru va preveni ca `walk` să intre într-un ciclu, însă agentul poate ajunge totuși să fie "blocat" într-o locație din care nu poate scăpa.
+
+## Navigare
+
+O politică de navigare mai bună ar fi cea pe care am folosit-o în timpul antrenamentului, care combină exploatarea și explorarea. În această politică, vom selecta fiecare acțiune cu o anumită probabilitate, proporțională cu valorile din Q-Table. Această strategie poate duce totuși la revenirea agentului într-o poziție pe care a explorat-o deja, dar, după cum puteți vedea din codul de mai jos, rezultă într-un traseu mediu foarte scurt către locația dorită (amintiți-vă că `print_statistics` rulează simularea de 100 de ori): (bloc de cod 10)
+
+```python
+def qpolicy(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = random.choices(list(actions),weights=v)[0]
+ return a
+
+print_statistics(qpolicy)
+```
+
+După rularea acestui cod, ar trebui să obțineți o lungime medie a traseului mult mai mică decât înainte, în intervalul 3-6.
+
+## Investigarea procesului de învățare
+
+Așa cum am menționat, procesul de învățare este un echilibru între explorarea și exploatarea cunoștințelor dobândite despre structura spațiului problemei. Am observat că rezultatele învățării (capacitatea de a ajuta un agent să găsească un traseu scurt către obiectiv) s-au îmbunătățit, dar este, de asemenea, interesant să observăm cum se comportă lungimea medie a traseului în timpul procesului de învățare:
+
+## Rezumarea învățării
+
+- **Lungimea medie a traseului crește**. Ce vedem aici este că, la început, lungimea medie a traseului crește. Acest lucru se datorează probabil faptului că, atunci când nu știm nimic despre mediu, avem tendința să fim prinși în stări nefavorabile, cum ar fi apă sau lup. Pe măsură ce învățăm mai multe și începem să folosim aceste cunoștințe, putem explora mediul mai mult, dar încă nu știm foarte bine unde sunt merele.
+
+- **Lungimea traseului scade, pe măsură ce învățăm mai mult**. Odată ce învățăm suficient, devine mai ușor pentru agent să atingă obiectivul, iar lungimea traseului începe să scadă. Totuși, suntem încă deschiși la explorare, așa că deseori ne abatem de la cel mai bun traseu și explorăm opțiuni noi, ceea ce face traseul mai lung decât optimul.
+
+- **Creștere bruscă a lungimii**. Ce mai observăm pe acest grafic este că, la un moment dat, lungimea a crescut brusc. Acest lucru indică natura stochastică a procesului și faptul că, la un moment dat, putem "strica" coeficienții din Q-Table prin suprascrierea lor cu valori noi. Acest lucru ar trebui minimizat ideal prin reducerea ratei de învățare (de exemplu, spre sfârșitul antrenamentului, ajustăm valorile din Q-Table doar cu o valoare mică).
+
+În general, este important să ne amintim că succesul și calitatea procesului de învățare depind semnificativ de parametri, cum ar fi rata de învățare, reducerea ratei de învățare și factorul de discount. Aceștia sunt adesea numiți **hiperparametri**, pentru a-i distinge de **parametri**, pe care îi optimizăm în timpul antrenamentului (de exemplu, coeficienții din Q-Table). Procesul de găsire a celor mai bune valori pentru hiperparametri se numește **optimizarea hiperparametrilor** și merită o discuție separată.
+
+## [Test de verificare post-lectură](https://ff-quizzes.netlify.app/en/ml/)
+
+## Temă
+[O lume mai realistă](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/1-QLearning/assignment.md b/translations/ro/8-Reinforcement/1-QLearning/assignment.md
new file mode 100644
index 00000000..94dbbd2b
--- /dev/null
+++ b/translations/ro/8-Reinforcement/1-QLearning/assignment.md
@@ -0,0 +1,41 @@
+
+# O Lume Mai Realistă
+
+În situația noastră, Peter a putut să se deplaseze aproape fără să obosească sau să îi fie foame. Într-o lume mai realistă, el trebuie să se așeze și să se odihnească din când în când, și de asemenea să se hrănească. Hai să facem lumea noastră mai realistă, implementând următoarele reguli:
+
+1. Prin deplasarea dintr-un loc în altul, Peter pierde **energie** și acumulează **oboseală**.
+2. Peter poate câștiga mai multă energie mâncând mere.
+3. Peter poate scăpa de oboseală odihnindu-se sub copac sau pe iarbă (adică mergând într-o locație de pe tablă care are un copac sau iarbă - câmp verde).
+4. Peter trebuie să găsească și să omoare lupul.
+5. Pentru a omorî lupul, Peter trebuie să aibă anumite niveluri de energie și oboseală, altfel pierde lupta.
+
+## Instrucțiuni
+
+Folosește notebook-ul original [notebook.ipynb](../../../../8-Reinforcement/1-QLearning/notebook.ipynb) ca punct de plecare pentru soluția ta.
+
+Modifică funcția de recompensă de mai sus conform regulilor jocului, rulează algoritmul de învățare prin întărire pentru a învăța cea mai bună strategie de câștig al jocului și compară rezultatele plimbării aleatorii cu algoritmul tău în termeni de număr de jocuri câștigate și pierdute.
+
+> **Note**: În noua ta lume, starea este mai complexă și, pe lângă poziția umană, include și nivelurile de oboseală și energie. Poți alege să reprezinți starea ca un tuplu (Board, energie, oboseală), să definești o clasă pentru stare (poți de asemenea să o derivezi din `Board`), sau chiar să modifici clasa originală `Board` din [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py).
+
+În soluția ta, te rog să păstrezi codul responsabil pentru strategia de plimbare aleatorie și să compari rezultatele algoritmului tău cu plimbarea aleatorie la final.
+
+> **Note**: Este posibil să fie nevoie să ajustezi hiperparametrii pentru ca algoritmul să funcționeze, în special numărul de epoci. Deoarece succesul jocului (lupta cu lupul) este un eveniment rar, te poți aștepta la un timp de antrenament mult mai lung.
+
+## Criterii de Evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită Îmbunătățiri |
+| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| | Un notebook este prezentat cu definirea noilor reguli ale lumii, algoritmul Q-Learning și câteva explicații textuale. Q-Learning reușește să îmbunătățească semnificativ rezultatele comparativ cu plimbarea aleatorie. | Notebook-ul este prezentat, Q-Learning este implementat și îmbunătățește rezultatele comparativ cu plimbarea aleatorie, dar nu semnificativ; sau notebook-ul este slab documentat și codul nu este bine structurat. | Se fac unele încercări de a redefini regulile lumii, dar algoritmul Q-Learning nu funcționează sau funcția de recompensă nu este complet definită. |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/1-QLearning/solution/Julia/README.md b/translations/ro/8-Reinforcement/1-QLearning/solution/Julia/README.md
new file mode 100644
index 00000000..43e780c7
--- /dev/null
+++ b/translations/ro/8-Reinforcement/1-QLearning/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/1-QLearning/solution/R/README.md b/translations/ro/8-Reinforcement/1-QLearning/solution/R/README.md
new file mode 100644
index 00000000..245e7440
--- /dev/null
+++ b/translations/ro/8-Reinforcement/1-QLearning/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/2-Gym/README.md b/translations/ro/8-Reinforcement/2-Gym/README.md
new file mode 100644
index 00000000..5ccd3ad7
--- /dev/null
+++ b/translations/ro/8-Reinforcement/2-Gym/README.md
@@ -0,0 +1,333 @@
+
+## Cerințe preliminare
+
+În această lecție, vom folosi o bibliotecă numită **OpenAI Gym** pentru a simula diferite **medii**. Poți rula codul lecției local (de exemplu, din Visual Studio Code), caz în care simularea se va deschide într-o fereastră nouă. Dacă rulezi codul online, poate fi necesar să faci unele ajustări, așa cum este descris [aici](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7).
+
+## OpenAI Gym
+
+În lecția anterioară, regulile jocului și starea erau definite de clasa `Board`, pe care am creat-o noi. Aici vom folosi un **mediu de simulare** special, care va simula fizica din spatele balansării unui stâlp. Unul dintre cele mai populare medii de simulare pentru antrenarea algoritmilor de învățare prin întărire se numește [Gym](https://gym.openai.com/), care este întreținut de [OpenAI](https://openai.com/). Folosind acest Gym, putem crea diverse **medii**, de la simulări de tip cartpole până la jocuri Atari.
+
+> **Notă**: Poți vedea alte medii disponibile în OpenAI Gym [aici](https://gym.openai.com/envs/#classic_control).
+
+Mai întâi, să instalăm Gym și să importăm bibliotecile necesare (bloc de cod 1):
+
+```python
+import sys
+!{sys.executable} -m pip install gym
+
+import gym
+import matplotlib.pyplot as plt
+import numpy as np
+import random
+```
+
+## Exercițiu - inițializează un mediu cartpole
+
+Pentru a lucra cu problema balansării cartpole, trebuie să inițializăm mediul corespunzător. Fiecare mediu este asociat cu:
+
+- **Spațiul de observație**, care definește structura informațiilor pe care le primim de la mediu. Pentru problema cartpole, primim poziția stâlpului, viteza și alte valori.
+
+- **Spațiul de acțiune**, care definește acțiunile posibile. În cazul nostru, spațiul de acțiune este discret și constă din două acțiuni - **stânga** și **dreapta**. (bloc de cod 2)
+
+1. Pentru a inițializa, tastează următorul cod:
+
+ ```python
+ env = gym.make("CartPole-v1")
+ print(env.action_space)
+ print(env.observation_space)
+ print(env.action_space.sample())
+ ```
+
+Pentru a vedea cum funcționează mediul, să rulăm o simulare scurtă de 100 de pași. La fiecare pas, oferim una dintre acțiunile care trebuie luate - în această simulare selectăm aleatoriu o acțiune din `action_space`.
+
+1. Rulează codul de mai jos și vezi ce rezultă.
+
+ ✅ Amintește-ți că este preferabil să rulezi acest cod pe o instalare locală de Python! (bloc de cod 3)
+
+ ```python
+ env.reset()
+
+ for i in range(100):
+ env.render()
+ env.step(env.action_space.sample())
+ env.close()
+ ```
+
+ Ar trebui să vezi ceva similar cu această imagine:
+
+ 
+
+1. În timpul simulării, trebuie să obținem observații pentru a decide cum să acționăm. De fapt, funcția step returnează observațiile curente, o funcție de recompensă și un indicator `done` care arată dacă are sens să continuăm simularea sau nu: (bloc de cod 4)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ print(f"{obs} -> {rew}")
+ env.close()
+ ```
+
+ Vei vedea ceva asemănător în output-ul notebook-ului:
+
+ ```text
+ [ 0.03403272 -0.24301182 0.02669811 0.2895829 ] -> 1.0
+ [ 0.02917248 -0.04828055 0.03248977 0.00543839] -> 1.0
+ [ 0.02820687 0.14636075 0.03259854 -0.27681916] -> 1.0
+ [ 0.03113408 0.34100283 0.02706215 -0.55904489] -> 1.0
+ [ 0.03795414 0.53573468 0.01588125 -0.84308041] -> 1.0
+ ...
+ [ 0.17299878 0.15868546 -0.20754175 -0.55975453] -> 1.0
+ [ 0.17617249 0.35602306 -0.21873684 -0.90998894] -> 1.0
+ ```
+
+ Vectorul de observație returnat la fiecare pas al simulării conține următoarele valori:
+ - Poziția căruciorului
+ - Viteza căruciorului
+ - Unghiul stâlpului
+ - Rata de rotație a stâlpului
+
+1. Obține valoarea minimă și maximă a acestor numere: (bloc de cod 5)
+
+ ```python
+ print(env.observation_space.low)
+ print(env.observation_space.high)
+ ```
+
+ De asemenea, vei observa că valoarea recompensei la fiecare pas al simulării este întotdeauna 1. Acest lucru se datorează faptului că scopul nostru este să supraviețuim cât mai mult timp posibil, adică să menținem stâlpul într-o poziție rezonabil verticală pentru cea mai lungă perioadă de timp.
+
+ ✅ De fapt, simularea CartPole este considerată rezolvată dacă reușim să obținem o recompensă medie de 195 pe parcursul a 100 de încercări consecutive.
+
+## Discretizarea stării
+
+În Q-Learning, trebuie să construim un Q-Table care definește ce să facem în fiecare stare. Pentru a face acest lucru, starea trebuie să fie **discretă**, mai precis, trebuie să conțină un număr finit de valori discrete. Astfel, trebuie să **discretizăm** cumva observațiile, mapându-le la un set finit de stări.
+
+Există câteva moduri în care putem face acest lucru:
+
+- **Împărțirea în intervale**. Dacă știm intervalul unei anumite valori, putem împărți acest interval în mai multe **intervale** și apoi să înlocuim valoarea cu numărul intervalului căruia îi aparține. Acest lucru poate fi realizat folosind metoda [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html) din numpy. În acest caz, vom ști exact dimensiunea stării, deoarece va depinde de numărul de intervale pe care le selectăm pentru digitalizare.
+
+✅ Putem folosi interpolarea liniară pentru a aduce valorile la un interval finit (de exemplu, de la -20 la 20) și apoi să convertim numerele în întregi prin rotunjire. Acest lucru ne oferă un control mai redus asupra dimensiunii stării, mai ales dacă nu cunoaștem intervalele exacte ale valorilor de intrare. De exemplu, în cazul nostru, 2 din cele 4 valori nu au limite superioare/inferioare, ceea ce poate duce la un număr infinit de stări.
+
+În exemplul nostru, vom folosi a doua abordare. După cum vei observa mai târziu, în ciuda lipsei limitelor superioare/inferioare, aceste valori rareori iau valori în afara unor intervale finite, astfel încât stările cu valori extreme vor fi foarte rare.
+
+1. Iată funcția care va lua observația din modelul nostru și va produce un tuplu de 4 valori întregi: (bloc de cod 6)
+
+ ```python
+ def discretize(x):
+ return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int))
+ ```
+
+1. Să explorăm și o altă metodă de discretizare folosind intervale: (bloc de cod 7)
+
+ ```python
+ def create_bins(i,num):
+ return np.arange(num+1)*(i[1]-i[0])/num+i[0]
+
+ print("Sample bins for interval (-5,5) with 10 bins\n",create_bins((-5,5),10))
+
+ ints = [(-5,5),(-2,2),(-0.5,0.5),(-2,2)] # intervals of values for each parameter
+ nbins = [20,20,10,10] # number of bins for each parameter
+ bins = [create_bins(ints[i],nbins[i]) for i in range(4)]
+
+ def discretize_bins(x):
+ return tuple(np.digitize(x[i],bins[i]) for i in range(4))
+ ```
+
+1. Acum să rulăm o simulare scurtă și să observăm aceste valori discrete ale mediului. Simte-te liber să încerci atât `discretize`, cât și `discretize_bins` și să vezi dacă există vreo diferență.
+
+ ✅ `discretize_bins` returnează numărul intervalului, care începe de la 0. Astfel, pentru valorile variabilei de intrare în jurul valorii 0, returnează numărul din mijlocul intervalului (10). În `discretize`, nu ne-am preocupat de intervalul valorilor de ieșire, permițându-le să fie negative, astfel încât valorile stării nu sunt deplasate, iar 0 corespunde lui 0. (bloc de cod 8)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ #env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ #print(discretize_bins(obs))
+ print(discretize(obs))
+ env.close()
+ ```
+
+ ✅ Debifează linia care începe cu `env.render` dacă vrei să vezi cum se execută mediul. În caz contrar, poți să-l execuți în fundal, ceea ce este mai rapid. Vom folosi această execuție "invizibilă" în timpul procesului de Q-Learning.
+
+## Structura Q-Table
+
+În lecția anterioară, starea era un simplu pereche de numere de la 0 la 8, și astfel era convenabil să reprezentăm Q-Table printr-un tensor numpy cu o formă de 8x8x2. Dacă folosim discretizarea prin intervale, dimensiunea vectorului de stare este de asemenea cunoscută, astfel încât putem folosi aceeași abordare și să reprezentăm starea printr-un array cu forma 20x20x10x10x2 (aici 2 este dimensiunea spațiului de acțiune, iar primele dimensiuni corespund numărului de intervale pe care le-am selectat pentru fiecare dintre parametrii din spațiul de observație).
+
+Totuși, uneori dimensiunile precise ale spațiului de observație nu sunt cunoscute. În cazul funcției `discretize`, nu putem fi niciodată siguri că starea rămâne în anumite limite, deoarece unele dintre valorile originale nu sunt limitate. Astfel, vom folosi o abordare ușor diferită și vom reprezenta Q-Table printr-un dicționar.
+
+1. Folosește perechea *(state,action)* ca cheie a dicționarului, iar valoarea ar corespunde valorii din Q-Table. (bloc de cod 9)
+
+ ```python
+ Q = {}
+ actions = (0,1)
+
+ def qvalues(state):
+ return [Q.get((state,a),0) for a in actions]
+ ```
+
+ Aici definim și o funcție `qvalues()`, care returnează o listă de valori din Q-Table pentru o stare dată, corespunzătoare tuturor acțiunilor posibile. Dacă intrarea nu este prezentă în Q-Table, vom returna 0 ca valoare implicită.
+
+## Să începem Q-Learning
+
+Acum suntem gata să-l învățăm pe Peter să-și mențină echilibrul!
+
+1. Mai întâi, să setăm câțiva hiperparametri: (bloc de cod 10)
+
+ ```python
+ # hyperparameters
+ alpha = 0.3
+ gamma = 0.9
+ epsilon = 0.90
+ ```
+
+ Aici, `alpha` este **rata de învățare**, care definește în ce măsură ar trebui să ajustăm valorile curente din Q-Table la fiecare pas. În lecția anterioară am început cu 1 și apoi am scăzut `alpha` la valori mai mici în timpul antrenamentului. În acest exemplu, îl vom menține constant doar pentru simplitate, iar tu poți experimenta ajustarea valorilor `alpha` mai târziu.
+
+ `gamma` este **factorul de reducere**, care arată în ce măsură ar trebui să prioritizăm recompensa viitoare față de recompensa curentă.
+
+ `epsilon` este **factorul de explorare/exploatare**, care determină dacă ar trebui să preferăm explorarea sau exploatarea. În algoritmul nostru, vom selecta acțiunea următoare conform valorilor din Q-Table în procentul `epsilon` din cazuri, iar în restul cazurilor vom executa o acțiune aleatorie. Acest lucru ne va permite să explorăm zone ale spațiului de căutare pe care nu le-am văzut niciodată.
+
+ ✅ În termeni de echilibrare - alegerea unei acțiuni aleatorii (explorare) ar acționa ca o împingere aleatorie în direcția greșită, iar stâlpul ar trebui să învețe cum să-și recupereze echilibrul din aceste "greșeli".
+
+### Îmbunătățirea algoritmului
+
+Putem face două îmbunătățiri algoritmului nostru din lecția anterioară:
+
+- **Calcularea recompensei cumulative medii**, pe parcursul unui număr de simulări. Vom afișa progresul la fiecare 5000 de iterații și vom calcula media recompensei cumulative pe acea perioadă de timp. Asta înseamnă că, dacă obținem mai mult de 195 de puncte, putem considera problema rezolvată, cu o calitate chiar mai mare decât cea cerută.
+
+- **Calcularea rezultatului cumulativ mediu maxim**, `Qmax`, și vom stoca Q-Table corespunzător acelui rezultat. Când rulezi antrenamentul, vei observa că uneori rezultatul cumulativ mediu începe să scadă, și vrem să păstrăm valorile din Q-Table care corespund celui mai bun model observat în timpul antrenamentului.
+
+1. Colectează toate recompensele cumulative la fiecare simulare în vectorul `rewards` pentru a le reprezenta grafic ulterior. (bloc de cod 11)
+
+ ```python
+ def probs(v,eps=1e-4):
+ v = v-v.min()+eps
+ v = v/v.sum()
+ return v
+
+ Qmax = 0
+ cum_rewards = []
+ rewards = []
+ for epoch in range(100000):
+ obs = env.reset()
+ done = False
+ cum_reward=0
+ # == do the simulation ==
+ while not done:
+ s = discretize(obs)
+ if random.random() Qmax:
+ Qmax = np.average(cum_rewards)
+ Qbest = Q
+ cum_rewards=[]
+ ```
+
+Ce poți observa din aceste rezultate:
+
+- **Aproape de obiectivul nostru**. Suntem foarte aproape de a atinge obiectivul de a obține 195 de recompense cumulative pe parcursul a 100+ rulări consecutive ale simulării, sau poate chiar l-am atins! Chiar dacă obținem numere mai mici, încă nu știm, deoarece calculăm media pe 5000 de rulări, iar doar 100 de rulări sunt necesare conform criteriilor formale.
+
+- **Recompensa începe să scadă**. Uneori recompensa începe să scadă, ceea ce înseamnă că putem "distruge" valorile deja învățate din Q-Table cu cele care fac situația mai rea.
+
+Această observație este mai clar vizibilă dacă reprezentăm grafic progresul antrenamentului.
+
+## Reprezentarea grafică a progresului antrenamentului
+
+În timpul antrenamentului, am colectat valoarea recompensei cumulative la fiecare dintre iterații în vectorul `rewards`. Iată cum arată când o reprezentăm grafic în funcție de numărul de iterații:
+
+```python
+plt.plot(rewards)
+```
+
+
+
+Din acest grafic, nu putem spune nimic, deoarece, datorită naturii procesului de antrenament stochastic, durata sesiunilor de antrenament variază foarte mult. Pentru a înțelege mai bine acest grafic, putem calcula **media mobilă** pe o serie de experimente, să zicem 100. Acest lucru poate fi realizat convenabil folosind `np.convolve`: (bloc de cod 12)
+
+```python
+def running_average(x,window):
+ return np.convolve(x,np.ones(window)/window,mode='valid')
+
+plt.plot(running_average(rewards,100))
+```
+
+
+
+## Variarea hiperparametrilor
+
+Pentru a face învățarea mai stabilă, are sens să ajustăm unii dintre hiperparametrii noștri în timpul antrenamentului. În special:
+
+- **Pentru rata de învățare**, `alpha`, putem începe cu valori apropiate de 1 și apoi să continuăm să scădem parametrul. Cu timpul, vom obține valori bune de probabilitate în Q-Table și, astfel, ar trebui să le ajustăm ușor, fără să le suprascriem complet cu valori noi.
+
+- **Creșterea lui epsilon**. Poate fi util să creștem `epsilon` treptat, pentru a explora mai puțin și a exploata mai mult. Probabil are sens să începem cu o valoare mai mică pentru `epsilon` și să o creștem până aproape de 1.
+> **Sarcina 1**: Joacă-te cu valorile hiperparametrilor și vezi dacă poți obține o recompensă cumulativă mai mare. Ajungi peste 195?
+> **Sarcina 2**: Pentru a rezolva formal problema, trebuie să obții o recompensă medie de 195 pe parcursul a 100 runde consecutive. Măsoară acest lucru în timpul antrenamentului și asigură-te că ai rezolvat problema în mod formal!
+
+## Vizualizarea rezultatului în acțiune
+
+Ar fi interesant să vedem cum se comportă modelul antrenat. Să rulăm simularea și să urmăm aceeași strategie de selecție a acțiunilor ca în timpul antrenamentului, eșantionând conform distribuției de probabilitate din Q-Table: (bloc de cod 13)
+
+```python
+obs = env.reset()
+done = False
+while not done:
+ s = discretize(obs)
+ env.render()
+ v = probs(np.array(qvalues(s)))
+ a = random.choices(actions,weights=v)[0]
+ obs,_,done,_ = env.step(a)
+env.close()
+```
+
+Ar trebui să vezi ceva de genul acesta:
+
+
+
+---
+
+## 🚀Provocare
+
+> **Sarcina 3**: Aici, am folosit copia finală a Q-Table, care poate să nu fie cea mai bună. Amintește-ți că am salvat cea mai performantă Q-Table în variabila `Qbest`! Încearcă același exemplu cu cea mai performantă Q-Table, copiază `Qbest` peste `Q` și vezi dacă observi vreo diferență.
+
+> **Sarcina 4**: Aici nu am selectat cea mai bună acțiune la fiecare pas, ci am eșantionat conform distribuției de probabilitate corespunzătoare. Ar avea mai mult sens să selectăm mereu cea mai bună acțiune, cu cea mai mare valoare din Q-Table? Acest lucru poate fi realizat folosind funcția `np.argmax` pentru a afla numărul acțiunii corespunzătoare celei mai mari valori din Q-Table. Implementează această strategie și vezi dacă îmbunătățește echilibrarea.
+
+## [Quiz post-lectură](https://ff-quizzes.netlify.app/en/ml/)
+
+## Temă
+[Antrenează un Mountain Car](assignment.md)
+
+## Concluzie
+
+Am învățat acum cum să antrenăm agenți pentru a obține rezultate bune doar oferindu-le o funcție de recompensă care definește starea dorită a jocului și oferindu-le oportunitatea de a explora inteligent spațiul de căutare. Am aplicat cu succes algoritmul Q-Learning în cazurile de medii discrete și continue, dar cu acțiuni discrete.
+
+Este important să studiem și situațiile în care starea acțiunii este continuă și când spațiul de observație este mult mai complex, cum ar fi imaginea de pe ecranul unui joc Atari. În astfel de probleme, deseori trebuie să folosim tehnici de învățare automată mai puternice, cum ar fi rețelele neuronale, pentru a obține rezultate bune. Aceste subiecte mai avansate vor fi abordate în cursul nostru viitor de AI avansat.
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/2-Gym/assignment.md b/translations/ro/8-Reinforcement/2-Gym/assignment.md
new file mode 100644
index 00000000..e5151da7
--- /dev/null
+++ b/translations/ro/8-Reinforcement/2-Gym/assignment.md
@@ -0,0 +1,55 @@
+
+# Antrenează Mountain Car
+
+[OpenAI Gym](http://gym.openai.com) a fost conceput astfel încât toate mediile să ofere aceeași API - adică aceleași metode `reset`, `step` și `render`, și aceleași abstracții ale **spațiului de acțiune** și **spațiului de observație**. Astfel, ar trebui să fie posibil să adaptăm aceleași algoritmi de învățare prin întărire la diferite medii cu modificări minime de cod.
+
+## Un Mediu Mountain Car
+
+[Mediul Mountain Car](https://gym.openai.com/envs/MountainCar-v0/) conține o mașină blocată într-o vale:
+
+Scopul este să ieși din vale și să capturezi steagul, efectuând la fiecare pas una dintre următoarele acțiuni:
+
+| Valoare | Semnificație |
+|---|---|
+| 0 | Accelerează spre stânga |
+| 1 | Nu accelerează |
+| 2 | Accelerează spre dreapta |
+
+Principala dificultate a acestei probleme este, totuși, că motorul mașinii nu este suficient de puternic pentru a urca muntele dintr-o singură încercare. Prin urmare, singura modalitate de a reuși este să conduci înainte și înapoi pentru a acumula impuls.
+
+Spațiul de observație constă doar din două valori:
+
+| Nr. | Observație | Min | Max |
+|-----|--------------|-----|-----|
+| 0 | Poziția mașinii | -1.2| 0.6 |
+| 1 | Viteza mașinii | -0.07 | 0.07 |
+
+Sistemul de recompense pentru Mountain Car este destul de complicat:
+
+ * O recompensă de 0 este acordată dacă agentul ajunge la steag (poziția = 0.5) în vârful muntelui.
+ * O recompensă de -1 este acordată dacă poziția agentului este mai mică de 0.5.
+
+Episodul se termină dacă poziția mașinii este mai mare de 0.5 sau dacă lungimea episodului depășește 200.
+## Instrucțiuni
+
+Adaptează algoritmul nostru de învățare prin întărire pentru a rezolva problema Mountain Car. Începe cu codul existent din [notebook.ipynb](../../../../8-Reinforcement/2-Gym/notebook.ipynb), înlocuiește mediul, modifică funcțiile de discretizare a stării și încearcă să faci algoritmul existent să se antreneze cu modificări minime de cod. Optimizează rezultatul ajustând hiperparametrii.
+
+> **Notă**: Ajustarea hiperparametrilor este probabil necesară pentru ca algoritmul să convergă.
+## Criterii de evaluare
+
+| Criteriu | Exemplu | Adecvat | Necesită îmbunătățiri |
+| -------- | --------- | -------- | ----------------- |
+| | Algoritmul Q-Learning este adaptat cu succes din exemplul CartPole, cu modificări minime de cod, și este capabil să rezolve problema capturării steagului în mai puțin de 200 de pași. | Un nou algoritm Q-Learning a fost adoptat de pe Internet, dar este bine documentat; sau algoritmul existent a fost adoptat, dar nu atinge rezultatele dorite | Studentul nu a reușit să adopte cu succes niciun algoritm, dar a făcut pași substanțiali spre soluție (a implementat discretizarea stării, structura de date Q-Table etc.) |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/2-Gym/solution/Julia/README.md b/translations/ro/8-Reinforcement/2-Gym/solution/Julia/README.md
new file mode 100644
index 00000000..3d90eb70
--- /dev/null
+++ b/translations/ro/8-Reinforcement/2-Gym/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/2-Gym/solution/R/README.md b/translations/ro/8-Reinforcement/2-Gym/solution/R/README.md
new file mode 100644
index 00000000..a23cfab3
--- /dev/null
+++ b/translations/ro/8-Reinforcement/2-Gym/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/8-Reinforcement/README.md b/translations/ro/8-Reinforcement/README.md
new file mode 100644
index 00000000..418fbe11
--- /dev/null
+++ b/translations/ro/8-Reinforcement/README.md
@@ -0,0 +1,67 @@
+
+# Introducere în învățarea prin întărire
+
+Învățarea prin întărire, RL, este considerată unul dintre paradigmele de bază ale învățării automate, alături de învățarea supravegheată și cea nesupravegheată. RL se concentrează pe luarea deciziilor: luarea deciziilor corecte sau cel puțin învățarea din ele.
+
+Imaginează-ți că ai un mediu simulat, cum ar fi piața bursieră. Ce se întâmplă dacă impui o anumită reglementare? Are un efect pozitiv sau negativ? Dacă se întâmplă ceva negativ, trebuie să iei acest _întărire negativă_, să înveți din ea și să schimbi direcția. Dacă rezultatul este pozitiv, trebuie să construiești pe baza acestui _întărire pozitivă_.
+
+
+
+> Peter și prietenii săi trebuie să scape de lupul flămând! Imagine de [Jen Looper](https://twitter.com/jenlooper)
+
+## Subiect regional: Peter și Lupul (Rusia)
+
+[Peter și Lupul](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) este o poveste muzicală scrisă de compozitorul rus [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Este povestea unui tânăr pionier, Peter, care se aventurează curajos din casa sa spre poiana din pădure pentru a urmări lupul. În această secțiune, vom antrena algoritmi de învățare automată care îl vor ajuta pe Peter:
+
+- **Să exploreze** zona înconjurătoare și să construiască o hartă optimă de navigare
+- **Să învețe** cum să folosească un skateboard și să își mențină echilibrul pe el, pentru a se deplasa mai rapid.
+
+[](https://www.youtube.com/watch?v=Fmi5zHg4QSM)
+
+> 🎥 Click pe imaginea de mai sus pentru a asculta Peter și Lupul de Prokofiev
+
+## Învățarea prin întărire
+
+În secțiunile anterioare, ai văzut două exemple de probleme de învățare automată:
+
+- **Supravegheată**, unde avem seturi de date care sugerează soluții de exemplu pentru problema pe care dorim să o rezolvăm. [Clasificarea](../4-Classification/README.md) și [regresia](../2-Regression/README.md) sunt sarcini de învățare supravegheată.
+- **Nesupravegheată**, în care nu avem date de antrenament etichetate. Principalul exemplu de învățare nesupravegheată este [Clustering](../5-Clustering/README.md).
+
+În această secțiune, îți vom prezenta un nou tip de problemă de învățare care nu necesită date de antrenament etichetate. Există mai multe tipuri de astfel de probleme:
+
+- **[Învățare semi-supravegheată](https://wikipedia.org/wiki/Semi-supervised_learning)**, unde avem o cantitate mare de date neetichetate care pot fi folosite pentru pre-antrenarea modelului.
+- **[Învățare prin întărire](https://wikipedia.org/wiki/Reinforcement_learning)**, în care un agent învață cum să se comporte prin efectuarea de experimente într-un mediu simulat.
+
+### Exemplu - joc pe calculator
+
+Să presupunem că vrei să înveți un calculator să joace un joc, cum ar fi șahul sau [Super Mario](https://wikipedia.org/wiki/Super_Mario). Pentru ca calculatorul să joace un joc, trebuie să prezică ce mișcare să facă în fiecare dintre stările jocului. Deși acest lucru poate părea o problemă de clasificare, nu este - deoarece nu avem un set de date cu stări și acțiuni corespunzătoare. Deși putem avea unele date, cum ar fi meciuri de șah existente sau înregistrări ale jucătorilor care joacă Super Mario, este probabil ca aceste date să nu acopere suficient de bine un număr mare de stări posibile.
+
+În loc să căutăm date existente despre joc, **Învățarea prin întărire** (RL) se bazează pe ideea de *a face calculatorul să joace* de multe ori și să observe rezultatul. Astfel, pentru a aplica Învățarea prin întărire, avem nevoie de două lucruri:
+
+- **Un mediu** și **un simulator** care ne permit să jucăm un joc de multe ori. Acest simulator ar defini toate regulile jocului, precum și stările și acțiunile posibile.
+
+- **O funcție de recompensă**, care ne-ar spune cât de bine ne-am descurcat în timpul fiecărei mișcări sau joc.
+
+Principala diferență între alte tipuri de învățare automată și RL este că în RL, de obicei, nu știm dacă câștigăm sau pierdem până nu terminăm jocul. Astfel, nu putem spune dacă o anumită mișcare este bună sau nu - primim o recompensă doar la sfârșitul jocului. Iar scopul nostru este să proiectăm algoritmi care să ne permită să antrenăm un model în condiții de incertitudine. Vom învăța despre un algoritm RL numit **Q-learning**.
+
+## Lecții
+
+1. [Introducere în învățarea prin întărire și Q-Learning](1-QLearning/README.md)
+2. [Utilizarea unui mediu de simulare gym](2-Gym/README.md)
+
+## Credite
+
+"Introducere în Învățarea prin Întărire" a fost scrisă cu ♥️ de [Dmitry Soshnikov](http://soshnikov.com)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/9-Real-World/1-Applications/README.md b/translations/ro/9-Real-World/1-Applications/README.md
new file mode 100644
index 00000000..1576b146
--- /dev/null
+++ b/translations/ro/9-Real-World/1-Applications/README.md
@@ -0,0 +1,159 @@
+
+# Postscript: Învățarea automată în lumea reală
+
+
+> Schiță realizată de [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+În acest curriculum, ai învățat multe moduri de a pregăti datele pentru antrenare și de a crea modele de învățare automată. Ai construit o serie de modele clasice de regresie, clustering, clasificare, procesare a limbajului natural și modele de serii temporale. Felicitări! Acum, probabil te întrebi care este scopul tuturor acestor lucruri... care sunt aplicațiile reale ale acestor modele?
+
+Deși interesul din industrie s-a concentrat mult pe AI, care de obicei utilizează învățarea profundă, există încă aplicații valoroase pentru modelele clasice de învățare automată. Este posibil să folosești unele dintre aceste aplicații chiar astăzi! În această lecție, vei explora cum opt industrii și domenii de specialitate diferite utilizează aceste tipuri de modele pentru a face aplicațiile lor mai performante, fiabile, inteligente și valoroase pentru utilizatori.
+
+## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+## 💰 Finanțe
+
+Sectorul financiar oferă multe oportunități pentru învățarea automată. Multe probleme din acest domeniu pot fi modelate și rezolvate folosind ML.
+
+### Detectarea fraudei cu carduri de credit
+
+Am învățat despre [clustering k-means](../../5-Clustering/2-K-Means/README.md) mai devreme în curs, dar cum poate fi utilizat pentru a rezolva probleme legate de frauda cu carduri de credit?
+
+Clustering-ul k-means este util într-o tehnică de detectare a fraudei cu carduri de credit numită **detectarea anomaliilor**. Anomaliile, sau deviațiile în observațiile despre un set de date, ne pot spune dacă un card de credit este utilizat în mod normal sau dacă se întâmplă ceva neobișnuit. Așa cum este prezentat în articolul legat mai jos, poți sorta datele despre carduri de credit folosind un algoritm de clustering k-means și poți atribui fiecare tranzacție unui cluster pe baza gradului de anomalie. Apoi, poți evalua cele mai riscante clustere pentru a determina tranzacțiile frauduloase versus cele legitime.
+[Referință](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.680.1195&rep=rep1&type=pdf)
+
+### Managementul averii
+
+În managementul averii, o persoană sau o firmă gestionează investițiile în numele clienților lor. Scopul lor este de a menține și de a crește averea pe termen lung, așa că este esențial să aleagă investiții care performează bine.
+
+Un mod de a evalua performanța unei investiții este prin regresie statistică. [Regresia liniară](../../2-Regression/1-Tools/README.md) este un instrument valoros pentru a înțelege cum performează un fond în raport cu un anumit etalon. De asemenea, putem deduce dacă rezultatele regresiei sunt semnificative din punct de vedere statistic sau cât de mult ar afecta investițiile unui client. Poți extinde analiza folosind regresia multiplă, unde pot fi luate în considerare factori de risc suplimentari. Pentru un exemplu despre cum ar funcționa acest lucru pentru un fond specific, consultă articolul de mai jos despre evaluarea performanței fondurilor folosind regresia.
+[Referință](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/)
+
+## 🎓 Educație
+
+Sectorul educațional este, de asemenea, un domeniu foarte interesant unde ML poate fi aplicat. Există probleme interesante de abordat, cum ar fi detectarea trișatului la teste sau eseuri sau gestionarea prejudecăților, intenționate sau nu, în procesul de corectare.
+
+### Prezicerea comportamentului studenților
+
+[Coursera](https://coursera.com), un furnizor de cursuri online deschise, are un blog tehnologic excelent unde discută multe decizii de inginerie. În acest studiu de caz, au trasat o linie de regresie pentru a încerca să exploreze orice corelație între un rating NPS (Net Promoter Score) scăzut și retenția sau abandonul cursurilor.
+[Referință](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a)
+
+### Reducerea prejudecăților
+
+[Grammarly](https://grammarly.com), un asistent de scriere care verifică erorile de ortografie și gramatică, utilizează sisteme sofisticate de [procesare a limbajului natural](../../6-NLP/README.md) în produsele sale. Au publicat un studiu de caz interesant pe blogul lor tehnologic despre cum au abordat problema prejudecăților de gen în învățarea automată, pe care ai învățat-o în [lecția introductivă despre echitate](../../1-Introduction/3-fairness/README.md).
+[Referință](https://www.grammarly.com/blog/engineering/mitigating-gender-bias-in-autocorrect/)
+
+## 👜 Retail
+
+Sectorul retail poate beneficia cu siguranță de utilizarea ML, de la crearea unei experiențe mai bune pentru clienți până la gestionarea optimă a stocurilor.
+
+### Personalizarea experienței clienților
+
+La Wayfair, o companie care vinde produse pentru casă, cum ar fi mobilier, ajutarea clienților să găsească produsele potrivite pentru gusturile și nevoile lor este esențială. În acest articol, inginerii companiei descriu cum folosesc ML și NLP pentru a "oferi rezultate relevante pentru clienți". În mod special, motorul lor de intenție a interogării a fost construit pentru a utiliza extragerea entităților, antrenarea clasificatorilor, extragerea opiniilor și etichetarea sentimentelor din recenziile clienților. Acesta este un caz clasic de utilizare a NLP în retailul online.
+[Referință](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search)
+
+### Gestionarea stocurilor
+
+Companii inovatoare și agile precum [StitchFix](https://stitchfix.com), un serviciu de livrare de haine, se bazează foarte mult pe ML pentru recomandări și gestionarea stocurilor. Echipele lor de stilizare colaborează cu echipele de merchandising: "unul dintre oamenii noștri de știința datelor a experimentat cu un algoritm genetic și l-a aplicat la îmbrăcăminte pentru a prezice ce ar fi un articol de succes care nu există încă. Am prezentat acest lucru echipei de merchandising, iar acum pot folosi acest lucru ca instrument."
+[Referință](https://www.zdnet.com/article/how-stitch-fix-uses-machine-learning-to-master-the-science-of-styling/)
+
+## 🏥 Sănătate
+
+Sectorul sănătății poate utiliza ML pentru a optimiza sarcinile de cercetare și problemele logistice, cum ar fi readmiterea pacienților sau oprirea răspândirii bolilor.
+
+### Gestionarea studiilor clinice
+
+Toxicitatea în studiile clinice este o preocupare majoră pentru producătorii de medicamente. Cât de multă toxicitate este tolerabilă? În acest studiu, analizarea diferitelor metode de studii clinice a dus la dezvoltarea unei noi abordări pentru prezicerea șanselor de rezultate ale studiilor clinice. În mod specific, au reușit să utilizeze random forest pentru a produce un [clasificator](../../4-Classification/README.md) capabil să distingă între grupuri de medicamente.
+[Referință](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
+
+### Gestionarea readmiterii în spitale
+
+Îngrijirea spitalicească este costisitoare, mai ales când pacienții trebuie să fie readmiși. Acest articol discută despre o companie care folosește ML pentru a prezice potențialul de readmitere folosind algoritmi de [clustering](../../5-Clustering/README.md). Aceste clustere ajută analiștii să "descopere grupuri de readmiteri care pot avea o cauză comună".
+[Referință](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning)
+
+### Gestionarea bolilor
+
+Pandemia recentă a evidențiat modul în care învățarea automată poate ajuta la oprirea răspândirii bolilor. În acest articol, vei recunoaște utilizarea ARIMA, curbelor logistice, regresiei liniare și SARIMA. "Această lucrare este o încercare de a calcula rata de răspândire a acestui virus și, astfel, de a prezice decesele, recuperările și cazurile confirmate, astfel încât să ne ajute să ne pregătim mai bine și să supraviețuim."
+[Referință](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/)
+
+## 🌲 Ecologie și Tehnologie Verde
+
+Natura și ecologia constau în multe sisteme sensibile unde interacțiunea dintre animale și natură devine importantă. Este esențial să putem măsura aceste sisteme cu acuratețe și să acționăm corespunzător dacă se întâmplă ceva, cum ar fi un incendiu de pădure sau o scădere a populației de animale.
+
+### Gestionarea pădurilor
+
+Ai învățat despre [Învățarea prin Recompensă](../../8-Reinforcement/README.md) în lecțiile anterioare. Poate fi foarte utilă atunci când încercăm să prezicem modele în natură. În special, poate fi utilizată pentru a urmări probleme ecologice precum incendiile de pădure și răspândirea speciilor invazive. În Canada, un grup de cercetători a folosit Învățarea prin Recompensă pentru a construi modele de dinamică a incendiilor de pădure din imagini satelitare. Folosind un proces inovator de "răspândire spațială (SSP)", au imaginat un incendiu de pădure ca "agentul de la orice celulă din peisaj." "Setul de acțiuni pe care incendiul le poate lua dintr-o locație la orice moment include răspândirea spre nord, sud, est sau vest sau să nu se răspândească."
+
+Această abordare inversează configurația obișnuită a RL, deoarece dinamica Procesului de Decizie Markovian (MDP) corespunzător este o funcție cunoscută pentru răspândirea imediată a incendiului. Citește mai multe despre algoritmii clasici utilizați de acest grup la linkul de mai jos.
+[Referință](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full)
+
+### Senzori de mișcare pentru animale
+
+Deși învățarea profundă a creat o revoluție în urmărirea vizuală a mișcărilor animalelor (poți construi propriul [tracker pentru urși polari](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) aici), ML clasic are încă un loc în această sarcină.
+
+Senzorii pentru urmărirea mișcărilor animalelor de fermă și IoT utilizează acest tip de procesare vizuală, dar tehnicile ML mai de bază sunt utile pentru preprocesarea datelor. De exemplu, în acest articol, posturile oilor au fost monitorizate și analizate folosind diferiți algoritmi de clasificare. Poți recunoaște curba ROC la pagina 335.
+[Referință](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf)
+
+### ⚡️ Gestionarea energiei
+
+În lecțiile noastre despre [previziunea seriilor temporale](../../7-TimeSeries/README.md), am invocat conceptul de parcometre inteligente pentru a genera venituri pentru un oraș pe baza înțelegerii cererii și ofertei. Acest articol discută în detaliu cum clustering-ul, regresia și previziunea seriilor temporale au fost combinate pentru a ajuta la prezicerea utilizării viitoare a energiei în Irlanda, pe baza contorizării inteligente.
+[Referință](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf)
+
+## 💼 Asigurări
+
+Sectorul asigurărilor este un alt domeniu care utilizează ML pentru a construi și optimiza modele financiare și actuariale viabile.
+
+### Gestionarea volatilității
+
+MetLife, un furnizor de asigurări de viață, este transparent în modul în care analizează și atenuează volatilitatea în modelele lor financiare. În acest articol vei observa vizualizări de clasificare binară și ordinale. De asemenea, vei descoperi vizualizări de previziune.
+[Referință](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf)
+
+## 🎨 Arte, Cultură și Literatură
+
+În arte, de exemplu în jurnalism, există multe probleme interesante. Detectarea știrilor false este o problemă majoră, deoarece s-a demonstrat că influențează opinia oamenilor și chiar poate destabiliza democrațiile. Muzeele pot beneficia, de asemenea, de utilizarea ML în tot, de la găsirea legăturilor între artefacte până la planificarea resurselor.
+
+### Detectarea știrilor false
+
+Detectarea știrilor false a devenit un joc de-a șoarecele și pisica în media de astăzi. În acest articol, cercetătorii sugerează că un sistem care combină mai multe dintre tehnicile ML pe care le-am studiat poate fi testat, iar cel mai bun model implementat: "Acest sistem se bazează pe procesarea limbajului natural pentru a extrage caracteristici din date, iar apoi aceste caracteristici sunt utilizate pentru antrenarea clasificatorilor de învățare automată, cum ar fi Naive Bayes, Support Vector Machine (SVM), Random Forest (RF), Stochastic Gradient Descent (SGD) și Logistic Regression (LR)."
+[Referință](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf)
+
+Acest articol arată cum combinarea diferitelor domenii ML poate produce rezultate interesante care pot ajuta la oprirea răspândirii știrilor false și la prevenirea daunelor reale; în acest caz, impulsul a fost răspândirea zvonurilor despre tratamentele COVID care au incitat violență în masă.
+
+### ML în muzee
+
+Muzeele sunt pe punctul de a intra într-o revoluție AI, în care catalogarea și digitizarea colecțiilor și găsirea legăturilor între artefacte devin mai ușoare pe măsură ce tehnologia avansează. Proiecte precum [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources.) ajută la descifrarea misterelor colecțiilor inaccesibile, cum ar fi Arhivele Vaticanului. Dar aspectul de afaceri al muzeelor beneficiază, de asemenea, de modelele ML.
+
+De exemplu, Institutul de Artă din Chicago a construit modele pentru a prezice ce interesează publicul și când vor participa la expoziții. Scopul este de a crea experiențe individualizate și optimizate pentru vizitatori de fiecare dată când aceștia vizitează muzeul. "În anul fiscal 2017, modelul a prezis participarea și veniturile din bilete cu o precizie de 1%, spune Andrew Simnick, vicepreședinte senior la Institutul de Artă."
+[Referință](https://www.chicagobusiness.com/article/20180518/ISSUE01/180519840/art-institute-of-chicago-uses-data-to-make-exhibit-choices)
+
+## 🏷 Marketing
+
+### Segmentarea clienților
+
+Cele mai eficiente strategii de marketing vizează clienții în moduri diferite pe baza diverselor grupări. În acest articol, utilizările algoritmilor de clustering sunt discutate pentru a sprijini marketingul diferențiat. Marketingul diferențiat ajută companiile să îmbunătățească recunoașterea brandului, să ajungă la mai mulți clienți și să câștige mai mulți bani.
+[Referință](https://ai.inqline.com/machine-learning-for-marketing-customer-segmentation/)
+
+## 🚀 Provocare
+
+Identifică un alt sector care beneficiază de unele dintre tehnicile pe care le-ai învățat în acest curriculum și descoperă cum utilizează ML.
+## [Chestionar post-lectură](https://ff-quizzes.netlify.app/en/ml/)
+
+## Recapitulare și Studiu Individual
+
+Echipa de știință a datelor de la Wayfair are câteva videoclipuri interesante despre cum folosesc ML în compania lor. Merită [să arunci o privire](https://www.youtube.com/channel/UCe2PjkQXqOuwkW1gw6Ameuw/videos)!
+
+## Temă
+
+[O vânătoare de comori ML](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/9-Real-World/1-Applications/assignment.md b/translations/ro/9-Real-World/1-Applications/assignment.md
new file mode 100644
index 00000000..086d03a4
--- /dev/null
+++ b/translations/ro/9-Real-World/1-Applications/assignment.md
@@ -0,0 +1,27 @@
+
+# O vânătoare de comori ML
+
+## Instrucțiuni
+
+În această lecție, ai învățat despre multe cazuri de utilizare din viața reală care au fost rezolvate folosind ML clasic. Deși utilizarea învățării profunde, a noilor tehnici și instrumente din AI și valorificarea rețelelor neuronale au ajutat la accelerarea producției de instrumente pentru a ajuta în aceste sectoare, ML clasic folosind tehnicile din acest curriculum încă are o valoare semnificativă.
+
+În această temă, imaginează-ți că participi la un hackathon. Folosește ceea ce ai învățat în curriculum pentru a propune o soluție folosind ML clasic pentru a rezolva o problemă într-unul dintre sectoarele discutate în această lecție. Creează o prezentare în care discuți cum vei implementa ideea ta. Puncte bonus dacă poți aduna date de probă și construi un model ML pentru a susține conceptul tău!
+
+## Criterii de evaluare
+
+| Criteriu | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | ------------------------------------------------------------------- | ------------------------------------------------- | ---------------------- |
+| | Se prezintă o prezentare PowerPoint - bonus pentru construirea unui model | Se prezintă o prezentare de bază, ne-inovatoare | Lucrarea este incompletă |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/9-Real-World/2-Debugging-ML-Models/README.md b/translations/ro/9-Real-World/2-Debugging-ML-Models/README.md
new file mode 100644
index 00000000..26f685b1
--- /dev/null
+++ b/translations/ro/9-Real-World/2-Debugging-ML-Models/README.md
@@ -0,0 +1,167 @@
+
+# Postscript: Debuggarea modelelor de învățare automată folosind componentele tabloului de bord AI responsabil
+
+
+## [Chestionar înainte de curs](https://ff-quizzes.netlify.app/en/ml/)
+
+## Introducere
+
+Învățarea automată influențează viețile noastre de zi cu zi. Inteligența artificială (AI) își face loc în unele dintre cele mai importante sisteme care ne afectează atât ca indivizi, cât și ca societate, de la sănătate, finanțe, educație și ocuparea forței de muncă. De exemplu, sistemele și modelele sunt implicate în sarcini zilnice de luare a deciziilor, cum ar fi diagnosticarea în domeniul sănătății sau detectarea fraudei. Drept urmare, progresele în AI, împreună cu adoptarea accelerată, sunt întâmpinate cu așteptări sociale în continuă evoluție și reglementări tot mai stricte. Vedem constant domenii în care sistemele AI continuă să nu îndeplinească așteptările; acestea expun noi provocări, iar guvernele încep să reglementeze soluțiile AI. Prin urmare, este important ca aceste modele să fie analizate pentru a oferi rezultate echitabile, fiabile, incluzive, transparente și responsabile pentru toată lumea.
+
+În acest curs, vom analiza instrumente practice care pot fi utilizate pentru a evalua dacă un model are probleme legate de AI responsabil. Tehnicile tradiționale de debugare a învățării automate tind să se bazeze pe calcule cantitative, cum ar fi acuratețea agregată sau pierderea medie a erorilor. Imaginați-vă ce se poate întâmpla atunci când datele pe care le utilizați pentru a construi aceste modele lipsesc anumite demografii, cum ar fi rasa, genul, viziunea politică, religia sau reprezintă disproporționat astfel de demografii. Ce se întâmplă atunci când rezultatul modelului este interpretat ca favorizând o anumită demografie? Acest lucru poate introduce o supra-reprezentare sau o sub-reprezentare a acestor grupuri sensibile de caracteristici, rezultând probleme de echitate, incluziune sau fiabilitate ale modelului. Un alt factor este că modelele de învățare automată sunt considerate „cutii negre”, ceea ce face dificilă înțelegerea și explicarea factorilor care determină predicțiile unui model. Toate acestea sunt provocări cu care se confruntă oamenii de știință în date și dezvoltatorii AI atunci când nu dispun de instrumente adecvate pentru a depana și evalua echitatea sau încrederea unui model.
+
+În această lecție, veți învăța cum să depanați modelele utilizând:
+
+- **Analiza erorilor**: identificarea zonelor din distribuția datelor unde modelul are rate mari de eroare.
+- **Prezentarea generală a modelului**: realizarea unei analize comparative între diferite cohorte de date pentru a descoperi disparități în metricele de performanță ale modelului.
+- **Analiza datelor**: investigarea zonelor în care ar putea exista o supra-reprezentare sau o sub-reprezentare a datelor care pot înclina modelul să favorizeze o demografie în detrimentul alteia.
+- **Importanța caracteristicilor**: înțelegerea caracteristicilor care determină predicțiile modelului la nivel global sau local.
+
+## Cerințe preliminare
+
+Ca cerință preliminară, vă rugăm să consultați [Instrumentele AI responsabile pentru dezvoltatori](https://www.microsoft.com/ai/ai-lab-responsible-ai-dashboard)
+
+> 
+
+## Analiza erorilor
+
+Metricile tradiționale de performanță ale modelului utilizate pentru măsurarea acurateței sunt în mare parte calcule bazate pe predicții corecte vs incorecte. De exemplu, determinarea faptului că un model este precis în 89% din cazuri, cu o pierdere a erorii de 0,001, poate fi considerată o performanță bună. Totuși, erorile nu sunt distribuite uniform în setul de date de bază. Puteți obține un scor de acuratețe de 89% pentru model, dar să descoperiți că există regiuni diferite ale datelor pentru care modelul eșuează în 42% din cazuri. Consecința acestor tipare de eșec pentru anumite grupuri de date poate duce la probleme de echitate sau fiabilitate. Este esențial să înțelegeți zonele în care modelul funcționează bine sau nu. Regiunile de date în care există un număr mare de inexactități ale modelului pot fi o demografie importantă a datelor.
+
+
+
+Componenta de Analiză a Erorilor din tabloul de bord RAI ilustrează modul în care eșecurile modelului sunt distribuite pe diverse cohorte printr-o vizualizare de tip arbore. Acest lucru este util pentru identificarea caracteristicilor sau zonelor în care există o rată mare de eroare în setul de date. Văzând de unde provin cele mai multe inexactități ale modelului, puteți începe să investigați cauza principală. De asemenea, puteți crea cohorte de date pentru a efectua analize. Aceste cohorte de date ajută în procesul de depanare pentru a determina de ce performanța modelului este bună într-o cohortă, dar eronată în alta.
+
+
+
+Indicatorii vizuali de pe harta arborelui ajută la localizarea mai rapidă a zonelor problematice. De exemplu, cu cât o ramură a arborelui are o nuanță mai închisă de roșu, cu atât rata de eroare este mai mare.
+
+Harta termică este o altă funcționalitate de vizualizare pe care utilizatorii o pot folosi pentru a investiga rata de eroare utilizând una sau două caracteristici pentru a găsi un factor care contribuie la erorile modelului pe întregul set de date sau pe cohorte.
+
+
+
+Utilizați analiza erorilor atunci când aveți nevoie să:
+
+* Obțineți o înțelegere profundă a modului în care eșecurile modelului sunt distribuite pe un set de date și pe mai multe dimensiuni de intrare și caracteristici.
+* Descompuneți metricele de performanță agregate pentru a descoperi automat cohorte eronate care să informeze pașii de atenuare țintiți.
+
+## Prezentarea generală a modelului
+
+Evaluarea performanței unui model de învățare automată necesită obținerea unei înțelegeri holistice a comportamentului său. Acest lucru poate fi realizat prin revizuirea mai multor metrici, cum ar fi rata de eroare, acuratețea, recall-ul, precizia sau MAE (Eroarea Absolută Medie), pentru a găsi disparități între metricele de performanță. O metrică de performanță poate arăta bine, dar inexactitățile pot fi expuse într-o altă metrică. În plus, compararea metricelor pentru disparități pe întregul set de date sau pe cohorte ajută la evidențierea zonelor în care modelul funcționează bine sau nu. Acest lucru este deosebit de important pentru a vedea performanța modelului între caracteristici sensibile și nesensibile (de exemplu, rasa, genul sau vârsta pacienților) pentru a descoperi eventuale inechități ale modelului. De exemplu, descoperirea faptului că modelul este mai eronat într-o cohortă care are caracteristici sensibile poate dezvălui o potențială inechitate a modelului.
+
+Componenta Prezentare Generală a Modelului din tabloul de bord RAI ajută nu doar la analizarea metricelor de performanță ale reprezentării datelor într-o cohortă, ci oferă utilizatorilor posibilitatea de a compara comportamentul modelului între diferite cohorte.
+
+
+
+Funcționalitatea de analiză bazată pe caracteristici a componentei permite utilizatorilor să restrângă subgrupurile de date dintr-o anumită caracteristică pentru a identifica anomalii la un nivel granular. De exemplu, tabloul de bord are o inteligență încorporată pentru a genera automat cohorte pentru o caracteristică selectată de utilizator (de exemplu, *"time_in_hospital < 3"* sau *"time_in_hospital >= 7"*). Acest lucru permite utilizatorului să izoleze o anumită caracteristică dintr-un grup mai mare de date pentru a vedea dacă este un factor cheie al rezultatelor eronate ale modelului.
+
+
+
+Componenta Prezentare Generală a Modelului susține două clase de metrici de disparitate:
+
+**Disparitate în performanța modelului**: Aceste seturi de metrici calculează disparitatea (diferența) în valorile metricii de performanță selectate între subgrupurile de date. Iată câteva exemple:
+
+* Disparitate în rata de acuratețe
+* Disparitate în rata de eroare
+* Disparitate în precizie
+* Disparitate în recall
+* Disparitate în eroarea absolută medie (MAE)
+
+**Disparitate în rata de selecție**: Această metrică conține diferența în rata de selecție (predicție favorabilă) între subgrupuri. Un exemplu este disparitatea în ratele de aprobare a împrumuturilor. Rata de selecție înseamnă fracțiunea de puncte de date din fiecare clasă clasificate ca 1 (în clasificarea binară) sau distribuția valorilor predicției (în regresie).
+
+## Analiza datelor
+
+> "Dacă torturezi datele suficient de mult, vor mărturisi orice" - Ronald Coase
+
+Această afirmație sună extrem, dar este adevărat că datele pot fi manipulate pentru a susține orice concluzie. O astfel de manipulare poate apărea uneori neintenționat. Ca oameni, toți avem prejudecăți și este adesea dificil să știm conștient când introduceți prejudecăți în date. Garantarea echității în AI și învățarea automată rămâne o provocare complexă.
+
+Datele reprezintă un punct orb major pentru metricile tradiționale de performanță ale modelului. Puteți avea scoruri mari de acuratețe, dar acest lucru nu reflectă întotdeauna prejudecățile subiacente ale datelor care ar putea exista în setul dvs. de date. De exemplu, dacă un set de date despre angajați are 27% femei în poziții executive într-o companie și 73% bărbați la același nivel, un model AI de publicitate pentru locuri de muncă antrenat pe aceste date poate viza în principal un public masculin pentru poziții de nivel superior. Această dezechilibrare a datelor a înclinat predicția modelului să favorizeze un gen. Acest lucru dezvăluie o problemă de echitate în care există o prejudecată de gen în modelul AI.
+
+Componenta Analiza Datelor din tabloul de bord RAI ajută la identificarea zonelor în care există o supra-reprezentare și o sub-reprezentare în setul de date. Aceasta ajută utilizatorii să diagnosticheze cauza principală a erorilor și a problemelor de echitate introduse de dezechilibrele de date sau de lipsa reprezentării unui anumit grup de date. Aceasta oferă utilizatorilor posibilitatea de a vizualiza seturile de date pe baza rezultatelor prezise și reale, a grupurilor de erori și a caracteristicilor specifice. Uneori, descoperirea unui grup de date subreprezentat poate dezvălui, de asemenea, că modelul nu învață bine, hence inexactitățile ridicate. Un model care are prejudecăți în date nu este doar o problemă de echitate, ci arată că modelul nu este incluziv sau fiabil.
+
+
+
+
+Utilizați analiza datelor atunci când aveți nevoie să:
+
+* Explorați statisticile setului dvs. de date selectând diferiți filtri pentru a împărți datele în dimensiuni diferite (cunoscute și sub numele de cohorte).
+* Înțelegeți distribuția setului dvs. de date pe diferite cohorte și grupuri de caracteristici.
+* Determinați dacă descoperirile dvs. legate de echitate, analiza erorilor și cauzalitate (derivate din alte componente ale tabloului de bord) sunt rezultatul distribuției setului dvs. de date.
+* Decideți în ce zone să colectați mai multe date pentru a atenua erorile care provin din probleme de reprezentare, zgomot de etichetare, zgomot de caracteristici, prejudecăți de etichetare și factori similari.
+
+## Interpretabilitatea modelului
+
+Modelele de învățare automată tind să fie „cutii negre”. Înțelegerea caracteristicilor cheie ale datelor care determină predicția unui model poate fi o provocare. Este important să oferiți transparență cu privire la motivul pentru care un model face o anumită predicție. De exemplu, dacă un sistem AI prezice că un pacient diabetic este expus riscului de a fi readmis într-un spital în mai puțin de 30 de zile, acesta ar trebui să poată oferi datele care au condus la predicția sa. Având indicatori de date de sprijin aduce transparență pentru a ajuta clinicienii sau spitalele să poată lua decizii bine informate. În plus, fiind capabil să explicați de ce un model a făcut o predicție pentru un pacient individual permite responsabilitatea în conformitate cu reglementările din domeniul sănătății. Atunci când utilizați modele de învățare automată în moduri care afectează viețile oamenilor, este crucial să înțelegeți și să explicați ce influențează comportamentul unui model. Explicabilitatea și interpretabilitatea modelului ajută la răspunsul la întrebări în scenarii precum:
+
+* Debugarea modelului: De ce a făcut modelul meu această greșeală? Cum pot îmbunătăți modelul meu?
+* Colaborarea om-AI: Cum pot înțelege și avea încredere în deciziile modelului?
+* Conformitatea cu reglementările: Modelul meu îndeplinește cerințele legale?
+
+Componenta Importanța Caracteristicilor din tabloul de bord RAI vă ajută să depanați și să obțineți o înțelegere cuprinzătoare a modului în care un model face predicții. Este, de asemenea, un instrument util pentru profesioniștii în învățarea automată și factorii de decizie pentru a explica și a arăta dovezi ale caracteristicilor care influențează comportamentul unui model pentru conformitatea cu reglementările. Utilizatorii pot explora atât explicații globale, cât și locale pentru a valida ce caracteristici determină predicția unui model. Explicațiile globale enumeră caracteristicile principale care au afectat predicția generală a unui model. Explicațiile locale afișează ce caracteristici au condus la predicția unui model pentru un caz individual. Capacitatea de a evalua explicațiile locale este, de asemenea, utilă în depanarea sau auditarea unui caz specific pentru a înțelege și interpreta mai bine de ce un model a făcut o predicție corectă sau incorectă.
+
+
+
+* Explicații globale: De exemplu, ce caracteristici afectează comportamentul general al unui model de readmisie în spital pentru diabetici?
+* Explicații locale: De exemplu, de ce un pacient diabetic de peste 60 de ani cu spitalizări anterioare a fost prezis să fie readmis sau nu în termen de 30 de zile într-un spital?
+
+În procesul de depanare a performanței unui model pe diferite cohorte, Importanța Caracteristicilor arată ce nivel de impact are o caracteristică pe cohorte. Aceasta ajută la dezvăluirea anomaliilor atunci când se compară nivelul de influență pe care o caracteristică îl are în determinarea predicțiilor eronate ale modelului. Componenta Importanța Caracteristicilor poate arăta ce valori dintr-o caracteristică au influențat pozitiv sau negativ rezultatul modelului. De exemplu, dacă un model a făcut o predicție inexactă, componenta vă oferă posibilitatea de a detalia și de a identifica ce caracteristici sau valori ale caracteristicilor au condus la predicție. Acest nivel de detaliu ajută nu doar în depanare, ci oferă transparență și responsabilitate în situații de audit. În cele din urmă, componenta vă poate ajuta să identificați problemele de echitate. De exemplu, dacă o caracteristică sensibilă, cum ar fi etnia sau genul, este foarte influ
+- **Reprezentare excesivă sau insuficientă**. Ideea este că un anumit grup nu este vizibil într-o anumită profesie, iar orice serviciu sau funcție care continuă să promoveze acest lucru contribuie la prejudicii.
+
+### Azure RAI dashboard
+
+[Azure RAI dashboard](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) este construit pe instrumente open-source dezvoltate de instituții academice și organizații de top, inclusiv Microsoft, și sunt esențiale pentru ca oamenii de știință în domeniul datelor și dezvoltatorii de AI să înțeleagă mai bine comportamentul modelelor, să descopere și să atenueze problemele nedorite ale modelelor AI.
+
+- Învață cum să folosești diferitele componente consultând [documentația dashboard-ului RAI.](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu)
+
+- Consultă câteva [notebook-uri de exemplu ale dashboard-ului RAI](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) pentru a depana scenarii mai responsabile de AI în Azure Machine Learning.
+
+---
+## 🚀 Provocare
+
+Pentru a preveni introducerea prejudecăților statistice sau de date de la bun început, ar trebui:
+
+- să avem o diversitate de medii și perspective printre persoanele care lucrează la sisteme
+- să investim în seturi de date care reflectă diversitatea societății noastre
+- să dezvoltăm metode mai bune pentru detectarea și corectarea prejudecăților atunci când apar
+
+Gândește-te la scenarii reale în care nedreptatea este evidentă în construirea și utilizarea modelelor. Ce altceva ar trebui să luăm în considerare?
+
+## [Quiz post-lectură](https://ff-quizzes.netlify.app/en/ml/)
+## Recapitulare și Studiu Individual
+
+În această lecție, ai învățat câteva instrumente practice pentru integrarea AI responsabilă în învățarea automată.
+
+Urmărește acest workshop pentru a aprofunda subiectele:
+
+- Responsible AI Dashboard: O soluție completă pentru operaționalizarea RAI în practică, prezentată de Besmira Nushi și Mehrnoosh Sameki
+
+[](https://www.youtube.com/watch?v=f1oaDNl3djg "Responsible AI Dashboard: O soluție completă pentru operaționalizarea RAI în practică")
+
+
+> 🎥 Fă clic pe imaginea de mai sus pentru un videoclip: Responsible AI Dashboard: O soluție completă pentru operaționalizarea RAI în practică, prezentată de Besmira Nushi și Mehrnoosh Sameki
+
+Consultă următoarele materiale pentru a afla mai multe despre AI responsabilă și cum să construiești modele mai de încredere:
+
+- Instrumentele dashboard-ului RAI de la Microsoft pentru depanarea modelelor ML: [Resurse pentru instrumentele AI responsabile](https://aka.ms/rai-dashboard)
+
+- Explorează toolkit-ul AI responsabil: [Github](https://github.com/microsoft/responsible-ai-toolbox)
+
+- Centrul de resurse RAI de la Microsoft: [Resurse AI Responsabile – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Grupul de cercetare FATE de la Microsoft: [FATE: Echitate, Responsabilitate, Transparență și Etică în AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+## Temă
+
+[Explorează dashboard-ul RAI](assignment.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/9-Real-World/2-Debugging-ML-Models/assignment.md b/translations/ro/9-Real-World/2-Debugging-ML-Models/assignment.md
new file mode 100644
index 00000000..094d76f4
--- /dev/null
+++ b/translations/ro/9-Real-World/2-Debugging-ML-Models/assignment.md
@@ -0,0 +1,25 @@
+
+# Explorează tabloul de bord Responsible AI (RAI)
+
+## Instrucțiuni
+
+În această lecție ai învățat despre tabloul de bord RAI, un set de componente bazate pe instrumente "open-source" care ajută oamenii de știință în domeniul datelor să realizeze analiza erorilor, explorarea datelor, evaluarea echității, interpretabilitatea modelelor, evaluări contrafactuale/ce-ar fi dacă și analiza cauzală pentru sistemele de inteligență artificială. Pentru această temă, explorează câteva dintre [notebook-urile](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) de exemplu ale tabloului de bord RAI și raportează concluziile tale într-o lucrare sau prezentare.
+
+## Criterii de evaluare
+
+| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
+| -------- | --------- | -------- | --------------------- |
+| | Este prezentată o lucrare sau o prezentare PowerPoint care discută componentele tabloului de bord RAI, notebook-ul rulat și concluziile trase în urma rulării acestuia | Este prezentată o lucrare fără concluzii | Nu este prezentată nicio lucrare |
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/9-Real-World/README.md b/translations/ro/9-Real-World/README.md
new file mode 100644
index 00000000..eb1bdb65
--- /dev/null
+++ b/translations/ro/9-Real-World/README.md
@@ -0,0 +1,32 @@
+
+# Postscript: Aplicații reale ale învățării automate clasice
+
+În această secțiune a curriculumului, vei fi introdus în câteva aplicații reale ale învățării automate clasice. Am cercetat internetul pentru a găsi articole și lucrări despre aplicații care au utilizat aceste strategii, evitând pe cât posibil rețelele neuronale, învățarea profundă și inteligența artificială. Află cum este utilizată învățarea automată în sistemele de afaceri, aplicații ecologice, finanțe, arte și cultură, și multe altele.
+
+
+
+> Fotografie de Alexis Fauvet pe Unsplash
+
+## Lecție
+
+1. [Aplicații reale pentru ML](1-Applications/README.md)
+2. [Depanarea modelelor de învățare automată folosind componentele tabloului de bord AI responsabil](2-Debugging-ML-Models/README.md)
+
+## Credite
+
+"Aplicații reale" a fost scrisă de o echipă de oameni, inclusiv [Jen Looper](https://twitter.com/jenlooper) și [Ornella Altunyan](https://twitter.com/ornelladotcom).
+
+"Depanarea modelelor de învățare automată folosind componentele tabloului de bord AI responsabil" a fost scrisă de [Ruth Yakubu](https://twitter.com/ruthieyakubu)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/CODE_OF_CONDUCT.md b/translations/ro/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..1e31a05b
--- /dev/null
+++ b/translations/ro/CODE_OF_CONDUCT.md
@@ -0,0 +1,23 @@
+
+# Codul de Conduită pentru Proiectele Open Source Microsoft
+
+Acest proiect a adoptat [Codul de Conduită pentru Proiectele Open Source Microsoft](https://opensource.microsoft.com/codeofconduct/).
+
+Resurse:
+
+- [Codul de Conduită pentru Proiectele Open Source Microsoft](https://opensource.microsoft.com/codeofconduct/)
+- [Întrebări frecvente despre Codul de Conduită Microsoft](https://opensource.microsoft.com/codeofconduct/faq/)
+- Contactați [opencode@microsoft.com](mailto:opencode@microsoft.com) pentru întrebări sau nelămuriri
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/CONTRIBUTING.md b/translations/ro/CONTRIBUTING.md
new file mode 100644
index 00000000..1b5d9b88
--- /dev/null
+++ b/translations/ro/CONTRIBUTING.md
@@ -0,0 +1,25 @@
+
+# Contribuții
+
+Acest proiect acceptă contribuții și sugestii. Majoritatea contribuțiilor necesită ca tu să fii de acord cu un Acord de Licență pentru Contribuitori (CLA), declarând că ai dreptul și, de fapt, acorzi drepturile necesare pentru ca noi să utilizăm contribuția ta. Pentru detalii, vizitează https://cla.microsoft.com.
+
+> Important: când traduci text în acest depozit, te rugăm să te asiguri că nu folosești traduceri automate. Vom verifica traducerile prin intermediul comunității, așa că te rugăm să te oferi voluntar pentru traduceri doar în limbile în care ești proficient.
+
+Când trimiți un pull request, un bot CLA va determina automat dacă trebuie să furnizezi un CLA și va adăuga informațiile corespunzătoare la PR (de exemplu, etichetă, comentariu). Urmează pur și simplu instrucțiunile oferite de bot. Va trebui să faci acest lucru o singură dată pentru toate depozitele care utilizează CLA-ul nostru.
+
+Acest proiect a adoptat [Codul de Conduită Open Source Microsoft](https://opensource.microsoft.com/codeofconduct/).
+Pentru mai multe informații, consultă [FAQ-ul Codului de Conduită](https://opensource.microsoft.com/codeofconduct/faq/)
+sau contactează [opencode@microsoft.com](mailto:opencode@microsoft.com) pentru orice întrebări sau comentarii suplimentare.
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/README.md b/translations/ro/README.md
new file mode 100644
index 00000000..07fdf1c9
--- /dev/null
+++ b/translations/ro/README.md
@@ -0,0 +1,177 @@
+
+[](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
+[](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
+[](http://makeapullrequest.com)
+
+[](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/network/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
+
+### 🌐 Suport Multi-Limbă
+
+#### Suportat prin GitHub Action (Automat & Mereu Actualizat)
+
+[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](./README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
+
+#### Alătură-te Comunității
+
+[](https://discord.gg/kzRShWzttr)
+
+# Machine Learning pentru Începători - Un Curriculum
+
+> 🌍 Călătorește în jurul lumii în timp ce explorăm Machine Learning prin intermediul culturilor mondiale 🌍
+
+Cloud Advocates de la Microsoft sunt încântați să ofere un curriculum de 12 săptămâni, cu 26 de lecții, despre **Machine Learning**. În acest curriculum, vei învăța despre ceea ce este uneori numit **machine learning clasic**, utilizând în principal biblioteca Scikit-learn și evitând deep learning, care este acoperit în [curriculumul nostru AI pentru Începători](https://aka.ms/ai4beginners). Combină aceste lecții cu curriculumul nostru ['Data Science pentru Începători'](https://aka.ms/ds4beginners), de asemenea!
+
+Călătorește cu noi în jurul lumii în timp ce aplicăm aceste tehnici clasice pe date din diverse regiuni ale lumii. Fiecare lecție include chestionare înainte și după lecție, instrucțiuni scrise pentru completarea lecției, o soluție, o temă și multe altele. Pedagogia noastră bazată pe proiecte îți permite să înveți în timp ce construiești, o metodă dovedită pentru a fixa noile abilități.
+
+**✍️ Mulțumiri sincere autorilor noștri** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu și Amy Boyd
+
+**🎨 Mulțumiri și ilustratorilor noștri** Tomomi Imura, Dasani Madipalli și Jen Looper
+
+**🙏 Mulțumiri speciale 🙏 autorilor, recenzorilor și contributorilor de conținut Microsoft Student Ambassador**, în special Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila și Snigdha Agarwal
+
+**🤩 Recunoștință suplimentară pentru Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi și Vidushi Gupta pentru lecțiile noastre în R!**
+
+# Începe
+
+Urmează acești pași:
+1. **Fork Repository-ul**: Apasă pe butonul "Fork" din colțul dreapta sus al acestei pagini.
+2. **Clonează Repository-ul**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
+
+> [găsește toate resursele suplimentare pentru acest curs în colecția noastră Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+**[Studenți](https://aka.ms/student-page)**, pentru a utiliza acest curriculum, faceți fork întregului repo în propriul cont GitHub și completați exercițiile pe cont propriu sau în grup:
+
+- Începeți cu un chestionar înainte de lecție.
+- Citiți lecția și completați activitățile, oprindu-vă și reflectând la fiecare verificare a cunoștințelor.
+- Încercați să creați proiectele înțelegând lecțiile, mai degrabă decât rulând codul soluției; totuși, acel cod este disponibil în folderele `/solution` din fiecare lecție orientată pe proiect.
+- Faceți chestionarul de după lecție.
+- Completați provocarea.
+- Completați tema.
+- După ce ați finalizat un grup de lecții, vizitați [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) și "învățați cu voce tare" completând rubricul PAT corespunzător. Un 'PAT' este un instrument de evaluare a progresului, o rubrică pe care o completați pentru a vă aprofunda învățarea. De asemenea, puteți reacționa la alte rubrici PAT pentru a învăța împreună.
+
+> Pentru studii suplimentare, recomandăm urmarea acestor module și trasee de învățare [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
+
+**Profesori**, am [inclus câteva sugestii](for-teachers.md) despre cum să utilizați acest curriculum.
+
+---
+
+## Tutoriale video
+
+Unele lecții sunt disponibile sub formă de videoclipuri scurte. Puteți găsi toate acestea în lecții, sau pe [playlist-ul ML pentru Începători de pe canalul YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) făcând clic pe imaginea de mai jos.
+
+[](https://aka.ms/ml-beginners-videos)
+
+---
+
+## Cunoaște Echipa
+
+[](https://youtu.be/Tj1XWrDSYJU)
+
+**Gif realizat de** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
+
+> 🎥 Apasă pe imaginea de mai sus pentru un videoclip despre proiect și persoanele care l-au creat!
+
+---
+
+## Pedagogie
+
+Am ales două principii pedagogice în timp ce am construit acest curriculum: asigurarea că este **bazat pe proiecte** și că include **chestionare frecvente**. În plus, acest curriculum are o **temă comună** pentru a-i oferi coeziune.
+
+Prin asigurarea că conținutul se aliniază cu proiectele, procesul devine mai captivant pentru studenți, iar reținerea conceptelor va fi îmbunătățită. În plus, un chestionar cu miză redusă înainte de o clasă setează intenția studentului spre învățarea unui subiect, în timp ce un al doilea chestionar după clasă asigură o reținere suplimentară. Acest curriculum a fost conceput să fie flexibil și distractiv și poate fi parcurs în întregime sau parțial. Proiectele încep mici și devin din ce în ce mai complexe până la sfârșitul ciclului de 12 săptămâni. Acest curriculum include, de asemenea, un postscript despre aplicațiile reale ale ML, care poate fi utilizat ca credit suplimentar sau ca bază pentru discuții.
+
+> Găsiți [Codul nostru de Conduită](CODE_OF_CONDUCT.md), [Contribuții](CONTRIBUTING.md) și ghidurile de [Traducere](TRANSLATIONS.md). Apreciem feedback-ul vostru constructiv!
+
+## Fiecare lecție include
+
+- opțional, o schiță
+- opțional, un videoclip suplimentar
+- tutorial video (doar pentru unele lecții)
+- [chestionar de încălzire înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
+- lecție scrisă
+- pentru lecțiile bazate pe proiecte, ghiduri pas cu pas despre cum să construiești proiectul
+- verificări ale cunoștințelor
+- o provocare
+- lectură suplimentară
+- temă
+- [chestionar de după lecție](https://ff-quizzes.netlify.app/en/ml/)
+
+> **O notă despre limbaje**: Aceste lecții sunt scrise în principal în Python, dar multe sunt disponibile și în R. Pentru a completa o lecție în R, accesați folderul `/solution` și căutați lecțiile în R. Acestea includ o extensie .rmd care reprezintă un fișier **R Markdown**, care poate fi definit simplu ca o integrare de `fragmente de cod` (din R sau alte limbaje) și un `header YAML` (care ghidează cum să formateze ieșirile, cum ar fi PDF) într-un `document Markdown`. Astfel, servește ca un cadru exemplar de autor pentru știința datelor, deoarece îți permite să combini codul, rezultatul acestuia și gândurile tale, permițându-ți să le notezi în Markdown. Mai mult, documentele R Markdown pot fi transformate în formate de ieșire precum PDF, HTML sau Word.
+
+> **O notă despre chestionare**: Toate chestionarele sunt conținute în [folderul Quiz App](../../quiz-app), pentru un total de 52 de chestionare, fiecare cu trei întrebări. Acestea sunt legate din lecții, dar aplicația de chestionare poate fi rulată local; urmați instrucțiunile din folderul `quiz-app` pentru a găzdui local sau a implementa pe Azure.
+
+| Număr Lecție | Subiect | Grupare Lecții | Obiective de Învățare | Lecție Legată | Autor |
+| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
+| 01 | Introducere în machine learning | [Introducere](1-Introduction/README.md) | Învață conceptele de bază din spatele machine learning | [Lecție](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
+| 02 | Istoria machine learning | [Introducere](1-Introduction/README.md) | Învață istoria care stă la baza acestui domeniu | [Lecție](1-Introduction/2-history-of-ML/README.md) | Jen și Amy |
+| 03 | Echitate și machine learning | [Introducere](1-Introduction/README.md) | Care sunt problemele filosofice importante legate de echitate pe care studenții ar trebui să le ia în considerare? | [Lecție](1-Introduction/3-fairness/README.md) | Tomomi |
+| 04 | Tehnici pentru învățarea automată | [Introducere](1-Introduction/README.md) | Ce tehnici folosesc cercetătorii ML pentru a construi modele ML? | [Lecție](1-Introduction/4-techniques-of-ML/README.md) | Chris și Jen |
+| 05 | Introducere în regresie | [Regresie](2-Regression/README.md) | Începeți cu Python și Scikit-learn pentru modele de regresie |
+
|
+| 09 | O aplicație web 🔌 | [Aplicație Web](3-Web-App/README.md) | Construiți o aplicație web pentru a utiliza modelul antrenat | [Python](3-Web-App/1-Web-App/README.md) | Jen |
+| 10 | Introducere în clasificare | [Clasificare](4-Classification/README.md) | Curățați, pregătiți și vizualizați datele; introducere în clasificare |
|
+| 16 | Introducere în procesarea limbajului natural ☕️ | [Procesarea limbajului natural](6-NLP/README.md) | Învățați elementele de bază ale NLP construind un bot simplu | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
+| 17 | Sarcini comune NLP ☕️ | [Procesarea limbajului natural](6-NLP/README.md) | Aprofundați cunoștințele NLP înțelegând sarcinile comune necesare pentru lucrul cu structurile lingvistice | [Python](6-NLP/2-Tasks/README.md) | Stephen |
+| 18 | Traducere și analiză de sentiment ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Traducere și analiză de sentiment cu Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
+| 19 | Hoteluri romantice din Europa ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Analiză de sentiment cu recenzii de hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
+| 20 | Hoteluri romantice din Europa ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Analiză de sentiment cu recenzii de hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
+| 21 | Introducere în prognoza seriilor temporale | [Serii temporale](7-TimeSeries/README.md) | Introducere în prognoza seriilor temporale | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
+| 22 | ⚡️ Utilizarea energiei la nivel mondial ⚡️ - prognoză ARIMA | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale cu ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
+| 23 | ⚡️ Utilizarea energiei la nivel mondial ⚡️ - prognoză SVR | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale cu Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
+| 24 | Introducere în învățarea prin întărire | [Învățare prin întărire](8-Reinforcement/README.md)| Introducere în învățarea prin întărire cu Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
+| 25 | Ajutați-l pe Peter să evite lupul! 🐺 | [Învățare prin întărire](8-Reinforcement/README.md)| Gym pentru învățarea prin întărire | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
+| Postscript | Scenarii și aplicații ML din lumea reală | [ML în sălbăticie](9-Real-World/README.md) | Aplicații interesante și revelatoare ale ML clasic | [Lecție](9-Real-World/1-Applications/README.md) | Echipa |
+| Postscript | Debugging-ul modelelor ML cu tabloul RAI | [ML în sălbăticie](9-Real-World/README.md) | Debugging-ul modelelor de învățare automată folosind componentele tabloului Responsible AI | [Lecție](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
+
+> [găsiți toate resursele suplimentare pentru acest curs în colecția noastră Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+## Acces offline
+
+Puteți rula această documentație offline folosind [Docsify](https://docsify.js.org/#/). Faceți fork acestui repo, [instalați Docsify](https://docsify.js.org/#/quickstart) pe mașina locală, apoi în folderul rădăcină al acestui repo, tastați `docsify serve`. Website-ul va fi servit pe portul 3000 pe localhost-ul vostru: `localhost:3000`.
+
+## PDF-uri
+
+Găsiți un PDF al curriculumului cu linkuri [aici](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
+
+## 🎒 Alte Cursuri
+
+Echipa noastră produce și alte cursuri! Verificați:
+
+- [Generative AI pentru Începători](https://aka.ms/genai-beginners)
+- [Generative AI pentru Începători .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
+- [Generative AI cu JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
+- [Generative AI cu Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
+- [AI pentru Începători](https://aka.ms/ai-beginners)
+- [Știința Datelor pentru Începători](https://aka.ms/datascience-beginners)
+- [ML pentru Începători](https://aka.ms/ml-beginners)
+- [Securitate Cibernetică pentru Începători](https://github.com/microsoft/Security-101)
+- [Dezvoltare Web pentru Începători](https://aka.ms/webdev-beginners)
+- [IoT pentru Începători](https://aka.ms/iot-beginners)
+- [Dezvoltare XR pentru Începători](https://github.com/microsoft/xr-development-for-beginners)
+- [Stăpânirea GitHub Copilot pentru Programare în Echipe](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
+- [Stăpânirea GitHub Copilot pentru Dezvoltatori C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
+- [Alege-ți propria aventură Copilot](https://github.com/microsoft/CopilotAdventures)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/SECURITY.md b/translations/ro/SECURITY.md
new file mode 100644
index 00000000..2623337c
--- /dev/null
+++ b/translations/ro/SECURITY.md
@@ -0,0 +1,51 @@
+
+## Securitate
+
+Microsoft tratează cu seriozitate securitatea produselor și serviciilor noastre software, inclusiv toate depozitele de cod sursă gestionate prin organizațiile noastre GitHub, care includ [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin) și [organizațiile noastre GitHub](https://opensource.microsoft.com/).
+
+Dacă credeți că ați descoperit o vulnerabilitate de securitate într-un depozit deținut de Microsoft care se încadrează în [definiția Microsoft a unei vulnerabilități de securitate](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)?WT.mc_id=academic-77952-leestott), vă rugăm să ne raportați problema conform descrierii de mai jos.
+
+## Raportarea problemelor de securitate
+
+**Vă rugăm să nu raportați vulnerabilitățile de securitate prin probleme publice pe GitHub.**
+
+În schimb, raportați-le către Microsoft Security Response Center (MSRC) la [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
+
+Dacă preferați să trimiteți raportul fără a vă autentifica, trimiteți un e-mail la [secure@microsoft.com](mailto:secure@microsoft.com). Dacă este posibil, criptați mesajul cu cheia noastră PGP; o puteți descărca de pe [pagina Microsoft Security Response Center PGP Key](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
+
+Ar trebui să primiți un răspuns în termen de 24 de ore. Dacă, din anumite motive, nu primiți un răspuns, vă rugăm să reveniți prin e-mail pentru a vă asigura că am primit mesajul original. Informații suplimentare pot fi găsite la [microsoft.com/msrc](https://www.microsoft.com/msrc).
+
+Vă rugăm să includeți informațiile solicitate enumerate mai jos (atât cât puteți furniza) pentru a ne ajuta să înțelegem mai bine natura și amploarea problemei posibile:
+
+ * Tipul problemei (de exemplu, depășirea bufferului, injecție SQL, scripting între site-uri etc.)
+ * Căile complete ale fișierelor sursă legate de manifestarea problemei
+ * Locația codului sursă afectat (eticheta/ramura/commit sau URL direct)
+ * Orice configurație specială necesară pentru a reproduce problema
+ * Instrucțiuni pas cu pas pentru reproducerea problemei
+ * Cod de probă sau de exploatare (dacă este posibil)
+ * Impactul problemei, inclusiv modul în care un atacator ar putea exploata problema
+
+Aceste informații ne vor ajuta să prioritizăm raportul dumneavoastră mai rapid.
+
+Dacă raportați pentru un program de recompensare a bug-urilor, rapoartele mai detaliate pot contribui la o recompensă mai mare. Vă rugăm să vizitați pagina [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) pentru mai multe detalii despre programele noastre active.
+
+## Limbi preferate
+
+Preferăm ca toate comunicările să fie în limba engleză.
+
+## Politică
+
+Microsoft urmează principiul [Dezvăluirii coordonate a vulnerabilităților](https://www.microsoft.com/en-us/msrc/cvd).
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/SUPPORT.md b/translations/ro/SUPPORT.md
new file mode 100644
index 00000000..abfcece7
--- /dev/null
+++ b/translations/ro/SUPPORT.md
@@ -0,0 +1,24 @@
+
+# Suport
+## Cum să raportezi probleme și să obții ajutor
+
+Acest proiect utilizează GitHub Issues pentru a urmări erorile și cererile de funcționalități. Te rugăm să cauți printre problemele existente înainte de a raporta altele noi, pentru a evita duplicatele. Pentru probleme noi, raportează eroarea sau cererea ta de funcționalitate ca o nouă problemă.
+
+Pentru ajutor și întrebări legate de utilizarea acestui proiect, deschide o problemă.
+
+## Politica de suport Microsoft
+
+Suportul pentru acest depozit este limitat la resursele enumerate mai sus.
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/docs/_sidebar.md b/translations/ro/docs/_sidebar.md
new file mode 100644
index 00000000..3b0aa5f2
--- /dev/null
+++ b/translations/ro/docs/_sidebar.md
@@ -0,0 +1,57 @@
+
+- Introducere
+ - [Introducere în Machine Learning](../1-Introduction/1-intro-to-ML/README.md)
+ - [Istoria Machine Learning](../1-Introduction/2-history-of-ML/README.md)
+ - [ML și Echitatea](../1-Introduction/3-fairness/README.md)
+ - [Tehnici de ML](../1-Introduction/4-techniques-of-ML/README.md)
+
+- Regresie
+ - [Instrumentele meseriei](../2-Regression/1-Tools/README.md)
+ - [Date](../2-Regression/2-Data/README.md)
+ - [Regresie liniară](../2-Regression/3-Linear/README.md)
+ - [Regresie logistică](../2-Regression/4-Logistic/README.md)
+
+- Construiește o aplicație web
+ - [Aplicație web](../3-Web-App/1-Web-App/README.md)
+
+- Clasificare
+ - [Introducere în Clasificare](../4-Classification/1-Introduction/README.md)
+ - [Clasificatori 1](../4-Classification/2-Classifiers-1/README.md)
+ - [Clasificatori 2](../4-Classification/3-Classifiers-2/README.md)
+ - [ML aplicat](../4-Classification/4-Applied/README.md)
+
+- Grupare
+ - [Vizualizează datele tale](../5-Clustering/1-Visualize/README.md)
+ - [K-Means](../5-Clustering/2-K-Means/README.md)
+
+- NLP
+ - [Introducere în NLP](../6-NLP/1-Introduction-to-NLP/README.md)
+ - [Sarcini NLP](../6-NLP/2-Tasks/README.md)
+ - [Traducere și Sentiment](../6-NLP/3-Translation-Sentiment/README.md)
+ - [Recenzii de hotel 1](../6-NLP/4-Hotel-Reviews-1/README.md)
+ - [Recenzii de hotel 2](../6-NLP/5-Hotel-Reviews-2/README.md)
+
+- Prognoza seriilor temporale
+ - [Introducere în prognoza seriilor temporale](../7-TimeSeries/1-Introduction/README.md)
+ - [ARIMA](../7-TimeSeries/2-ARIMA/README.md)
+ - [SVR](../7-TimeSeries/3-SVR/README.md)
+
+- Învățare prin întărire
+ - [Q-Learning](../8-Reinforcement/1-QLearning/README.md)
+ - [Gym](../8-Reinforcement/2-Gym/README.md)
+
+- ML în lumea reală
+ - [Aplicații](../9-Real-World/1-Applications/README.md)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/for-teachers.md b/translations/ro/for-teachers.md
new file mode 100644
index 00000000..ec05071e
--- /dev/null
+++ b/translations/ro/for-teachers.md
@@ -0,0 +1,37 @@
+
+## Pentru educatori
+
+Doriți să utilizați acest curriculum în sala de clasă? Vă rugăm să o faceți!
+
+De fapt, îl puteți folosi direct pe GitHub, utilizând GitHub Classroom.
+
+Pentru a face acest lucru, clonați acest repo. Va trebui să creați un repo pentru fiecare lecție, așa că va fi necesar să extrageți fiecare folder într-un repo separat. Astfel, [GitHub Classroom](https://classroom.github.com/classrooms) poate prelua fiecare lecție separat.
+
+Aceste [instrucțiuni complete](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) vă vor oferi o idee despre cum să vă organizați sala de clasă.
+
+## Utilizarea repo-ului așa cum este
+
+Dacă doriți să utilizați acest repo în forma sa actuală, fără a folosi GitHub Classroom, acest lucru este posibil. Va trebui să comunicați cu studenții despre lecția pe care să o parcurgeți împreună.
+
+Într-un format online (Zoom, Teams sau altul), puteți forma grupuri de lucru pentru chestionare și să mentorizați studenții pentru a-i pregăti să învețe. Apoi, invitați studenții să participe la chestionare și să își trimită răspunsurile ca 'issues' la un moment stabilit. Puteți face același lucru cu temele, dacă doriți ca studenții să lucreze colaborativ, în mod deschis.
+
+Dacă preferați un format mai privat, cereți studenților să cloneze curriculumul, lecție cu lecție, în propriile lor repo-uri GitHub private și să vă ofere acces. Astfel, ei pot completa chestionarele și temele în mod privat și să vi le trimită prin 'issues' pe repo-ul clasei voastre.
+
+Există multe modalități de a face acest lucru să funcționeze într-un format de clasă online. Vă rugăm să ne spuneți ce funcționează cel mai bine pentru voi!
+
+## Vă rugăm să ne împărtășiți gândurile voastre!
+
+Dorim ca acest curriculum să funcționeze pentru voi și studenții voștri. Vă rugăm să ne oferiți [feedback](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u).
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/quiz-app/README.md b/translations/ro/quiz-app/README.md
new file mode 100644
index 00000000..305c98c3
--- /dev/null
+++ b/translations/ro/quiz-app/README.md
@@ -0,0 +1,127 @@
+
+# Chestionare
+
+Aceste chestionare sunt cele de dinaintea și de după cursurile din curriculum-ul ML de la https://aka.ms/ml-beginners
+
+## Configurarea proiectului
+
+```
+npm install
+```
+
+### Compilează și reîncarcă automat pentru dezvoltare
+
+```
+npm run serve
+```
+
+### Compilează și minimizează pentru producție
+
+```
+npm run build
+```
+
+### Verifică și corectează fișierele
+
+```
+npm run lint
+```
+
+### Personalizează configurația
+
+Vezi [Referința de Configurare](https://cli.vuejs.org/config/).
+
+Credite: Mulțumiri versiunii originale a acestei aplicații de chestionare: https://github.com/arpan45/simple-quiz-vue
+
+## Publicarea pe Azure
+
+Iată un ghid pas cu pas pentru a te ajuta să începi:
+
+1. Clonează un Repositoriu GitHub
+Asigură-te că codul aplicației tale web statice este în repository-ul tău GitHub. Clonează acest repository.
+
+2. Creează o aplicație web statică pe Azure
+- Creează un [cont Azure](http://azure.microsoft.com)
+- Accesează [portalul Azure](https://portal.azure.com)
+- Fă clic pe „Create a resource” și caută „Static Web App”.
+- Fă clic pe „Create”.
+
+3. Configurează aplicația web statică
+- Bază:
+ - Subscription: Selectează abonamentul tău Azure.
+ - Resource Group: Creează un nou grup de resurse sau folosește unul existent.
+ - Name: Oferă un nume aplicației tale web statice.
+ - Region: Alege regiunea cea mai apropiată de utilizatorii tăi.
+
+- #### Detalii despre implementare:
+ - Source: Selectează „GitHub”.
+ - GitHub Account: Autorizează Azure să acceseze contul tău GitHub.
+ - Organization: Selectează organizația ta GitHub.
+ - Repository: Alege repository-ul care conține aplicația ta web statică.
+ - Branch: Selectează ramura din care vrei să implementezi.
+
+- #### Detalii despre build:
+ - Build Presets: Alege framework-ul cu care este construită aplicația ta (de exemplu, React, Angular, Vue etc.).
+ - App Location: Specifică folderul care conține codul aplicației tale (de exemplu, / dacă este în rădăcină).
+ - API Location: Dacă ai un API, specifică locația acestuia (opțional).
+ - Output Location: Specifică folderul unde este generat output-ul build-ului (de exemplu, build sau dist).
+
+4. Revizuiește și Creează
+Revizuiește setările și fă clic pe „Create”. Azure va configura resursele necesare și va crea un workflow GitHub Actions în repository-ul tău.
+
+5. Workflow GitHub Actions
+Azure va crea automat un fișier workflow GitHub Actions în repository-ul tău (.github/workflows/azure-static-web-apps-.yml). Acest workflow va gestiona procesul de build și implementare.
+
+6. Monitorizează Implementarea
+Accesează fila „Actions” din repository-ul tău GitHub.
+Ar trebui să vezi un workflow în desfășurare. Acest workflow va construi și implementa aplicația ta web statică pe Azure.
+După ce workflow-ul se finalizează, aplicația ta va fi live pe URL-ul furnizat de Azure.
+
+### Exemplu de fișier Workflow
+
+Iată un exemplu de cum ar putea arăta fișierul workflow GitHub Actions:
+name: Azure Static Web Apps CI/CD
+```
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ types: [opened, synchronize, reopened, closed]
+ branches:
+ - main
+
+jobs:
+ build_and_deploy_job:
+ runs-on: ubuntu-latest
+ name: Build and Deploy Job
+ steps:
+ - uses: actions/checkout@v2
+ - name: Build And Deploy
+ id: builddeploy
+ uses: Azure/static-web-apps-deploy@v1
+ with:
+ azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ action: "upload"
+ app_location: "/quiz-app" # App source code path
+ api_location: ""API source code path optional
+ output_location: "dist" #Built app content directory - optional
+```
+
+### Resurse suplimentare
+- [Documentația Azure Static Web Apps](https://learn.microsoft.com/azure/static-web-apps/getting-started)
+- [Documentația GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru acuratețe, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/sketchnotes/LICENSE.md b/translations/ro/sketchnotes/LICENSE.md
new file mode 100644
index 00000000..e6f44e23
--- /dev/null
+++ b/translations/ro/sketchnotes/LICENSE.md
@@ -0,0 +1,153 @@
+
+Attribution-ShareAlike 4.0 Internațional
+
+=======================================================================
+
+Creative Commons Corporation („Creative Commons”) nu este o firmă de avocatură și nu oferă servicii juridice sau consultanță juridică. Distribuirea licențelor publice Creative Commons nu creează o relație avocat-client sau altă relație. Creative Commons pune la dispoziție licențele și informațiile aferente „așa cum sunt”. Creative Commons nu oferă garanții cu privire la licențele sale, materialele licențiate conform termenilor și condițiilor acestora sau informațiile aferente. Creative Commons declină orice răspundere pentru daunele rezultate din utilizarea acestora, în măsura maximă permisă.
+
+Utilizarea licențelor publice Creative Commons
+
+Licențele publice Creative Commons oferă un set standard de termeni și condiții pe care creatorii și alți deținători de drepturi le pot folosi pentru a partaja opere originale protejate de drepturi de autor și alte materiale supuse drepturilor de autor și anumitor alte drepturi specificate în licența publică de mai jos. Următoarele considerații sunt doar în scop informativ, nu sunt exhaustive și nu fac parte din licențele noastre.
+
+ Considerații pentru licențiatori: Licențele noastre publice sunt
+ destinate utilizării de către cei autorizați să ofere publicului
+ permisiunea de a utiliza materialul în moduri altfel restricționate
+ de drepturile de autor și anumite alte drepturi. Licențele noastre
+ sunt irevocabile. Licențiatorii ar trebui să citească și să înțeleagă
+ termenii și condițiile licenței pe care o aleg înainte de a o aplica.
+ Licențiatorii ar trebui, de asemenea, să se asigure că dețin toate
+ drepturile necesare înainte de a aplica licențele noastre, astfel
+ încât publicul să poată reutiliza materialul conform așteptărilor.
+ Licențiatorii ar trebui să marcheze clar orice material care nu este
+ supus licenței. Acest lucru include alte materiale licențiate CC sau
+ materiale utilizate conform unei excepții sau limitări ale drepturilor
+ de autor. Mai multe considerații pentru licențiatori:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerații pentru public: Prin utilizarea uneia dintre licențele
+ noastre publice, un licențiator oferă publicului permisiunea de a
+ utiliza materialul licențiat conform termenilor și condițiilor
+ specificate. Dacă permisiunea licențiatorului nu este necesară din
+ orice motiv – de exemplu, din cauza unei excepții sau limitări
+ aplicabile drepturilor de autor – atunci utilizarea respectivă nu
+ este reglementată de licență. Licențele noastre oferă doar permisiuni
+ în cadrul drepturilor de autor și anumitor alte drepturi pe care un
+ licențiator are autoritatea să le acorde. Utilizarea materialului
+ licențiat poate fi totuși restricționată din alte motive, inclusiv
+ pentru că alții dețin drepturi de autor sau alte drepturi asupra
+ materialului. Un licențiator poate face cereri speciale, cum ar fi
+ solicitarea ca toate modificările să fie marcate sau descrise. Deși
+ nu este necesar conform licențelor noastre, sunteți încurajat să
+ respectați aceste cereri, acolo unde este rezonabil. Mai multe
+ considerații pentru public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Licența Publică Creative Commons Attribution-ShareAlike 4.0 Internațional
+
+Prin exercitarea Drepturilor Licențiate (definite mai jos), acceptați și sunteți de acord să respectați termenii și condițiile acestei Licențe Publice Creative Commons Attribution-ShareAlike 4.0 Internațional („Licența Publică”). În măsura în care această Licență Publică poate fi interpretată ca un contract, vi se acordă Drepturile Licențiate în considerarea acceptării acestor termeni și condiții, iar Licențiatorul vă acordă aceste drepturi în considerarea beneficiilor pe care le primește prin punerea la dispoziție a Materialului Licențiat conform acestor termeni și condiții.
+
+Secțiunea 1 – Definiții.
+
+ a. Material Adaptat înseamnă material supus Drepturilor de Autor și Drepturilor Similare care este derivat din sau bazat pe Materialul Licențiat și în care Materialul Licențiat este tradus, modificat, aranjat, transformat sau altfel modificat într-un mod care necesită permisiune conform Drepturilor de Autor și Drepturilor Similare deținute de Licențiator. În scopul acestei Licențe Publice, unde Materialul Licențiat este o operă muzicală, o interpretare sau o înregistrare sonoră, Materialul Adaptat este întotdeauna produs atunci când Materialul Licențiat este sincronizat în relație temporală cu o imagine în mișcare.
+
+ b. Licența Adapterului înseamnă licența pe care o aplicați Drepturilor de Autor și Drepturilor Similare asupra contribuțiilor dvs. la Materialul Adaptat, conform termenilor și condițiilor acestei Licențe Publice.
+
+ c. Licență Compatibilă BY-SA înseamnă o licență listată la creativecommons.org/compatiblelicenses, aprobată de Creative Commons ca fiind esențial echivalentă cu această Licență Publică.
+
+ d. Drepturi de Autor și Drepturi Similare înseamnă drepturi de autor și/sau drepturi similare strâns legate de drepturile de autor, inclusiv, fără limitare, interpretare, difuzare, înregistrare sonoră și Drepturi Sui Generis asupra Bazelor de Date, indiferent de modul în care drepturile sunt etichetate sau categorisite. În scopul acestei Licențe Publice, drepturile specificate în Secțiunea 2(b)(1)-(2) nu sunt Drepturi de Autor și Drepturi Similare.
+
+ e. Măsuri Tehnologice Eficiente înseamnă acele măsuri care, în absența unei autorități corespunzătoare, nu pot fi ocolite conform legilor care îndeplinesc obligațiile prevăzute în Articolul 11 al Tratatului WIPO privind Drepturile de Autor adoptat la 20 decembrie 1996 și/sau acorduri internaționale similare.
+
+ f. Excepții și Limitări înseamnă utilizare echitabilă, utilizare rezonabilă și/sau orice altă excepție sau limitare a Drepturilor de Autor și Drepturilor Similare care se aplică utilizării Materialului Licențiat de către dvs.
+
+ g. Elemente ale Licenței înseamnă atributele licenței listate în denumirea unei Licențe Publice Creative Commons. Elemente ale Licenței acestei Licențe Publice sunt Atribuirea și ShareAlike.
+
+ h. Material Licențiat înseamnă opera artistică sau literară, baza de date sau alt material asupra căruia Licențiatorul a aplicat această Licență Publică.
+
+ i. Drepturi Licențiate înseamnă drepturile acordate dvs. sub rezerva termenilor și condițiilor acestei Licențe Publice, care sunt limitate la toate Drepturile de Autor și Drepturile Similare care se aplică utilizării Materialului Licențiat de către dvs. și pe care Licențiatorul are autoritatea să le licențieze.
+
+ j. Licențiator înseamnă persoana sau entitatea care acordă drepturi conform acestei Licențe Publice.
+
+ k. Partajare înseamnă punerea materialului la dispoziția publicului prin orice mijloace sau proces care necesită permisiune conform Drepturilor Licențiate, cum ar fi reproducerea, afișarea publică, interpretarea publică, distribuirea, diseminarea, comunicarea sau importul, și punerea materialului la dispoziția publicului, inclusiv în moduri în care membrii publicului pot accesa materialul dintr-un loc și la un moment ales individual de ei.
+
+ l. Drepturi Sui Generis asupra Bazelor de Date înseamnă drepturi altele decât drepturile de autor, rezultate din Directiva 96/9/CE a Parlamentului European și a Consiliului din 11 martie 1996 privind protecția juridică a bazelor de date, astfel cum a fost modificată și/sau succedată, precum și alte drepturi esențial echivalente oriunde în lume.
+
+ m. Dvs. înseamnă persoana sau entitatea care exercită Drepturile Licențiate conform acestei Licențe Publice. „Dvs.” are un sens corespunzător.
+
+
+Drepturi, apoi baza de date în care aveți Drepturi Sui Generis asupra Bazei de Date (dar nu asupra conținutului individual al acesteia) este Material Adaptat,
+
+inclusiv în scopurile Secțiunii 3(b); și
+c. Trebuie să respectați condițiile din Secțiunea 3(a) dacă Distribuiți toate sau o parte substanțială din conținutul bazei de date.
+
+Pentru evitarea oricăror ambiguități, această Secțiune 4 completează și nu înlocuiește obligațiile dumneavoastră conform acestei Licențe Publice, în cazul în care Drepturile Licențiate includ alte Drepturi de Autor și Drepturi Similare.
+
+---
+
+Secțiunea 5 -- Declarație de Renunțare la Garanții și Limitarea Răspunderii.
+
+a. CU EXCEPȚIA CAZULUI ÎN CARE LICENȚIATORUL SE ANGAJEAZĂ SEPARAT, ÎN MĂSURA POSIBILĂ, LICENȚIATORUL OFERĂ MATERIALUL LICENȚIAT „CA ATARE” ȘI „AȘA CUM ESTE DISPONIBIL” ȘI NU FACE NICIO DECLARAȚIE SAU GARANȚIE DE NICIUN FEL CU PRIVIRE LA MATERIALUL LICENȚIAT, FIE EXPRESĂ, IMPLICITĂ, LEGALĂ SAU ALTFEL. ACESTEA INCLUD, FĂRĂ LIMITARE, GARANȚII PRIVIND TITLUL, VANDABILITATEA, ADECVAREA PENTRU UN SCOP ANUME, NEÎNCĂLCAREA, ABSENȚA DEFECTELOR LATENTE SAU ALTE DEFECTE, ACURATEȚEA, SAU PREZENȚA SAU ABSENȚA ERORILOR, INDIFERENT DACĂ SUNT CUNOSCUTE SAU DESCOPERITE. UNDE RENUNȚAREA LA GARANȚII NU ESTE PERMISĂ ÎN TOTALITATE SAU PARȚIAL, ACEASTĂ DECLARAȚIE DE RENUNȚARE POATE SĂ NU SE APLICE ÎN CAZUL DUMNEAVOASTRĂ.
+
+b. ÎN MĂSURA POSIBILĂ, ÎN NICIUN CAZ LICENȚIATORUL NU VA FI RĂSPUNZĂTOR FAȚĂ DE DUMNEAVOASTRĂ PE NICIO TEORIE JURIDICĂ (INCLUSIV, FĂRĂ LIMITARE, NEGLIJENȚĂ) SAU ALTFEL PENTRU NICIO PIERDERE DIRECTĂ, SPECIALĂ, INDIRECTĂ, INCIDENTALĂ, CONSECUTIVĂ, PUNITIVĂ, EXEMPLARĂ SAU ALTE PIERDERI, COSTURI, CHELTUIELI SAU DAUNE REZULTATE DIN ACEASTĂ LICENȚĂ PUBLICĂ SAU DIN UTILIZAREA MATERIALULUI LICENȚIAT, CHIAR DACĂ LICENȚIATORUL A FOST AVERTIZAT CU PRIVIRE LA POSIBILITATEA UNOR ASTFEL DE PIERDERI, COSTURI, CHELTUIELI SAU DAUNE. UNDE LIMITAREA RĂSPUNDERII NU ESTE PERMISĂ ÎN TOTALITATE SAU PARȚIAL, ACEASTĂ LIMITARE POATE SĂ NU SE APLICE ÎN CAZUL DUMNEAVOASTRĂ.
+
+c. Declarația de renunțare la garanții și limitarea răspunderii prevăzute mai sus trebuie interpretate într-un mod care, în măsura posibilă, să se apropie cel mai mult de o renunțare absolută și o exonerare de orice răspundere.
+
+---
+
+Secțiunea 6 -- Durată și Reziliere.
+
+a. Această Licență Publică se aplică pe durata Drepturilor de Autor și Drepturilor Similare licențiate aici. Totuși, dacă nu respectați această Licență Publică, atunci drepturile dumneavoastră conform acestei Licențe Publice se reziliază automat.
+
+b. În cazul în care dreptul dumneavoastră de a utiliza Materialul Licențiat a fost reziliat conform Secțiunii 6(a), acesta se reinstaurează:
+
+1. automat, începând cu data remedierii încălcării, cu condiția ca aceasta să fie remediată în termen de 30 de zile de la descoperirea încălcării; sau
+2. prin reinstaurare expresă de către Licențiator.
+
+Pentru evitarea oricăror ambiguități, această Secțiune 6(b) nu afectează niciun drept pe care Licențiatorul îl poate avea pentru a solicita despăgubiri pentru încălcările dumneavoastră ale acestei Licențe Publice.
+
+c. Pentru evitarea oricăror ambiguități, Licențiatorul poate, de asemenea, să ofere Materialul Licențiat conform unor termeni sau condiții separate sau să înceteze distribuirea Materialului Licențiat în orice moment; totuși, acest lucru nu va rezilia această Licență Publică.
+
+d. Secțiunile 1, 5, 6, 7 și 8 rămân valabile după rezilierea acestei Licențe Publice.
+
+---
+
+Secțiunea 7 -- Alte Termeni și Condiții.
+
+a. Licențiatorul nu va fi obligat de niciun termen sau condiție suplimentară sau diferită comunicată de dumneavoastră, cu excepția cazului în care este convenit în mod expres.
+
+b. Orice aranjamente, înțelegeri sau acorduri privind Materialul Licențiat care nu sunt menționate aici sunt separate și independente de termenii și condițiile acestei Licențe Publice.
+
+---
+
+Secțiunea 8 -- Interpretare.
+
+a. Pentru evitarea oricăror ambiguități, această Licență Publică nu reduce, limitează, restricționează sau impune condiții asupra niciunei utilizări ale Materialului Licențiat care ar putea fi realizate legal fără permisiune conform acestei Licențe Publice.
+
+b. În măsura posibilă, dacă orice prevedere a acestei Licențe Publice este considerată inaplicabilă, aceasta va fi reformată automat la minimul necesar pentru a o face aplicabilă. Dacă prevederea nu poate fi reformată, aceasta va fi separată de această Licență Publică fără a afecta aplicabilitatea termenilor și condițiilor rămase.
+
+c. Niciun termen sau condiție ale acestei Licențe Publice nu va fi renunțat și nicio nerespectare nu va fi consimțită decât dacă este convenit în mod expres de către Licențiator.
+
+d. Nimic din această Licență Publică nu constituie sau poate fi interpretat ca o limitare sau renunțare la orice privilegii și imunități care se aplică Licențiatorului sau dumneavoastră, inclusiv față de procesele legale ale oricărei jurisdicții sau autorități.
+
+---
+
+=======================================================================
+
+Creative Commons nu este parte a licențelor sale publice. Cu toate acestea, Creative Commons poate alege să aplice una dintre licențele sale publice materialului pe care îl publică și, în aceste cazuri, va fi considerat „Licențiatorul.” Textul licențelor publice Creative Commons este dedicat domeniului public conform Declarației CC0 Public Domain Dedication. Cu excepția scopului limitat de a indica faptul că materialul este distribuit sub o licență publică Creative Commons sau altfel permis conform politicilor Creative Commons publicate la creativecommons.org/policies, Creative Commons nu autorizează utilizarea mărcii „Creative Commons” sau a oricărei alte mărci sau logo Creative Commons fără consimțământul său scris prealabil, inclusiv, fără limitare, în legătură cu orice modificări neautorizate ale oricăreia dintre licențele sale publice sau orice alte aranjamente, înțelegeri sau acorduri privind utilizarea materialului licențiat. Pentru evitarea oricăror ambiguități, acest paragraf nu face parte din licențele publice.
+
+Creative Commons poate fi contactat la creativecommons.org.
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/sketchnotes/README.md b/translations/ro/sketchnotes/README.md
new file mode 100644
index 00000000..8c0bc72f
--- /dev/null
+++ b/translations/ro/sketchnotes/README.md
@@ -0,0 +1,21 @@
+
+Toate notițele vizuale ale curriculumului pot fi descărcate de aici.
+
+🖨 Pentru imprimare la rezoluție înaltă, versiunile TIFF sunt disponibile la [acest repo](https://github.com/girliemac/a-picture-is-worth-a-1000-words/tree/main/ml/tiff).
+
+🎨 Creat de: [Tomomi Imura](https://github.com/girliemac) (Twitter: [@girlie_mac](https://twitter.com/girlie_mac))
+
+[](https://creativecommons.org/licenses/by-sa/4.0/)
+
+---
+
+**Declinare de responsabilitate**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/1-intro-to-ML/README.md b/translations/sk/1-Introduction/1-intro-to-ML/README.md
new file mode 100644
index 00000000..247e6895
--- /dev/null
+++ b/translations/sk/1-Introduction/1-intro-to-ML/README.md
@@ -0,0 +1,159 @@
+
+# Úvod do strojového učenia
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/6mSx_KJxcHI "ML pre začiatočníkov - Úvod do strojového učenia pre začiatočníkov")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video k tejto lekcii.
+
+Vitajte v tomto kurze klasického strojového učenia pre začiatočníkov! Či už ste v tejto téme úplne noví, alebo skúsený odborník na strojové učenie, ktorý si chce zopakovať určité oblasti, sme radi, že ste sa k nám pridali! Chceme vytvoriť priateľské miesto na začiatok vášho štúdia strojového učenia a radi by sme vyhodnotili, reagovali na vaše [spätné väzby](https://github.com/microsoft/ML-For-Beginners/discussions) a začlenili ich.
+
+[](https://youtu.be/h0e2HAPTGF4 "Úvod do ML")
+
+> 🎥 Kliknite na obrázok vyššie pre video: John Guttag z MIT predstavuje strojové učenie
+
+---
+## Začíname so strojovým učením
+
+Predtým, než začnete s týmto učebným plánom, je potrebné pripraviť váš počítač na spúšťanie notebookov lokálne.
+
+- **Nakonfigurujte svoj počítač pomocou týchto videí**. Použite nasledujúce odkazy na [inštaláciu Pythonu](https://youtu.be/CXZYvNRIAKM) vo vašom systéme a [nastavenie textového editora](https://youtu.be/EU8eayHWoZg) pre vývoj.
+- **Naučte sa Python**. Odporúča sa mať základné znalosti [Pythonu](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), programovacieho jazyka užitočného pre dátových vedcov, ktorý používame v tomto kurze.
+- **Naučte sa Node.js a JavaScript**. JavaScript používame niekoľkokrát v tomto kurze pri tvorbe webových aplikácií, takže budete potrebovať [node](https://nodejs.org) a [npm](https://www.npmjs.com/) nainštalované, ako aj [Visual Studio Code](https://code.visualstudio.com/) dostupné pre vývoj v Pythone a JavaScripte.
+- **Vytvorte si GitHub účet**. Keďže ste nás našli na [GitHube](https://github.com), možno už máte účet, ale ak nie, vytvorte si ho a potom si tento učebný plán forknite na vlastné použitie. (Môžete nám dať aj hviezdičku 😊)
+- **Preskúmajte Scikit-learn**. Zoznámte sa s [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), súborom knižníc pre strojové učenie, na ktoré sa odkazujeme v týchto lekciách.
+
+---
+## Čo je strojové učenie?
+
+Termín 'strojové učenie' je jedným z najpopulárnejších a najčastejšie používaných termínov dneška. Je dosť pravdepodobné, že ste tento termín aspoň raz počuli, ak máte nejakú znalosť technológií, bez ohľadu na oblasť, v ktorej pracujete. Mechanizmy strojového učenia sú však pre väčšinu ľudí záhadou. Pre začiatočníka v strojovom učení môže byť táto téma niekedy ohromujúca. Preto je dôležité pochopiť, čo strojové učenie vlastne je, a učiť sa o ňom krok za krokom, prostredníctvom praktických príkladov.
+
+---
+## Krivka nadšenia
+
+
+
+> Google Trends ukazuje nedávnu 'krivku nadšenia' pre termín 'strojové učenie'
+
+---
+## Záhadný vesmír
+
+Žijeme vo vesmíre plnom fascinujúcich záhad. Veľkí vedci ako Stephen Hawking, Albert Einstein a mnohí ďalší zasvätili svoje životy hľadaniu zmysluplných informácií, ktoré odhaľujú tajomstvá sveta okolo nás. Toto je ľudská podstata učenia: ľudské dieťa sa učí nové veci a rok čo rok odhaľuje štruktúru svojho sveta, keď dospieva.
+
+---
+## Mozog dieťaťa
+
+Mozog a zmysly dieťaťa vnímajú fakty zo svojho okolia a postupne sa učia skryté vzory života, ktoré pomáhajú dieťaťu vytvárať logické pravidlá na identifikáciu naučených vzorov. Proces učenia ľudského mozgu robí z ľudí najsofistikovanejšie živé bytosti na tomto svete. Neustále učenie sa objavovaním skrytých vzorov a následné inovovanie na základe týchto vzorov nám umožňuje zlepšovať sa počas celého života. Táto schopnosť učenia a evolúcie súvisí s konceptom nazývaným [plasticita mozgu](https://www.simplypsychology.org/brain-plasticity.html). Povrchne môžeme nájsť niektoré motivačné podobnosti medzi procesom učenia ľudského mozgu a konceptmi strojového učenia.
+
+---
+## Ľudský mozog
+
+[Ľudský mozog](https://www.livescience.com/29365-human-brain.html) vníma veci z reálneho sveta, spracováva vnímané informácie, robí racionálne rozhodnutia a vykonáva určité akcie na základe okolností. Toto nazývame inteligentným správaním. Keď naprogramujeme napodobeninu inteligentného procesu správania do stroja, nazýva sa to umelá inteligencia (AI).
+
+---
+## Niektoré pojmy
+
+Aj keď sa pojmy môžu zamieňať, strojové učenie (ML) je dôležitou podmnožinou umelej inteligencie. **ML sa zaoberá používaním špecializovaných algoritmov na odhaľovanie zmysluplných informácií a hľadanie skrytých vzorov z vnímaných dát na podporu procesu racionálneho rozhodovania**.
+
+---
+## AI, ML, Hlboké učenie
+
+
+
+> Diagram ukazujúci vzťahy medzi AI, ML, hlbokým učením a dátovou vedou. Infografika od [Jen Looper](https://twitter.com/jenlooper) inšpirovaná [týmto grafom](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
+
+---
+## Koncepty, ktoré pokryjeme
+
+V tomto učebnom pláne sa budeme venovať iba základným konceptom strojového učenia, ktoré musí začiatočník poznať. Pokryjeme to, čo nazývame 'klasické strojové učenie', primárne pomocou Scikit-learn, vynikajúcej knižnice, ktorú mnohí študenti používajú na učenie základov. Na pochopenie širších konceptov umelej inteligencie alebo hlbokého učenia je nevyhnutné mať silné základné znalosti strojového učenia, a preto ich chceme ponúknuť tu.
+
+---
+## V tomto kurze sa naučíte:
+
+- základné koncepty strojového učenia
+- históriu ML
+- ML a spravodlivosť
+- regresné techniky ML
+- klasifikačné techniky ML
+- techniky zhlukovania ML
+- techniky spracovania prirodzeného jazyka ML
+- techniky predpovedania časových radov ML
+- posilňovacie učenie
+- reálne aplikácie ML
+
+---
+## Čo nebudeme pokrývať
+
+- hlboké učenie
+- neurónové siete
+- AI
+
+Aby sme zabezpečili lepší zážitok z učenia, vyhneme sa zložitostiam neurónových sietí, 'hlbokého učenia' - modelovania s mnohými vrstvami pomocou neurónových sietí - a AI, o ktorých budeme diskutovať v inom učebnom pláne. Taktiež pripravujeme učebný plán dátovej vedy, ktorý sa zameria na tento aspekt širšieho poľa.
+
+---
+## Prečo študovať strojové učenie?
+
+Strojové učenie je z pohľadu systémov definované ako tvorba automatizovaných systémov, ktoré dokážu učiť skryté vzory z dát na podporu inteligentného rozhodovania.
+
+Táto motivácia je voľne inšpirovaná tým, ako ľudský mozog učí určité veci na základe dát, ktoré vníma z vonkajšieho sveta.
+
+✅ Zamyslite sa na chvíľu, prečo by firma chcela použiť stratégie strojového učenia namiesto vytvorenia pevne zakódovaného systému založeného na pravidlách.
+
+---
+## Aplikácie strojového učenia
+
+Aplikácie strojového učenia sú dnes takmer všade a sú rovnako rozšírené ako dáta, ktoré prúdia našimi spoločnosťami, generované našimi smartfónmi, pripojenými zariadeniami a inými systémami. Vzhľadom na obrovský potenciál najmodernejších algoritmov strojového učenia skúmajú výskumníci ich schopnosť riešiť multidimenzionálne a multidisciplinárne problémy reálneho života s veľkými pozitívnymi výsledkami.
+
+---
+## Príklady aplikovaného ML
+
+**Strojové učenie môžete použiť mnohými spôsobmi**:
+
+- Na predpovedanie pravdepodobnosti ochorenia na základe zdravotnej histórie alebo správ pacienta.
+- Na využitie údajov o počasí na predpovedanie meteorologických udalostí.
+- Na pochopenie sentimentu textu.
+- Na detekciu falošných správ a zastavenie šírenia propagandy.
+
+Financie, ekonómia, vedy o Zemi, vesmírny výskum, biomedicínske inžinierstvo, kognitívne vedy a dokonca aj oblasti humanitných vied adaptovali strojové učenie na riešenie náročných problémov spracovania dát vo svojich oblastiach.
+
+---
+## Záver
+
+Strojové učenie automatizuje proces objavovania vzorov tým, že nachádza zmysluplné poznatky z reálnych alebo generovaných dát. Ukázalo sa, že je mimoriadne hodnotné v podnikaní, zdravotníctve a finančných aplikáciách, medzi inými.
+
+V blízkej budúcnosti bude pochopenie základov strojového učenia nevyhnutné pre ľudí z akejkoľvek oblasti vzhľadom na jeho široké prijatie.
+
+---
+# 🚀 Výzva
+
+Nakreslite na papier alebo pomocou online aplikácie ako [Excalidraw](https://excalidraw.com/) vaše pochopenie rozdielov medzi AI, ML, hlbokým učením a dátovou vedou. Pridajte niekoľko nápadov na problémy, ktoré sú každá z týchto techník dobré pri riešení.
+
+# [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+# Prehľad a samostatné štúdium
+
+Ak sa chcete dozvedieť viac o tom, ako môžete pracovať s ML algoritmami v cloude, sledujte tento [učebný plán](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
+
+Absolvujte [učebný plán](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) o základoch ML.
+
+---
+# Zadanie
+
+[Začnite](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/1-intro-to-ML/assignment.md b/translations/sk/1-Introduction/1-intro-to-ML/assignment.md
new file mode 100644
index 00000000..63040f33
--- /dev/null
+++ b/translations/sk/1-Introduction/1-intro-to-ML/assignment.md
@@ -0,0 +1,23 @@
+
+# Začnite a rozbehnite sa
+
+## Pokyny
+
+V tomto nehodnotenom zadaní by ste si mali zopakovať Python a pripraviť si prostredie tak, aby ste mohli spúšťať notebooky.
+
+Prejdite si tento [učebný plán Pythonu](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott) a potom si nastavte systémy pomocou týchto úvodných videí:
+
+https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
+
+---
+
+**Zrieknutie sa zodpovednosti**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/2-history-of-ML/README.md b/translations/sk/1-Introduction/2-history-of-ML/README.md
new file mode 100644
index 00000000..f8926911
--- /dev/null
+++ b/translations/sk/1-Introduction/2-history-of-ML/README.md
@@ -0,0 +1,164 @@
+
+# História strojového učenia
+
+
+> Sketchnote od [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/N6wxM4wZ7V0 "ML pre začiatočníkov - História strojového učenia")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video k tejto lekcii.
+
+V tejto lekcii si prejdeme hlavné míľniky v histórii strojového učenia a umelej inteligencie.
+
+História umelej inteligencie (AI) ako odboru je úzko prepojená s históriou strojového učenia, pretože algoritmy a výpočtové pokroky, ktoré sú základom strojového učenia, prispeli k rozvoju umelej inteligencie. Je užitočné si uvedomiť, že hoci sa tieto oblasti ako samostatné disciplíny začali formovať v 50. rokoch 20. storočia, dôležité [algoritmické, štatistické, matematické, výpočtové a technické objavy](https://wikipedia.org/wiki/Timeline_of_machine_learning) predchádzali a prekrývali toto obdobie. V skutočnosti sa ľudia zaoberali týmito otázkami už [stovky rokov](https://wikipedia.org/wiki/History_of_artificial_intelligence): tento článok sa zaoberá historickými intelektuálnymi základmi myšlienky „mysliaceho stroja“.
+
+---
+## Významné objavy
+
+- 1763, 1812 [Bayesova veta](https://wikipedia.org/wiki/Bayes%27_theorem) a jej predchodcovia. Táto veta a jej aplikácie sú základom inferencie, opisujú pravdepodobnosť výskytu udalosti na základe predchádzajúcich znalostí.
+- 1805 [Metóda najmenších štvorcov](https://wikipedia.org/wiki/Least_squares) od francúzskeho matematika Adriena-Marieho Legendra. Táto metóda, o ktorej sa dozviete v našej jednotke o regresii, pomáha pri prispôsobovaní údajov.
+- 1913 [Markovove reťazce](https://wikipedia.org/wiki/Markov_chain), pomenované po ruskom matematikovi Andrejovi Markovovi, sa používajú na opis sekvencie možných udalostí na základe predchádzajúceho stavu.
+- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) je typ lineárneho klasifikátora, ktorý vynašiel americký psychológ Frank Rosenblatt a ktorý je základom pokrokov v hlbokom učení.
+
+---
+
+- 1967 [Najbližší sused](https://wikipedia.org/wiki/Nearest_neighbor) je algoritmus pôvodne navrhnutý na mapovanie trás. V kontexte strojového učenia sa používa na detekciu vzorov.
+- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) sa používa na trénovanie [dopredných neurónových sietí](https://wikipedia.org/wiki/Feedforward_neural_network).
+- 1982 [Rekurentné neurónové siete](https://wikipedia.org/wiki/Recurrent_neural_network) sú umelé neurónové siete odvodené od dopredných neurónových sietí, ktoré vytvárajú časové grafy.
+
+✅ Urobte si malý prieskum. Ktoré ďalšie dátumy považujete za kľúčové v histórii strojového učenia a umelej inteligencie?
+
+---
+## 1950: Stroje, ktoré myslia
+
+Alan Turing, skutočne výnimočný človek, ktorý bol [verejnosťou v roku 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) zvolený za najväčšieho vedca 20. storočia, je považovaný za osobu, ktorá pomohla položiť základy konceptu „stroja, ktorý dokáže myslieť“. Zaoberal sa skeptikmi a potrebou empirických dôkazov o tomto koncepte, okrem iného vytvorením [Turingovho testu](https://www.bbc.com/news/technology-18475646), ktorý preskúmate v našich lekciách o spracovaní prirodzeného jazyka.
+
+---
+## 1956: Letný výskumný projekt v Dartmouthe
+
+"Letný výskumný projekt o umelej inteligencii v Dartmouthe bol pre umelú inteligenciu ako odbor zásadnou udalosťou," a práve tu bol zavedený pojem „umelá inteligencia“ ([zdroj](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
+
+> Každý aspekt učenia alebo akejkoľvek inej črty inteligencie môže byť v princípe tak presne opísaný, že stroj môže byť vytvorený na jeho simuláciu.
+
+---
+
+Vedúci výskumník, profesor matematiky John McCarthy, dúfal, že "bude pokračovať na základe hypotézy, že každý aspekt učenia alebo akejkoľvek inej črty inteligencie môže byť v princípe tak presne opísaný, že stroj môže byť vytvorený na jeho simuláciu." Medzi účastníkmi bol aj ďalší významný predstaviteľ odboru, Marvin Minsky.
+
+Workshop je považovaný za iniciátora a podporovateľa viacerých diskusií vrátane "vzostupu symbolických metód, systémov zameraných na obmedzené oblasti (rané expertné systémy) a deduktívnych systémov oproti induktívnym systémom." ([zdroj](https://wikipedia.org/wiki/Dartmouth_workshop)).
+
+---
+## 1956 - 1974: "Zlaté roky"
+
+Od 50. rokov do polovice 70. rokov vládol optimizmus, že AI dokáže vyriešiť mnoho problémov. V roku 1967 Marvin Minsky sebavedome vyhlásil: "Do jednej generácie ... bude problém vytvorenia 'umelej inteligencie' podstatne vyriešený." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
+
+Výskum spracovania prirodzeného jazyka prekvital, vyhľadávanie bolo zdokonalené a zefektívnené a vznikol koncept „mikrosvetov“, kde sa jednoduché úlohy vykonávali pomocou jednoduchých jazykových inštrukcií.
+
+---
+
+Výskum bol dobre financovaný vládnymi agentúrami, dosiahli sa pokroky vo výpočtoch a algoritmoch a boli postavené prototypy inteligentných strojov. Niektoré z týchto strojov zahŕňajú:
+
+* [Shakey robot](https://wikipedia.org/wiki/Shakey_the_robot), ktorý sa dokázal pohybovať a rozhodovať, ako vykonávať úlohy „inteligentne“.
+
+ 
+ > Shakey v roku 1972
+
+---
+
+* Eliza, raný „chatterbot“, dokázala komunikovať s ľuďmi a pôsobiť ako primitívny „terapeut“. O Elize sa dozviete viac v lekciách o spracovaní prirodzeného jazyka.
+
+ 
+ > Verzia Elizy, chatbot
+
+---
+
+* „Blocks world“ bol príklad mikrosveta, kde sa mohli bloky stohovať a triediť a mohli sa testovať experimenty v učení strojov rozhodovať. Pokroky dosiahnuté s knižnicami ako [SHRDLU](https://wikipedia.org/wiki/SHRDLU) pomohli posunúť spracovanie jazyka vpred.
+
+ [](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world so SHRDLU")
+
+ > 🎥 Kliknite na obrázok vyššie pre video: Blocks world so SHRDLU
+
+---
+## 1974 - 1980: "Zima AI"
+
+Do polovice 70. rokov sa ukázalo, že zložitosť vytvárania „inteligentných strojov“ bola podcenená a jej sľuby, vzhľadom na dostupný výpočtový výkon, boli prehnané. Financovanie vyschlo a dôvera v odbor sa spomalila. Niektoré problémy, ktoré ovplyvnili dôveru, zahŕňali:
+---
+- **Obmedzenia**. Výpočtový výkon bol príliš obmedzený.
+- **Kombinatorická explózia**. Počet parametrov potrebných na trénovanie rástol exponenciálne, keď sa od počítačov žiadalo viac, bez paralelného vývoja výpočtového výkonu a schopností.
+- **Nedostatok údajov**. Nedostatok údajov bránil procesu testovania, vývoja a zdokonaľovania algoritmov.
+- **Pýtame sa správne otázky?**. Samotné otázky, ktoré boli kladené, sa začali spochybňovať. Výskumníci čelili kritike svojich prístupov:
+ - Turingove testy boli spochybnené napríklad teóriou „čínskej miestnosti“, ktorá tvrdila, že „naprogramovanie digitálneho počítača môže vytvoriť zdanie porozumenia jazyka, ale nemôže vytvoriť skutočné porozumenie.“ ([zdroj](https://plato.stanford.edu/entries/chinese-room/))
+ - Etika zavádzania umelej inteligencie, ako napríklad „terapeuta“ ELIZA, do spoločnosti bola spochybnená.
+
+---
+
+Zároveň sa začali formovať rôzne školy myslenia v oblasti umelej inteligencie. Vznikla dichotómia medzi prístupmi ["scruffy" a "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies). _Scruffy_ laboratóriá dolaďovali programy, kým nedosiahli požadované výsledky. _Neat_ laboratóriá sa zameriavali na logiku a formálne riešenie problémov. ELIZA a SHRDLU boli známe _scruffy_ systémy. V 80. rokoch, keď vznikol dopyt po reprodukovateľnosti systémov strojového učenia, sa _neat_ prístup postupne dostal do popredia, pretože jeho výsledky sú vysvetliteľnejšie.
+
+---
+## 1980s Expertné systémy
+
+Ako odbor rástol, jeho prínos pre podnikanie sa stal zreteľnejším, a v 80. rokoch sa rozšírili „expertné systémy“. „Expertné systémy patrili medzi prvé skutočne úspešné formy softvéru umelej inteligencie (AI).“ ([zdroj](https://wikipedia.org/wiki/Expert_system)).
+
+Tento typ systému je vlastne _hybridný_, pozostávajúci čiastočne z pravidlového enginu definujúceho obchodné požiadavky a inferenčného enginu, ktorý využíval pravidlový systém na odvodenie nových faktov.
+
+Toto obdobie tiež zaznamenalo rastúcu pozornosť venovanú neurónovým sieťam.
+
+---
+## 1987 - 1993: AI 'Chill'
+
+Rozšírenie špecializovaného hardvéru expertných systémov malo nešťastný efekt, že sa stalo príliš špecializovaným. Vzostup osobných počítačov tiež konkuroval týmto veľkým, špecializovaným, centralizovaným systémom. Začala sa demokratizácia výpočtovej techniky, ktorá nakoniec pripravila cestu pre moderný výbuch veľkých dát.
+
+---
+## 1993 - 2011
+
+Toto obdobie prinieslo novú éru pre strojové učenie a umelú inteligenciu, aby mohli vyriešiť niektoré problémy spôsobené nedostatkom údajov a výpočtového výkonu v minulosti. Množstvo údajov začalo rýchlo narastať a stávať sa dostupnejším, či už v dobrom alebo zlom, najmä s príchodom smartfónov okolo roku 2007. Výpočtový výkon exponenciálne rástol a algoritmy sa vyvíjali spolu s ním. Odbor začal dosahovať zrelosť, keď sa voľné dni minulosti začali kryštalizovať do skutočnej disciplíny.
+
+---
+## Dnes
+
+Dnes strojové učenie a umelá inteligencia zasahujú takmer do každej časti nášho života. Toto obdobie si vyžaduje dôkladné pochopenie rizík a potenciálnych dopadov týchto algoritmov na ľudské životy. Ako uviedol Brad Smith z Microsoftu: „Informačné technológie otvárajú otázky, ktoré sa dotýkajú samotného jadra ochrany základných ľudských práv, ako je súkromie a sloboda prejavu. Tieto otázky zvyšujú zodpovednosť technologických spoločností, ktoré tieto produkty vytvárajú. Podľa nás si tiež vyžadujú premyslenú vládnu reguláciu a vývoj noriem o prijateľnom používaní“ ([zdroj](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
+
+---
+
+Zostáva vidieť, čo prinesie budúcnosť, ale je dôležité pochopiť tieto počítačové systémy a softvér a algoritmy, ktoré používajú. Dúfame, že tento kurz vám pomôže získať lepšie pochopenie, aby ste si mohli vytvoriť vlastný názor.
+
+[](https://www.youtube.com/watch?v=mTtDfKgLm54 "História hlbokého učenia")
+> 🎥 Kliknite na obrázok vyššie pre video: Yann LeCun hovorí o histórii hlbokého učenia v tejto prednáške
+
+---
+## 🚀Výzva
+
+Ponorte sa do jedného z týchto historických momentov a zistite viac o ľuďoch, ktorí za nimi stoja. Sú to fascinujúce osobnosti a žiadny vedecký objav nevznikol v kultúrnom vákuu. Čo objavíte?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+## Prehľad a samoštúdium
+
+Tu sú položky na sledovanie a počúvanie:
+
+[Tento podcast, kde Amy Boyd diskutuje o vývoji umelej inteligencie](http://runasradio.com/Shows/Show/739)
+
+[](https://www.youtube.com/watch?v=EJt3_bFYKss "História AI od Amy Boyd")
+
+---
+
+## Zadanie
+
+[Vytvorte časovú os](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/2-history-of-ML/assignment.md b/translations/sk/1-Introduction/2-history-of-ML/assignment.md
new file mode 100644
index 00000000..6e30bc6d
--- /dev/null
+++ b/translations/sk/1-Introduction/2-history-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Vytvorte časovú os
+
+## Pokyny
+
+Pomocou [tohto repozitára](https://github.com/Digital-Humanities-Toolkit/timeline-builder) vytvorte časovú os nejakej časti histórie algoritmov, matematiky, štatistiky, AI alebo ML, alebo ich kombinácie. Môžete sa zamerať na jednu osobu, jednu myšlienku alebo dlhé časové obdobie vývoja. Nezabudnite pridať multimediálne prvky.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ----------------------------------------------- | -------------------------------------- | --------------------------------------------------------------- |
+| | Nasadená časová os je prezentovaná ako GitHub stránka | Kód je neúplný a nie je nasadený | Časová os je neúplná, nedostatočne preskúmaná a nie je nasadená |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/3-fairness/README.md b/translations/sk/1-Introduction/3-fairness/README.md
new file mode 100644
index 00000000..19495d94
--- /dev/null
+++ b/translations/sk/1-Introduction/3-fairness/README.md
@@ -0,0 +1,149 @@
+
+# Budovanie riešení strojového učenia s dôrazom na zodpovednú AI
+
+
+> Sketchnote od [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+## Úvod
+
+V tomto kurze začnete objavovať, ako strojové učenie ovplyvňuje naše každodenné životy. Už teraz sú systémy a modely zapojené do rozhodovacích úloh, ako sú diagnostika v zdravotníctve, schvaľovanie úverov alebo odhaľovanie podvodov. Preto je dôležité, aby tieto modely fungovali spoľahlivo a poskytovali dôveryhodné výsledky. Rovnako ako akákoľvek softvérová aplikácia, aj systémy AI môžu zlyhať alebo mať nežiaduci výsledok. Preto je nevyhnutné rozumieť a vedieť vysvetliť správanie modelu AI.
+
+Predstavte si, čo sa môže stať, keď údaje, ktoré používate na vytvorenie týchto modelov, neobsahujú určité demografické skupiny, ako sú rasa, pohlavie, politické názory, náboženstvo, alebo ich neprimerane zastupujú. Čo ak je výstup modelu interpretovaný tak, že uprednostňuje určitú demografickú skupinu? Aké sú dôsledky pre aplikáciu? A čo sa stane, keď model má nepriaznivý výsledok a je škodlivý pre ľudí? Kto je zodpovedný za správanie systému AI? Toto sú niektoré otázky, ktoré budeme skúmať v tomto kurze.
+
+V tejto lekcii sa naučíte:
+
+- Zvýšiť povedomie o dôležitosti spravodlivosti v strojovom učení a o škodách súvisiacich so spravodlivosťou.
+- Oboznámiť sa s praxou skúmania odchýlok a neobvyklých scenárov na zabezpečenie spoľahlivosti a bezpečnosti.
+- Získať pochopenie potreby posilniť všetkých prostredníctvom navrhovania inkluzívnych systémov.
+- Preskúmať, aké dôležité je chrániť súkromie a bezpečnosť údajov a ľudí.
+- Vidieť význam prístupu „sklenená krabica“ na vysvetlenie správania modelov AI.
+- Byť si vedomý toho, ako je zodpovednosť kľúčová pre budovanie dôvery v systémy AI.
+
+## Predpoklad
+
+Ako predpoklad si prosím preštudujte „Zásady zodpovednej AI“ v rámci učebnej cesty a pozrite si nasledujúce video na túto tému:
+
+Viac o zodpovednej AI sa dozviete na tejto [učebnej ceste](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott).
+
+[](https://youtu.be/dnC8-uUZXSc "Prístup Microsoftu k zodpovednej AI")
+
+> 🎥 Kliknite na obrázok vyššie pre video: Prístup Microsoftu k zodpovednej AI
+
+## Spravodlivosť
+
+Systémy AI by mali zaobchádzať so všetkými spravodlivo a vyhnúť sa tomu, aby ovplyvňovali podobné skupiny ľudí rôznymi spôsobmi. Napríklad, keď systémy AI poskytujú odporúčania týkajúce sa lekárskej liečby, žiadostí o úver alebo zamestnania, mali by robiť rovnaké odporúčania všetkým s podobnými symptómami, finančnými okolnosťami alebo odbornými kvalifikáciami. Každý z nás ako človek nesie vrodené predsudky, ktoré ovplyvňujú naše rozhodnutia a činy. Tieto predsudky môžu byť zjavné v údajoch, ktoré používame na trénovanie systémov AI. Takáto manipulácia sa niekedy môže stať neúmyselne. Často je ťažké vedome rozpoznať, kedy do údajov zavádzame predsudky.
+
+**„Nespravodlivosť“** zahŕňa negatívne dopady alebo „škody“ na skupinu ľudí, ako sú tí definovaní podľa rasy, pohlavia, veku alebo zdravotného postihnutia. Hlavné škody súvisiace so spravodlivosťou možno klasifikovať ako:
+
+- **Alokácia**, ak je napríklad uprednostnené jedno pohlavie alebo etnická skupina pred druhou.
+- **Kvalita služby**. Ak trénujete údaje pre jeden konkrétny scenár, ale realita je oveľa zložitejšia, vedie to k zle fungujúcej službe. Napríklad dávkovač mydla, ktorý nedokázal rozpoznať ľudí s tmavou pokožkou. [Referencie](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773)
+- **Očierňovanie**. Nespravodlivé kritizovanie a označovanie niečoho alebo niekoho. Napríklad technológia označovania obrázkov neslávne označila obrázky ľudí s tmavou pokožkou ako gorily.
+- **Nadmerné alebo nedostatočné zastúpenie**. Myšlienka, že určitá skupina nie je viditeľná v určitom povolaní, a akákoľvek služba alebo funkcia, ktorá to naďalej podporuje, prispieva k škode.
+- **Stereotypizácia**. Priraďovanie preddefinovaných atribútov určitej skupine. Napríklad systém prekladu medzi angličtinou a turečtinou môže mať nepresnosti kvôli slovám so stereotypnými asociáciami k pohlaviu.
+
+
+> preklad do turečtiny
+
+
+> preklad späť do angličtiny
+
+Pri navrhovaní a testovaní systémov AI musíme zabezpečiť, že AI je spravodlivá a nie je naprogramovaná na prijímanie zaujatých alebo diskriminačných rozhodnutí, ktoré sú zakázané aj pre ľudí. Zaručenie spravodlivosti v AI a strojovom učení zostáva komplexnou sociotechnickou výzvou.
+
+### Spoľahlivosť a bezpečnosť
+
+Na budovanie dôvery musia byť systémy AI spoľahlivé, bezpečné a konzistentné za normálnych aj neočakávaných podmienok. Je dôležité vedieť, ako sa systémy AI budú správať v rôznych situáciách, najmä keď ide o odchýlky. Pri budovaní riešení AI je potrebné venovať značnú pozornosť tomu, ako zvládnuť širokú škálu okolností, s ktorými sa riešenia AI môžu stretnúť. Napríklad autonómne auto musí klásť bezpečnosť ľudí na prvé miesto. Výsledkom je, že AI poháňajúca auto musí zohľadniť všetky možné scenáre, s ktorými sa auto môže stretnúť, ako sú noc, búrky alebo snehové búrky, deti bežiace cez ulicu, domáce zvieratá, cestné práce atď. To, ako dobre systém AI dokáže spoľahlivo a bezpečne zvládnuť širokú škálu podmienok, odráža úroveň predvídavosti, ktorú dátový vedec alebo vývojár AI zohľadnil počas návrhu alebo testovania systému.
+
+> [🎥 Kliknite sem pre video: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
+
+### Inkluzívnosť
+
+Systémy AI by mali byť navrhnuté tak, aby zapájali a posilňovali každého. Pri navrhovaní a implementácii systémov AI dátoví vedci a vývojári AI identifikujú a riešia potenciálne bariéry v systéme, ktoré by mohli neúmyselne vylúčiť ľudí. Napríklad na svete je 1 miliarda ľudí so zdravotným postihnutím. Vďaka pokroku v AI môžu ľahšie pristupovať k širokému spektru informácií a príležitostí vo svojom každodennom živote. Riešením bariér sa vytvárajú príležitosti na inovácie a vývoj produktov AI s lepšími skúsenosťami, ktoré prospievajú všetkým.
+
+> [🎥 Kliknite sem pre video: inkluzívnosť v AI](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
+
+### Bezpečnosť a súkromie
+
+Systémy AI by mali byť bezpečné a rešpektovať súkromie ľudí. Ľudia majú menšiu dôveru v systémy, ktoré ohrozujú ich súkromie, informácie alebo životy. Pri trénovaní modelov strojového učenia sa spoliehame na údaje, aby sme dosiahli čo najlepšie výsledky. Pri tom je potrebné zvážiť pôvod údajov a ich integritu. Napríklad, boli údaje poskytnuté používateľom alebo verejne dostupné? Ďalej, pri práci s údajmi je nevyhnutné vyvíjať systémy AI, ktoré dokážu chrániť dôverné informácie a odolávať útokom. Ako sa AI stáva rozšírenejšou, ochrana súkromia a zabezpečenie dôležitých osobných a obchodných informácií sa stáva čoraz kritickejšou a zložitejšou. Problémy so súkromím a bezpečnosťou údajov si vyžadujú obzvlášť dôkladnú pozornosť pri AI, pretože prístup k údajom je nevyhnutný na to, aby systémy AI mohli robiť presné a informované predpovede a rozhodnutia o ľuďoch.
+
+> [🎥 Kliknite sem pre video: bezpečnosť v AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Ako odvetvie sme dosiahli významný pokrok v oblasti súkromia a bezpečnosti, výrazne podporený reguláciami, ako je GDPR (Všeobecné nariadenie o ochrane údajov).
+- Napriek tomu musíme pri systémoch AI uznať napätie medzi potrebou viac osobných údajov na zlepšenie systémov a ochranou súkromia.
+- Rovnako ako pri vzniku pripojených počítačov s internetom, zaznamenávame aj výrazný nárast počtu bezpečnostných problémov súvisiacich s AI.
+- Zároveň sme videli, že AI sa používa na zlepšenie bezpečnosti. Napríklad väčšina moderných antivírusových skenerov je dnes poháňaná heuristikou AI.
+- Musíme zabezpečiť, aby naše procesy dátovej vedy harmonicky ladili s najnovšími praktikami v oblasti súkromia a bezpečnosti.
+
+### Transparentnosť
+
+Systémy AI by mali byť zrozumiteľné. Kľúčovou súčasťou transparentnosti je vysvetlenie správania systémov AI a ich komponentov. Zlepšenie porozumenia systémom AI si vyžaduje, aby zainteresované strany pochopili, ako a prečo fungujú, aby mohli identifikovať potenciálne problémy s výkonom, obavy o bezpečnosť a súkromie, predsudky, vylučujúce praktiky alebo neúmyselné výsledky. Veríme tiež, že tí, ktorí používajú systémy AI, by mali byť úprimní a otvorení o tom, kedy, prečo a ako sa rozhodnú ich nasadiť. Rovnako ako o obmedzeniach systémov, ktoré používajú. Napríklad, ak banka používa systém AI na podporu svojich rozhodnutí o poskytovaní úverov, je dôležité preskúmať výsledky a pochopiť, ktoré údaje ovplyvňujú odporúčania systému. Vlády začínajú regulovať AI naprieč odvetviami, takže dátoví vedci a organizácie musia vysvetliť, či systém AI spĺňa regulačné požiadavky, najmä keď dôjde k nežiaducemu výsledku.
+
+> [🎥 Kliknite sem pre video: transparentnosť v AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Keďže systémy AI sú veľmi komplexné, je ťažké pochopiť, ako fungujú a interpretovať výsledky.
+- Tento nedostatok porozumenia ovplyvňuje spôsob, akým sú tieto systémy spravované, prevádzkované a dokumentované.
+- Tento nedostatok porozumenia ešte dôležitejšie ovplyvňuje rozhodnutia prijaté na základe výsledkov, ktoré tieto systémy produkujú.
+
+### Zodpovednosť
+
+Ľudia, ktorí navrhujú a nasadzujú systémy AI, musia byť zodpovední za to, ako ich systémy fungujú. Potreba zodpovednosti je obzvlášť dôležitá pri technológiách citlivého použitia, ako je rozpoznávanie tváre. V poslednej dobe rastie dopyt po technológii rozpoznávania tváre, najmä zo strany orgánov činných v trestnom konaní, ktoré vidia potenciál tejto technológie v aplikáciách, ako je hľadanie nezvestných detí. Tieto technológie však môžu byť potenciálne použité vládou na ohrozenie základných slobôd občanov, napríklad umožnením nepretržitého sledovania konkrétnych jednotlivcov. Preto musia byť dátoví vedci a organizácie zodpovední za to, ako ich systém AI ovplyvňuje jednotlivcov alebo spoločnosť.
+
+[](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Prístup Microsoftu k zodpovednej AI")
+
+> 🎥 Kliknite na obrázok vyššie pre video: Varovania pred masovým sledovaním prostredníctvom rozpoznávania tváre
+
+Nakoniec jednou z najväčších otázok našej generácie, ako prvej generácie, ktorá prináša AI do spoločnosti, je, ako zabezpečiť, aby počítače zostali zodpovedné voči ľuďom a ako zabezpečiť, aby ľudia, ktorí navrhujú počítače, zostali zodpovední voči všetkým ostatným.
+
+## Hodnotenie dopadu
+
+Pred trénovaním modelu strojového učenia je dôležité vykonať hodnotenie dopadu, aby ste pochopili účel systému AI; aké je jeho zamýšľané použitie; kde bude nasadený; a kto bude so systémom interagovať. Tieto informácie sú užitočné pre recenzentov alebo testerov, ktorí hodnotia systém, aby vedeli, aké faktory treba zohľadniť pri identifikácii potenciálnych rizík a očakávaných dôsledkov.
+
+Nasledujú oblasti zamerania pri vykonávaní hodnotenia dopadu:
+
+* **Nepriaznivý dopad na jednotlivcov**. Byť si vedomý akýchkoľvek obmedzení alebo požiadaviek, nepodporovaného použitia alebo akýchkoľvek známych obmedzení, ktoré bránia výkonu systému, je zásadné na zabezpečenie toho, aby systém nebol používaný spôsobom, ktorý by mohol spôsobiť škodu jednotlivcom.
+* **Požiadavky na údaje**. Získanie pochopenia toho, ako a kde systém bude používať údaje, umožňuje recenzentom preskúmať akékoľvek požiadavky na údaje, na ktoré by ste mali byť pozorní (napr. GDPR alebo HIPPA regulácie údajov). Okrem toho preskúmajte, či je zdroj alebo množstvo údajov dostatočné na trénovanie.
+* **Zhrnutie dopadu**. Zozbierajte zoznam potenciálnych škôd, ktoré by mohli vzniknúť z používania systému. Počas životného cyklu ML preskúmajte, či sú identifikované problémy zmiernené alebo riešené.
+* **Platné ciele** pre každú zo šiestich základných zásad. Posúďte, či sú ciele z každej zásady splnené a či existujú nejaké medzery.
+
+## Ladenie so zodpovednou AI
+
+Podobne ako ladenie softvérovej aplikácie, ladenie systému AI je nevyhnutný proces identifikácie a riešenia problémov v systéme. Existuje mnoho faktorov, ktoré môžu ovplyvniť, že model nefunguje podľa očakávaní alebo zodpovedne. Väčšina tradičných metrík výkonu modelu sú kvantitatívne agregáty výkonu modelu, ktoré nie sú dostatočné
+Pozrite si tento workshop, aby ste sa hlbšie ponorili do tém:
+
+- Na ceste k zodpovednej AI: Uplatnenie princípov v praxi od Besmiry Nushi, Mehrnoosh Sameki a Amita Sharmu
+
+[](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: Open-source framework na budovanie zodpovednej AI")
+
+> 🎥 Kliknite na obrázok vyššie pre video: RAI Toolbox: Open-source framework na budovanie zodpovednej AI od Besmiry Nushi, Mehrnoosh Sameki a Amita Sharmu
+
+Prečítajte si tiež:
+
+- Microsoftov zdrojový centrum pre zodpovednú AI: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Microsoftova výskumná skupina FATE: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+RAI Toolbox:
+
+- [GitHub repozitár Responsible AI Toolbox](https://github.com/microsoft/responsible-ai-toolbox)
+
+Prečítajte si o nástrojoch Azure Machine Learning na zabezpečenie spravodlivosti:
+
+- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott)
+
+## Zadanie
+
+[Preskúmajte RAI Toolbox](assignment.md)
+
+---
+
+**Zrieknutie sa zodpovednosti**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/3-fairness/assignment.md b/translations/sk/1-Introduction/3-fairness/assignment.md
new file mode 100644
index 00000000..42fff1bf
--- /dev/null
+++ b/translations/sk/1-Introduction/3-fairness/assignment.md
@@ -0,0 +1,25 @@
+
+# Preskúmajte nástroje pre zodpovednú AI
+
+## Pokyny
+
+V tejto lekcii ste sa dozvedeli o nástrojoch pre zodpovednú AI, "open-source, komunitne riadenom projekte, ktorý pomáha dátovým vedcom analyzovať a zlepšovať AI systémy." Pre túto úlohu preskúmajte jeden z [notebookov](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) RAI Toolbox a svoje zistenia prezentujte v práci alebo prezentácii.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ---------- | ---------- | ------------------ |
+| | Je predložená práca alebo powerpointová prezentácia, ktorá diskutuje systémy Fairlearn, spustený notebook a závery vyplývajúce z jeho spustenia | Je predložená práca bez záverov | Nie je predložená žiadna práca |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/4-techniques-of-ML/README.md b/translations/sk/1-Introduction/4-techniques-of-ML/README.md
new file mode 100644
index 00000000..6251792a
--- /dev/null
+++ b/translations/sk/1-Introduction/4-techniques-of-ML/README.md
@@ -0,0 +1,132 @@
+
+# Techniky strojového učenia
+
+Proces vytvárania, používania a udržiavania modelov strojového učenia a dát, ktoré používajú, je veľmi odlišný od mnohých iných vývojových pracovných postupov. V tejto lekcii tento proces objasníme a načrtneme hlavné techniky, ktoré potrebujete poznať. Naučíte sa:
+
+- Pochopiť procesy, ktoré sú základom strojového učenia na vysokej úrovni.
+- Preskúmať základné koncepty, ako sú „modely“, „predikcie“ a „tréningové dáta“.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+[](https://youtu.be/4NGM0U2ZSHU "ML pre začiatočníkov - Techniky strojového učenia")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video, ktoré prechádza touto lekciou.
+
+## Úvod
+
+Na vysokej úrovni sa remeslo vytvárania procesov strojového učenia (ML) skladá z niekoľkých krokov:
+
+1. **Určte otázku**. Väčšina procesov ML začína položením otázky, na ktorú nemožno odpovedať jednoduchým podmieneným programom alebo pravidlovo založeným enginom. Tieto otázky sa často týkajú predikcií na základe zbierky dát.
+2. **Zbierajte a pripravte dáta**. Aby ste mohli odpovedať na svoju otázku, potrebujete dáta. Kvalita a niekedy aj množstvo vašich dát určí, ako dobre dokážete odpovedať na svoju pôvodnú otázku. Vizualizácia dát je dôležitým aspektom tejto fázy. Táto fáza zahŕňa aj rozdelenie dát na tréningovú a testovaciu skupinu na vytvorenie modelu.
+3. **Vyberte metódu tréningu**. V závislosti od vašej otázky a povahy vašich dát musíte zvoliť spôsob, akým chcete model trénovať, aby čo najlepšie odrážal vaše dáta a robil presné predikcie. Táto časť procesu ML vyžaduje špecifické odborné znalosti a často značné množstvo experimentovania.
+4. **Trénujte model**. Pomocou vašich tréningových dát použijete rôzne algoritmy na trénovanie modelu, aby rozpoznal vzory v dátach. Model môže využívať interné váhy, ktoré je možné upraviť tak, aby uprednostňoval určité časti dát pred inými, aby vytvoril lepší model.
+5. **Vyhodnoťte model**. Použijete dáta, ktoré model nikdy predtým nevidel (vaše testovacie dáta) z vašej zbierky, aby ste zistili, ako model funguje.
+6. **Ladenie parametrov**. Na základe výkonu vášho modelu môžete proces zopakovať s použitím rôznych parametrov alebo premenných, ktoré ovládajú správanie algoritmov použitých na trénovanie modelu.
+7. **Predikujte**. Použite nové vstupy na testovanie presnosti vášho modelu.
+
+## Akú otázku položiť
+
+Počítače sú obzvlášť zručné v objavovaní skrytých vzorov v dátach. Táto schopnosť je veľmi užitočná pre výskumníkov, ktorí majú otázky o danej oblasti, na ktoré nemožno ľahko odpovedať vytvorením pravidlovo založeného enginu. Pri aktuárskej úlohe, napríklad, by dátový vedec mohol vytvoriť ručne vytvorené pravidlá týkajúce sa úmrtnosti fajčiarov vs. nefajčiarov.
+
+Keď sa však do rovnice pridá mnoho ďalších premenných, model ML môže byť efektívnejší pri predikcii budúcich úmrtnostných mier na základe minulých zdravotných záznamov. Pozitívnejším príkladom môže byť predpovedanie počasia na mesiac apríl na danom mieste na základe dát, ktoré zahŕňajú zemepisnú šírku, dĺžku, klimatické zmeny, blízkosť k oceánu, vzory prúdenia vzduchu a ďalšie.
+
+✅ Táto [prezentácia](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) o modeloch počasia ponúka historický pohľad na používanie ML v analýze počasia.
+
+## Úlohy pred vytvorením modelu
+
+Predtým, než začnete vytvárať svoj model, musíte dokončiť niekoľko úloh. Aby ste mohli otestovať svoju otázku a vytvoriť hypotézu na základe predikcií modelu, musíte identifikovať a nakonfigurovať niekoľko prvkov.
+
+### Dáta
+
+Aby ste mohli odpovedať na svoju otázku s akoukoľvek istotou, potrebujete dostatočné množstvo dát správneho typu. V tomto bode musíte urobiť dve veci:
+
+- **Zbierajte dáta**. Majte na pamäti predchádzajúcu lekciu o spravodlivosti v analýze dát a zbierajte svoje dáta opatrne. Buďte si vedomí zdrojov týchto dát, akýchkoľvek inherentných predsudkov, ktoré môžu obsahovať, a dokumentujte ich pôvod.
+- **Pripravte dáta**. Proces prípravy dát zahŕňa niekoľko krokov. Možno budete musieť dáta zoskupiť a normalizovať, ak pochádzajú z rôznych zdrojov. Kvalitu a množstvo dát môžete zlepšiť rôznymi metódami, ako je konverzia reťazcov na čísla (ako to robíme v [Clustering](../../5-Clustering/1-Visualize/README.md)). Môžete tiež generovať nové dáta na základe pôvodných (ako to robíme v [Classification](../../4-Classification/1-Introduction/README.md)). Dáta môžete čistiť a upravovať (ako to robíme pred lekciou [Web App](../../3-Web-App/README.md)). Nakoniec ich možno budete musieť náhodne usporiadať a premiešať, v závislosti od vašich tréningových techník.
+
+✅ Po zozbieraní a spracovaní vašich dát si chvíľu overte, či ich štruktúra umožní odpovedať na vašu zamýšľanú otázku. Môže sa stať, že dáta nebudú dobre fungovať pri vašej úlohe, ako zistíme v našich lekciách [Clustering](../../5-Clustering/1-Visualize/README.md)!
+
+### Vlastnosti a cieľ
+
+[Vlastnosť](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) je merateľná vlastnosť vašich dát. V mnohých datasetoch je vyjadrená ako nadpis stĺpca, napríklad „dátum“, „veľkosť“ alebo „farba“. Vaša premenná vlastnosti, zvyčajne reprezentovaná ako `X` v kóde, predstavuje vstupnú premennú, ktorá sa použije na trénovanie modelu.
+
+Cieľ je vec, ktorú sa snažíte predpovedať. Cieľ, zvyčajne reprezentovaný ako `y` v kóde, predstavuje odpoveď na otázku, ktorú sa snažíte položiť vašim dátam: v decembri, aká **farba** tekvíc bude najlacnejšia? V San Franciscu, ktoré štvrte budú mať najlepšiu cenu **nehnuteľností**? Niekedy sa cieľ označuje aj ako atribút označenia.
+
+### Výber premenných vlastností
+
+🎓 **Výber vlastností a extrakcia vlastností** Ako viete, ktorú premennú si vybrať pri vytváraní modelu? Pravdepodobne prejdete procesom výberu vlastností alebo extrakcie vlastností, aby ste si vybrali správne premenné pre najvýkonnejší model. Nie sú to však rovnaké veci: „Extrakcia vlastností vytvára nové vlastnosti z funkcií pôvodných vlastností, zatiaľ čo výber vlastností vracia podmnožinu vlastností.“ ([zdroj](https://wikipedia.org/wiki/Feature_selection))
+
+### Vizualizácia dát
+
+Dôležitým aspektom nástrojov dátového vedca je schopnosť vizualizovať dáta pomocou niekoľkých vynikajúcich knižníc, ako sú Seaborn alebo MatPlotLib. Vizualizácia dát vám môže umožniť odhaliť skryté korelácie, ktoré môžete využiť. Vaše vizualizácie vám môžu tiež pomôcť odhaliť predsudky alebo nevyvážené dáta (ako zistíme v [Classification](../../4-Classification/2-Classifiers-1/README.md)).
+
+### Rozdelenie datasetu
+
+Pred tréningom musíte rozdeliť svoj dataset na dve alebo viac častí nerovnakej veľkosti, ktoré stále dobre reprezentujú dáta.
+
+- **Tréning**. Táto časť datasetu sa prispôsobí vášmu modelu, aby ho trénovala. Táto sada tvorí väčšinu pôvodného datasetu.
+- **Testovanie**. Testovací dataset je nezávislá skupina dát, často získaná z pôvodných dát, ktorú použijete na potvrdenie výkonu vytvoreného modelu.
+- **Validácia**. Validačná sada je menšia nezávislá skupina príkladov, ktorú použijete na ladenie hyperparametrov modelu alebo jeho architektúry, aby ste model zlepšili. V závislosti od veľkosti vašich dát a otázky, ktorú kladiete, možno nebudete musieť vytvoriť túto tretiu sadu (ako poznamenávame v [Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md)).
+
+## Vytváranie modelu
+
+Pomocou vašich tréningových dát je vaším cieľom vytvoriť model, alebo štatistickú reprezentáciu vašich dát, pomocou rôznych algoritmov na **tréning**. Tréning modelu ho vystavuje dátam a umožňuje mu robiť predpoklady o vnímaných vzoroch, ktoré objaví, overí a prijme alebo odmietne.
+
+### Rozhodnite sa pre metódu tréningu
+
+V závislosti od vašej otázky a povahy vašich dát si vyberiete metódu na ich tréning. Prechádzajúc [dokumentáciou Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - ktorú používame v tomto kurze - môžete preskúmať mnoho spôsobov, ako trénovať model. V závislosti od vašich skúseností možno budete musieť vyskúšať niekoľko rôznych metód, aby ste vytvorili najlepší model. Pravdepodobne prejdete procesom, pri ktorom dátoví vedci hodnotia výkon modelu tým, že mu poskytnú nevidené dáta, kontrolujú presnosť, predsudky a ďalšie problémy znižujúce kvalitu a vyberajú najvhodnejšiu metódu tréningu pre danú úlohu.
+
+### Trénujte model
+
+S vašimi tréningovými dátami ste pripravení „prispôsobiť“ ich na vytvorenie modelu. Všimnete si, že v mnohých knižniciach ML nájdete kód „model.fit“ - práve v tomto momente pošlete svoju premennú vlastnosti ako pole hodnôt (zvyčajne „X“) a cieľovú premennú (zvyčajne „y“).
+
+### Vyhodnoťte model
+
+Keď je proces tréningu dokončený (tréning veľkého modelu môže trvať mnoho iterácií alebo „epoch“), budete môcť vyhodnotiť kvalitu modelu pomocou testovacích dát na posúdenie jeho výkonu. Tieto dáta sú podmnožinou pôvodných dát, ktoré model predtým neanalyzoval. Môžete vytlačiť tabuľku metrík o kvalite vášho modelu.
+
+🎓 **Prispôsobenie modelu**
+
+V kontexte strojového učenia prispôsobenie modelu odkazuje na presnosť základnej funkcie modelu, keď sa pokúša analyzovať dáta, s ktorými nie je oboznámený.
+
+🎓 **Nedostatočné prispôsobenie** a **nadmerné prispôsobenie** sú bežné problémy, ktoré zhoršujú kvalitu modelu, keď model buď nevyhovuje dostatočne dobre, alebo príliš dobre. To spôsobuje, že model robí predikcie buď príliš úzko alebo príliš voľne spojené s jeho tréningovými dátami. Nadmerne prispôsobený model predpovedá tréningové dáta príliš dobre, pretože sa naučil detaily a šum dát príliš dobre. Nedostatočne prispôsobený model nie je presný, pretože nedokáže presne analyzovať ani svoje tréningové dáta, ani dáta, ktoré ešte „nevidel“.
+
+
+> Infografika od [Jen Looper](https://twitter.com/jenlooper)
+
+## Ladenie parametrov
+
+Keď je váš počiatočný tréning dokončený, pozorujte kvalitu modelu a zvážte jeho zlepšenie úpravou jeho „hyperparametrov“. Prečítajte si viac o tomto procese [v dokumentácii](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+
+## Predikcia
+
+Toto je moment, keď môžete použiť úplne nové dáta na testovanie presnosti vášho modelu. V „aplikovanom“ nastavení ML, kde vytvárate webové aktíva na použitie modelu v produkcii, tento proces môže zahŕňať zhromažďovanie vstupov od používateľa (napríklad stlačenie tlačidla), aby sa nastavila premenná a poslala modelu na inferenciu alebo vyhodnotenie.
+
+V týchto lekciách objavíte, ako používať tieto kroky na prípravu, vytváranie, testovanie, vyhodnocovanie a predikciu - všetky gestá dátového vedca a viac, ako postupujete na svojej ceste stať sa „full stack“ ML inžinierom.
+
+---
+
+## 🚀Výzva
+
+Nakreslite diagram toku, ktorý odráža kroky praktika ML. Kde sa momentálne vidíte v procese? Kde predpokladáte, že narazíte na ťažkosti? Čo sa vám zdá jednoduché?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Vyhľadajte online rozhovory s dátovými vedcami, ktorí diskutujú o svojej každodennej práci. Tu je [jeden](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+
+## Zadanie
+
+[Urobte rozhovor s dátovým vedcom](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/4-techniques-of-ML/assignment.md b/translations/sk/1-Introduction/4-techniques-of-ML/assignment.md
new file mode 100644
index 00000000..33c8dcba
--- /dev/null
+++ b/translations/sk/1-Introduction/4-techniques-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Rozhovor s dátovým vedcom
+
+## Pokyny
+
+Vo vašej firme, v používateľskej skupine, alebo medzi vašimi priateľmi či spolužiakmi, sa porozprávajte s niekým, kto pracuje profesionálne ako dátový vedec. Napíšte krátky článok (500 slov) o ich každodenných povinnostiach. Sú špecialisti, alebo pracujú ako „full stack“?
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------- | --------------------- |
+| | Esej správnej dĺžky, s uvedenými zdrojmi, je prezentovaná ako .doc súbor | Esej má nedostatočné uvedenie zdrojov alebo je kratšia ako požadovaná dĺžka | Esej nie je prezentovaná |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/1-Introduction/README.md b/translations/sk/1-Introduction/README.md
new file mode 100644
index 00000000..f3281fbe
--- /dev/null
+++ b/translations/sk/1-Introduction/README.md
@@ -0,0 +1,36 @@
+
+# Úvod do strojového učenia
+
+V tejto časti kurzu sa zoznámite so základnými konceptmi, ktoré tvoria základ oblasti strojového učenia, dozviete sa, čo to je, a preskúmate jeho históriu a techniky, ktoré výskumníci používajú pri práci s ním. Poďme spolu objavovať tento nový svet strojového učenia!
+
+
+> Foto od Bill Oxford na Unsplash
+
+### Lekcie
+
+1. [Úvod do strojového učenia](1-intro-to-ML/README.md)
+1. [História strojového učenia a AI](2-history-of-ML/README.md)
+1. [Spravodlivosť a strojové učenie](3-fairness/README.md)
+1. [Techniky strojového učenia](4-techniques-of-ML/README.md)
+### Kredity
+
+"Úvod do strojového učenia" bol napísaný s ♥️ tímom ľudí vrátane [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) a [Jen Looper](https://twitter.com/jenlooper)
+
+"História strojového učenia" bola napísaná s ♥️ [Jen Looper](https://twitter.com/jenlooper) a [Amy Boyd](https://twitter.com/AmyKateNicho)
+
+"Spravodlivosť a strojové učenie" bola napísaná s ♥️ [Tomomi Imura](https://twitter.com/girliemac)
+
+"Techniky strojového učenia" boli napísané s ♥️ [Jen Looper](https://twitter.com/jenlooper) a [Chris Noring](https://twitter.com/softchris)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/1-Tools/README.md b/translations/sk/2-Regression/1-Tools/README.md
new file mode 100644
index 00000000..49248b37
--- /dev/null
+++ b/translations/sk/2-Regression/1-Tools/README.md
@@ -0,0 +1,239 @@
+
+# Začíname s Pythonom a Scikit-learn pre regresné modely
+
+
+
+> Sketchnote od [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Táto lekcia je dostupná aj v R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
+
+## Úvod
+
+V týchto štyroch lekciách sa naučíte, ako vytvárať regresné modely. Čoskoro si vysvetlíme, na čo slúžia. Ale predtým, než začnete, uistite sa, že máte správne nástroje na začatie procesu!
+
+V tejto lekcii sa naučíte:
+
+- Ako nakonfigurovať váš počítač na lokálne úlohy strojového učenia.
+- Ako pracovať s Jupyter notebookmi.
+- Ako používať Scikit-learn, vrátane jeho inštalácie.
+- Preskúmať lineárnu regresiu prostredníctvom praktického cvičenia.
+
+## Inštalácie a konfigurácie
+
+[](https://youtu.be/-DfeD2k2Kj0 "ML pre začiatočníkov - Nastavte si nástroje na vytváranie modelov strojového učenia")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video o konfigurácii vášho počítača pre ML.
+
+1. **Nainštalujte Python**. Uistite sa, že máte [Python](https://www.python.org/downloads/) nainštalovaný na vašom počítači. Python budete používať na mnohé úlohy v oblasti dátovej vedy a strojového učenia. Väčšina počítačových systémov už obsahuje inštaláciu Pythonu. K dispozícii sú aj užitočné [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott), ktoré uľahčujú nastavenie pre niektorých používateľov.
+
+ Niektoré použitia Pythonu však vyžadujú jednu verziu softvéru, zatiaľ čo iné vyžadujú inú verziu. Z tohto dôvodu je užitočné pracovať v [virtuálnom prostredí](https://docs.python.org/3/library/venv.html).
+
+2. **Nainštalujte Visual Studio Code**. Uistite sa, že máte Visual Studio Code nainštalovaný na vašom počítači. Postupujte podľa týchto pokynov na [inštaláciu Visual Studio Code](https://code.visualstudio.com/) pre základnú inštaláciu. V tomto kurze budete používať Python vo Visual Studio Code, takže by ste si mohli osviežiť, ako [konfigurovať Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) pre vývoj v Pythone.
+
+ > Získajte pohodlie s Pythonom prostredníctvom tejto kolekcie [Learn modulov](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott)
+ >
+ > [](https://youtu.be/yyQM70vi7V8 "Nastavenie Pythonu vo Visual Studio Code")
+ >
+ > 🎥 Kliknite na obrázok vyššie pre video: používanie Pythonu vo VS Code.
+
+3. **Nainštalujte Scikit-learn**, podľa [týchto pokynov](https://scikit-learn.org/stable/install.html). Keďže je potrebné zabezpečiť, že používate Python 3, odporúča sa používať virtuálne prostredie. Ak inštalujete túto knižnicu na M1 Mac, na stránke vyššie sú špeciálne pokyny.
+
+4. **Nainštalujte Jupyter Notebook**. Budete potrebovať [nainštalovať balík Jupyter](https://pypi.org/project/jupyter/).
+
+## Vaše prostredie na tvorbu ML
+
+Budete používať **notebooky** na vývoj vášho Python kódu a vytváranie modelov strojového učenia. Tento typ súboru je bežným nástrojom pre dátových vedcov a je možné ho identifikovať podľa jeho prípony `.ipynb`.
+
+Notebooky sú interaktívne prostredie, ktoré umožňuje vývojárovi kódovať, pridávať poznámky a písať dokumentáciu okolo kódu, čo je veľmi užitočné pre experimentálne alebo výskumné projekty.
+
+[](https://youtu.be/7E-jC8FLA2E "ML pre začiatočníkov - Nastavenie Jupyter Notebookov na začatie vytvárania regresných modelov")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video o tomto cvičení.
+
+### Cvičenie - práca s notebookom
+
+V tejto zložke nájdete súbor _notebook.ipynb_.
+
+1. Otvorte _notebook.ipynb_ vo Visual Studio Code.
+
+ Spustí sa Jupyter server s Pythonom 3+. Nájdete oblasti notebooku, ktoré je možné `spustiť`, kúsky kódu. Môžete spustiť blok kódu výberom ikony, ktorá vyzerá ako tlačidlo prehrávania.
+
+2. Vyberte ikonu `md` a pridajte trochu markdownu, a nasledujúci text **# Vitajte vo vašom notebooku**.
+
+ Potom pridajte nejaký Python kód.
+
+3. Napíšte **print('hello notebook')** do bloku kódu.
+4. Vyberte šípku na spustenie kódu.
+
+ Mali by ste vidieť vytlačené vyhlásenie:
+
+ ```output
+ hello notebook
+ ```
+
+
+
+Môžete prekladať váš kód s komentármi na samo-dokumentovanie notebooku.
+
+✅ Zamyslite sa na chvíľu nad tým, aké odlišné je pracovné prostredie webového vývojára oproti dátovému vedcovi.
+
+## Práca so Scikit-learn
+
+Teraz, keď je Python nastavený vo vašom lokálnom prostredí a ste pohodlní s Jupyter notebookmi, poďme sa rovnako oboznámiť so Scikit-learn (vyslovujte `sci` ako v `science`). Scikit-learn poskytuje [rozsiahle API](https://scikit-learn.org/stable/modules/classes.html#api-ref), ktoré vám pomôže vykonávať úlohy strojového učenia.
+
+Podľa ich [webovej stránky](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn je open source knižnica strojového učenia, ktorá podporuje učenie pod dohľadom a bez dohľadu. Poskytuje tiež rôzne nástroje na prispôsobenie modelov, predspracovanie dát, výber modelov a hodnotenie, a mnoho ďalších užitočných funkcií."
+
+V tomto kurze budete používať Scikit-learn a ďalšie nástroje na vytváranie modelov strojového učenia na vykonávanie toho, čo nazývame 'tradičné úlohy strojového učenia'. Úmyselne sme sa vyhli neurónovým sieťam a hlbokému učeniu, pretože sú lepšie pokryté v našom pripravovanom kurikule 'AI pre začiatočníkov'.
+
+Scikit-learn umožňuje jednoduché vytváranie modelov a ich hodnotenie na použitie. Primárne sa zameriava na používanie numerických dát a obsahuje niekoľko pripravených datasetov na použitie ako učebné nástroje. Obsahuje tiež predpripravené modely, ktoré si študenti môžu vyskúšať. Poďme preskúmať proces načítania predpripravených dát a použitia zabudovaného odhadovača na prvý ML model so Scikit-learn s niektorými základnými dátami.
+
+## Cvičenie - váš prvý notebook so Scikit-learn
+
+> Tento tutoriál bol inšpirovaný [príkladom lineárnej regresie](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) na webovej stránke Scikit-learn.
+
+
+[](https://youtu.be/2xkXL5EUpS0 "ML pre začiatočníkov - Váš prvý projekt lineárnej regresie v Pythone")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video o tomto cvičení.
+
+V súbore _notebook.ipynb_ priradenom k tejto lekcii vymažte všetky bunky stlačením ikony 'odpadkového koša'.
+
+V tejto sekcii budete pracovať s malým datasetom o cukrovke, ktorý je zabudovaný do Scikit-learn na učebné účely. Predstavte si, že chcete testovať liečbu pre diabetických pacientov. Modely strojového učenia vám môžu pomôcť určiť, ktorí pacienti by na liečbu reagovali lepšie, na základe kombinácií premenných. Dokonca aj veľmi základný regresný model, keď je vizualizovaný, môže ukázať informácie o premenných, ktoré by vám pomohli organizovať vaše teoretické klinické skúšky.
+
+✅ Existuje mnoho typov regresných metód a výber závisí od odpovede, ktorú hľadáte. Ak chcete predpovedať pravdepodobnú výšku osoby určitého veku, použili by ste lineárnu regresiu, pretože hľadáte **numerickú hodnotu**. Ak vás zaujíma, či by sa určitý typ kuchyne mal považovať za vegánsky alebo nie, hľadáte **kategóriu**, takže by ste použili logistickú regresiu. Neskôr sa dozviete viac o logistickej regresii. Zamyslite sa nad niektorými otázkami, ktoré môžete klásť dátam, a ktorá z týchto metód by bola vhodnejšia.
+
+Poďme začať s touto úlohou.
+
+### Import knižníc
+
+Pre túto úlohu importujeme niektoré knižnice:
+
+- **matplotlib**. Je to užitočný [nástroj na grafy](https://matplotlib.org/) a použijeme ho na vytvorenie čiarového grafu.
+- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) je užitočná knižnica na prácu s numerickými dátami v Pythone.
+- **sklearn**. Toto je [knižnica Scikit-learn](https://scikit-learn.org/stable/user_guide.html).
+
+Importujte niektoré knižnice na pomoc s vašimi úlohami.
+
+1. Pridajte importy napísaním nasledujúceho kódu:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import numpy as np
+ from sklearn import datasets, linear_model, model_selection
+ ```
+
+ Vyššie importujete `matplotlib`, `numpy` a importujete `datasets`, `linear_model` a `model_selection` zo `sklearn`. `model_selection` sa používa na rozdelenie dát na tréningové a testovacie sady.
+
+### Dataset o cukrovke
+
+Zabudovaný [dataset o cukrovke](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) obsahuje 442 vzoriek dát o cukrovke s 10 premennými, z ktorých niektoré zahŕňajú:
+
+- vek: vek v rokoch
+- bmi: index telesnej hmotnosti
+- bp: priemerný krvný tlak
+- s1 tc: T-bunky (typ bielych krviniek)
+
+✅ Tento dataset zahŕňa koncept 'pohlavia' ako premennú dôležitú pre výskum cukrovky. Mnohé medicínske datasety zahŕňajú tento typ binárnej klasifikácie. Zamyslite sa nad tým, ako takéto kategorizácie môžu vylúčiť určité časti populácie z liečby.
+
+Teraz načítajte dáta X a y.
+
+> 🎓 Pamätajte, že ide o učenie pod dohľadom, a potrebujeme pomenovaný cieľ 'y'.
+
+V novej bunke kódu načítajte dataset o cukrovke volaním `load_diabetes()`. Vstup `return_X_y=True` signalizuje, že `X` bude dátová matica a `y` bude cieľ regresie.
+
+1. Pridajte niekoľko príkazov na výpis, aby ste zobrazili tvar dátovej matice a jej prvý prvok:
+
+ ```python
+ X, y = datasets.load_diabetes(return_X_y=True)
+ print(X.shape)
+ print(X[0])
+ ```
+
+ To, čo dostávate ako odpoveď, je tuple. Priraďujete prvé dve hodnoty tuple do `X` a `y`. Viac sa dozviete [o tuple](https://wikipedia.org/wiki/Tuple).
+
+ Môžete vidieť, že tieto dáta majú 442 položiek usporiadaných v poliach s 10 prvkami:
+
+ ```text
+ (442, 10)
+ [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076
+ -0.04340085 -0.00259226 0.01990842 -0.01764613]
+ ```
+
+ ✅ Zamyslite sa nad vzťahom medzi dátami a cieľovou premennou regresie. Lineárna regresia predpovedá vzťahy medzi premennou X a cieľovou premennou y. Nájdete [cieľ](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) pre dataset o cukrovke v dokumentácii? Čo tento dataset demonštruje, vzhľadom na cieľ?
+
+2. Ďalej vyberte časť tohto datasetu na vykreslenie výberom 3. stĺpca datasetu. Môžete to urobiť pomocou operátora `:` na výber všetkých riadkov a potom výberom 3. stĺpca pomocou indexu (2). Dáta môžete tiež preformátovať na 2D pole - ako je požadované na vykreslenie - pomocou `reshape(n_rows, n_columns)`. Ak je jeden z parametrov -1, zodpovedajúci rozmer sa vypočíta automaticky.
+
+ ```python
+ X = X[:, 2]
+ X = X.reshape((-1,1))
+ ```
+
+ ✅ Kedykoľvek si vypíšte dáta, aby ste skontrolovali ich tvar.
+
+3. Teraz, keď máte dáta pripravené na vykreslenie, môžete zistiť, či stroj môže pomôcť určiť logické rozdelenie medzi číslami v tomto datasete. Na to potrebujete rozdeliť dáta (X) a cieľ (y) na testovacie a tréningové sady. Scikit-learn má jednoduchý spôsob, ako to urobiť; môžete rozdeliť vaše testovacie dáta na danom bode.
+
+ ```python
+ X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
+ ```
+
+4. Teraz ste pripravení trénovať váš model! Načítajte model lineárnej regresie a trénujte ho s vašimi tréningovými sadami X a y pomocou `model.fit()`:
+
+ ```python
+ model = linear_model.LinearRegression()
+ model.fit(X_train, y_train)
+ ```
+
+ ✅ `model.fit()` je funkcia, ktorú uvidíte v mnohých knižniciach ML, ako je TensorFlow.
+
+5. Potom vytvorte predpoveď pomocou testovacích dát, pomocou funkcie `predict()`. Táto funkcia bude použitá na nakreslenie čiary medzi skupinami dát.
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+6. Teraz je čas zobraziť dáta v grafe. Matplotlib je veľmi užitočný nástroj na túto úlohu. Vytvorte scatterplot všetkých testovacích dát X a y a použite predpoveď na nakreslenie čiary na najvhodnejšom mieste medzi skupinami dát modelu.
+
+ ```python
+ plt.scatter(X_test, y_test, color='black')
+ plt.plot(X_test, y_pred, color='blue', linewidth=3)
+ plt.xlabel('Scaled BMIs')
+ plt.ylabel('Disease Progression')
+ plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
+ plt.show()
+ ```
+
+ 
+✅ Zamyslite sa nad tým, čo sa tu deje. Priama čiara prechádza cez množstvo malých bodov údajov, ale čo presne robí? Vidíte, ako by ste mali byť schopní použiť túto čiaru na predpovedanie, kde by mal nový, nevidený bod údajov zapadnúť vo vzťahu k osi y grafu? Skúste slovami vyjadriť praktické využitie tohto modelu.
+
+Gratulujeme, vytvorili ste svoj prvý model lineárnej regresie, urobili ste predpoveď pomocou neho a zobrazili ste ju v grafe!
+
+---
+## 🚀Výzva
+
+Vykreslite iný premennú z tejto dátovej sady. Tip: upravte tento riadok: `X = X[:,2]`. Na základe cieľa tejto dátovej sady, čo dokážete zistiť o progresii cukrovky ako ochorenia?
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+V tomto tutoriáli ste pracovali s jednoduchou lineárnou regresiou, namiesto univariátnej alebo viacnásobnej lineárnej regresie. Prečítajte si niečo o rozdieloch medzi týmito metódami alebo si pozrite [toto video](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef).
+
+Prečítajte si viac o koncepte regresie a zamyslite sa nad tým, aké typy otázok je možné zodpovedať pomocou tejto techniky. Absolvujte tento [tutoriál](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott), aby ste si prehĺbili svoje porozumenie.
+
+## Zadanie
+
+[Iná dátová sada](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/1-Tools/assignment.md b/translations/sk/2-Regression/1-Tools/assignment.md
new file mode 100644
index 00000000..788f1d12
--- /dev/null
+++ b/translations/sk/2-Regression/1-Tools/assignment.md
@@ -0,0 +1,27 @@
+
+# Regresia so Scikit-learn
+
+## Pokyny
+
+Pozrite si [Linnerud dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) v Scikit-learn. Tento dataset obsahuje viacero [cieľov](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset): „Skladá sa z troch cvičebných (dáta) a troch fyziologických (cieľových) premenných, ktoré boli zozbierané od dvadsiatich mužov stredného veku vo fitness klube.“
+
+Vlastnými slovami opíšte, ako vytvoriť regresný model, ktorý by zobrazil vzťah medzi obvodom pásu a počtom vykonaných sed-ľahov. Urobte to isté pre ostatné dátové body v tomto datasete.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| ------------------------------ | ----------------------------------- | ---------------------------- | -------------------------- |
+| Odovzdaný opisný odsek | Odovzdaný dobre napísaný odsek | Odovzdaných niekoľko viet | Nie je poskytnutý žiadny opis |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/1-Tools/solution/Julia/README.md b/translations/sk/2-Regression/1-Tools/solution/Julia/README.md
new file mode 100644
index 00000000..e875ac45
--- /dev/null
+++ b/translations/sk/2-Regression/1-Tools/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/2-Data/README.md b/translations/sk/2-Regression/2-Data/README.md
new file mode 100644
index 00000000..ebbc15be
--- /dev/null
+++ b/translations/sk/2-Regression/2-Data/README.md
@@ -0,0 +1,226 @@
+
+# Vytvorenie regresného modelu pomocou Scikit-learn: príprava a vizualizácia dát
+
+
+
+Infografiku vytvoril [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Táto lekcia je dostupná aj v R!](../../../../2-Regression/2-Data/solution/R/lesson_2.html)
+
+## Úvod
+
+Teraz, keď máte pripravené nástroje na budovanie modelov strojového učenia pomocou Scikit-learn, ste pripravení začať klásť otázky o svojich dátach. Pri práci s dátami a aplikovaní riešení strojového učenia je veľmi dôležité vedieť, ako položiť správnu otázku, aby ste mohli plne využiť potenciál svojho datasetu.
+
+V tejto lekcii sa naučíte:
+
+- Ako pripraviť dáta na budovanie modelov.
+- Ako používať Matplotlib na vizualizáciu dát.
+
+## Kladenie správnych otázok o vašich dátach
+
+Otázka, na ktorú potrebujete odpoveď, určí, aký typ algoritmov strojového učenia budete používať. Kvalita odpovede, ktorú dostanete, bude výrazne závisieť od povahy vašich dát.
+
+Pozrite sa na [dáta](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) poskytnuté pre túto lekciu. Tento .csv súbor môžete otvoriť vo VS Code. Rýchly pohľad okamžite ukáže, že sú tam prázdne miesta a mix textových a číselných dát. Je tam tiež zvláštny stĺpec nazvaný 'Package', kde sú dáta zmiešané medzi 'sacks', 'bins' a inými hodnotami. Dáta sú vlastne dosť chaotické.
+
+[](https://youtu.be/5qGjczWTrDQ "ML pre začiatočníkov - Ako analyzovať a čistiť dataset")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video o príprave dát pre túto lekciu.
+
+Nie je veľmi bežné dostať dataset, ktorý je úplne pripravený na použitie na vytvorenie modelu strojového učenia. V tejto lekcii sa naučíte, ako pripraviť surový dataset pomocou štandardných knižníc Pythonu. Naučíte sa tiež rôzne techniky vizualizácie dát.
+
+## Prípadová štúdia: 'trh s tekvicami'
+
+V tomto priečinku nájdete .csv súbor v koreňovom priečinku `data` nazvaný [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv), ktorý obsahuje 1757 riadkov dát o trhu s tekvicami, rozdelených do skupín podľa miest. Ide o surové dáta extrahované z [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice), ktoré distribuuje Ministerstvo poľnohospodárstva USA.
+
+### Príprava dát
+
+Tieto dáta sú vo verejnej doméne. Môžu byť stiahnuté v mnohých samostatných súboroch, podľa miest, z webovej stránky USDA. Aby sme sa vyhli príliš mnohým samostatným súborom, spojili sme všetky dáta miest do jednej tabuľky, takže sme už dáta trochu _pripravili_. Teraz sa pozrime bližšie na dáta.
+
+### Dáta o tekviciach - prvé závery
+
+Čo si všimnete na týchto dátach? Už ste videli, že je tam mix textov, čísel, prázdnych miest a zvláštnych hodnôt, ktoré musíte pochopiť.
+
+Akú otázku môžete položiť o týchto dátach pomocou regresnej techniky? Čo tak "Predpovedať cenu tekvice na predaj počas daného mesiaca". Pri pohľade na dáta je potrebné urobiť niekoľko zmien, aby ste vytvorili štruktúru dát potrebnú na túto úlohu.
+
+## Cvičenie - analýza dát o tekviciach
+
+Použime [Pandas](https://pandas.pydata.org/) (názov znamená `Python Data Analysis`), nástroj veľmi užitočný na tvarovanie dát, na analýzu a prípravu týchto dát o tekviciach.
+
+### Najskôr skontrolujte chýbajúce dátumy
+
+Najprv musíte podniknúť kroky na kontrolu chýbajúcich dátumov:
+
+1. Konvertujte dátumy na formát mesiaca (ide o americké dátumy, takže formát je `MM/DD/YYYY`).
+2. Extrahujte mesiac do nového stĺpca.
+
+Otvorte súbor _notebook.ipynb_ vo Visual Studio Code a importujte tabuľku do nového Pandas dataframe.
+
+1. Použite funkciu `head()`, aby ste si pozreli prvých päť riadkov.
+
+ ```python
+ import pandas as pd
+ pumpkins = pd.read_csv('../data/US-pumpkins.csv')
+ pumpkins.head()
+ ```
+
+ ✅ Akú funkciu by ste použili na zobrazenie posledných piatich riadkov?
+
+1. Skontrolujte, či sú v aktuálnom dataframe chýbajúce dáta:
+
+ ```python
+ pumpkins.isnull().sum()
+ ```
+
+ Sú tam chýbajúce dáta, ale možno to nebude mať vplyv na danú úlohu.
+
+1. Aby bol váš dataframe ľahšie spracovateľný, vyberte iba stĺpce, ktoré potrebujete, pomocou funkcie `loc`, ktorá extrahuje z pôvodného dataframe skupinu riadkov (zadaných ako prvý parameter) a stĺpcov (zadaných ako druhý parameter). Výraz `:` v prípade nižšie znamená "všetky riadky".
+
+ ```python
+ columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
+ pumpkins = pumpkins.loc[:, columns_to_select]
+ ```
+
+### Ďalej určte priemernú cenu tekvice
+
+Premýšľajte o tom, ako určiť priemernú cenu tekvice v danom mesiaci. Ktoré stĺpce by ste si vybrali na túto úlohu? Tip: budete potrebovať 3 stĺpce.
+
+Riešenie: vezmite priemer stĺpcov `Low Price` a `High Price`, aby ste naplnili nový stĺpec Price, a konvertujte stĺpec Date tak, aby zobrazoval iba mesiac. Našťastie, podľa vyššie uvedenej kontroly, nie sú chýbajúce dáta pre dátumy alebo ceny.
+
+1. Na výpočet priemeru pridajte nasledujúci kód:
+
+ ```python
+ price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
+
+ month = pd.DatetimeIndex(pumpkins['Date']).month
+
+ ```
+
+ ✅ Ak chcete skontrolovať akékoľvek dáta, môžete použiť `print(month)`.
+
+2. Teraz skopírujte svoje konvertované dáta do nového Pandas dataframe:
+
+ ```python
+ new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
+ ```
+
+ Ak si vytlačíte svoj dataframe, uvidíte čistý, upravený dataset, na ktorom môžete postaviť svoj nový regresný model.
+
+### Ale počkajte! Niečo tu nesedí
+
+Ak sa pozriete na stĺpec `Package`, tekvice sa predávajú v mnohých rôznych konfiguráciách. Niektoré sa predávajú v jednotkách '1 1/9 bushel', niektoré v '1/2 bushel', niektoré na kus, niektoré na váhu, a niektoré vo veľkých boxoch s rôznymi šírkami.
+
+> Tekvice sa zdajú byť veľmi ťažké vážiť konzistentne
+
+Pri skúmaní pôvodných dát je zaujímavé, že všetko, čo má `Unit of Sale` rovné 'EACH' alebo 'PER BIN', má tiež typ `Package` na palec, na box alebo 'each'. Tekvice sa zdajú byť veľmi ťažké vážiť konzistentne, takže ich filtrujme výberom iba tekvíc s reťazcom 'bushel' v ich stĺpci `Package`.
+
+1. Pridajte filter na začiatok súboru, pod počiatočný import .csv:
+
+ ```python
+ pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
+ ```
+
+ Ak si teraz vytlačíte dáta, uvidíte, že dostávate iba približne 415 riadkov dát obsahujúcich tekvice podľa bushel.
+
+### Ale počkajte! Je tu ešte jedna vec, ktorú treba urobiť
+
+Všimli ste si, že množstvo bushel sa líši podľa riadku? Musíte normalizovať ceny tak, aby ste zobrazili ceny za bushel, takže urobte nejaké výpočty na ich štandardizáciu.
+
+1. Pridajte tieto riadky po bloku vytvárajúcom nový dataframe new_pumpkins:
+
+ ```python
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9)
+
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2)
+ ```
+
+✅ Podľa [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308) hmotnosť bushel závisí od typu produktu, pretože ide o objemové meranie. "Bushel paradajok, napríklad, by mal vážiť 56 libier... Listy a zelenina zaberajú viac miesta s menšou hmotnosťou, takže bushel špenátu váži iba 20 libier." Je to všetko dosť komplikované! Nebudeme sa zaoberať konverziou bushel na libry, namiesto toho budeme určovať cenu za bushel. Celá táto štúdia bushel tekvíc však ukazuje, aké dôležité je pochopiť povahu vašich dát!
+
+Teraz môžete analyzovať ceny za jednotku na základe ich merania bushel. Ak si ešte raz vytlačíte dáta, uvidíte, ako sú štandardizované.
+
+✅ Všimli ste si, že tekvice predávané na polovičný bushel sú veľmi drahé? Dokážete zistiť prečo? Tip: malé tekvice sú oveľa drahšie ako veľké, pravdepodobne preto, že ich je oveľa viac na bushel, vzhľadom na nevyužitý priestor, ktorý zaberá jedna veľká dutá tekvica na koláč.
+
+## Stratégie vizualizácie
+
+Súčasťou úlohy dátového vedca je demonštrovať kvalitu a povahu dát, s ktorými pracuje. Na tento účel často vytvárajú zaujímavé vizualizácie, ako sú grafy, diagramy a tabuľky, ktoré ukazujú rôzne aspekty dát. Týmto spôsobom môžu vizuálne ukázať vzťahy a medzery, ktoré by inak bolo ťažké odhaliť.
+
+[](https://youtu.be/SbUkxH6IJo0 "ML pre začiatočníkov - Ako vizualizovať dáta pomocou Matplotlib")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video o vizualizácii dát pre túto lekciu.
+
+Vizualizácie môžu tiež pomôcť určiť techniku strojového učenia, ktorá je najvhodnejšia pre dané dáta. Napríklad scatterplot, ktorý sa zdá nasledovať líniu, naznačuje, že dáta sú dobrým kandidátom na cvičenie lineárnej regresie.
+
+Jedna knižnica na vizualizáciu dát, ktorá dobre funguje v Jupyter notebookoch, je [Matplotlib](https://matplotlib.org/) (ktorú ste videli aj v predchádzajúcej lekcii).
+
+> Získajte viac skúseností s vizualizáciou dát v [týchto tutoriáloch](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott).
+
+## Cvičenie - experimentujte s Matplotlib
+
+Skúste vytvoriť niekoľko základných grafov na zobrazenie nového dataframe, ktorý ste práve vytvorili. Čo by ukázal základný čiarový graf?
+
+1. Importujte Matplotlib na začiatok súboru, pod import Pandas:
+
+ ```python
+ import matplotlib.pyplot as plt
+ ```
+
+1. Znovu spustite celý notebook, aby ste ho aktualizovali.
+1. Na konci notebooku pridajte bunku na vykreslenie dát ako box:
+
+ ```python
+ price = new_pumpkins.Price
+ month = new_pumpkins.Month
+ plt.scatter(price, month)
+ plt.show()
+ ```
+
+ 
+
+ Je tento graf užitočný? Prekvapilo vás na ňom niečo?
+
+ Nie je obzvlášť užitočný, pretože iba zobrazuje vaše dáta ako rozptyl bodov v danom mesiaci.
+
+### Urobte ho užitočným
+
+Aby grafy zobrazovali užitočné dáta, zvyčajne je potrebné dáta nejako zoskupiť. Skúsme vytvoriť graf, kde os y zobrazuje mesiace a dáta ukazujú rozdelenie dát.
+
+1. Pridajte bunku na vytvorenie zoskupeného stĺpcového grafu:
+
+ ```python
+ new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
+ plt.ylabel("Pumpkin Price")
+ ```
+
+ 
+
+ Toto je užitočnejšia vizualizácia dát! Zdá sa, že najvyššia cena za tekvice sa vyskytuje v septembri a októbri. Zodpovedá to vašim očakávaniam? Prečo áno alebo nie?
+
+---
+
+## 🚀Výzva
+
+Preskúmajte rôzne typy vizualizácií, ktoré Matplotlib ponúka. Ktoré typy sú najvhodnejšie pre regresné problémy?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Pozrite sa na mnohé spôsoby vizualizácie dát. Vytvorte zoznam rôznych dostupných knižníc a poznačte si, ktoré sú najlepšie pre dané typy úloh, napríklad 2D vizualizácie vs. 3D vizualizácie. Čo ste zistili?
+
+## Zadanie
+
+[Preskúmanie vizualizácie](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/2-Data/assignment.md b/translations/sk/2-Regression/2-Data/assignment.md
new file mode 100644
index 00000000..8e371cf1
--- /dev/null
+++ b/translations/sk/2-Regression/2-Data/assignment.md
@@ -0,0 +1,22 @@
+
+# Preskúmanie vizualizácií
+
+Existuje niekoľko rôznych knižníc dostupných na vizualizáciu dát. Vytvorte niekoľko vizualizácií pomocou údajov o tekviciach z tejto lekcie s použitím knižníc matplotlib a seaborn v ukážkovom notebooku. Ktoré knižnice sa ľahšie používajú?
+## Kritériá hodnotenia
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ---------- | ---------- | ------------------ |
+| | Notebook je odovzdaný s dvoma skúmaniami/vizualizáciami | Notebook je odovzdaný s jedným skúmaním/vizualizáciou | Notebook nie je odovzdaný |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/2-Data/solution/Julia/README.md b/translations/sk/2-Regression/2-Data/solution/Julia/README.md
new file mode 100644
index 00000000..b4ce5014
--- /dev/null
+++ b/translations/sk/2-Regression/2-Data/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/3-Linear/README.md b/translations/sk/2-Regression/3-Linear/README.md
new file mode 100644
index 00000000..6032212a
--- /dev/null
+++ b/translations/sk/2-Regression/3-Linear/README.md
@@ -0,0 +1,381 @@
+
+# Vytvorenie regresného modelu pomocou Scikit-learn: štyri spôsoby regresie
+
+
+> Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Táto lekcia je dostupná v R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### Úvod
+
+Doteraz ste preskúmali, čo je regresia, na vzorových údajoch zo súboru údajov o cenách tekvíc, ktorý budeme používať počas celej tejto lekcie. Vizualizovali ste ich pomocou Matplotlibu.
+
+Teraz ste pripravení ponoriť sa hlbšie do regresie pre strojové učenie. Zatiaľ čo vizualizácia vám umožňuje pochopiť údaje, skutočná sila strojového učenia spočíva v _tréningu modelov_. Modely sú trénované na historických údajoch, aby automaticky zachytili závislosti medzi údajmi, a umožňujú vám predpovedať výsledky pre nové údaje, ktoré model predtým nevidel.
+
+V tejto lekcii sa dozviete viac o dvoch typoch regresie: _základná lineárna regresia_ a _polynomiálna regresia_, spolu s niektorými matematickými základmi týchto techník. Tieto modely nám umožnia predpovedať ceny tekvíc na základe rôznych vstupných údajov.
+
+[](https://youtu.be/CRxFT8oTDMg "ML pre začiatočníkov - Pochopenie lineárnej regresie")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o lineárnej regresii.
+
+> Počas celého kurzu predpokladáme minimálne znalosti matematiky a snažíme sa sprístupniť obsah študentom z iných odborov, preto sledujte poznámky, 🧮 výpočty, diagramy a ďalšie nástroje na učenie, ktoré vám pomôžu pochopiť obsah.
+
+### Predpoklady
+
+Teraz by ste mali byť oboznámení so štruktúrou údajov o tekviciach, ktoré skúmame. Nájdete ich prednahrané a predčistené v súbore _notebook.ipynb_ tejto lekcie. V súbore je cena tekvíc zobrazená za bušel v novom dátovom rámci. Uistite sa, že dokážete spustiť tieto notebooky v jadrách vo Visual Studio Code.
+
+### Príprava
+
+Pripomeňme si, že tieto údaje načítavate, aby ste mohli klásť otázky:
+
+- Kedy je najlepší čas na kúpu tekvíc?
+- Akú cenu môžem očakávať za balenie miniatúrnych tekvíc?
+- Mám ich kúpiť v polovičných bušlových košoch alebo v 1 1/9 bušlových škatuliach?
+Poďme sa hlbšie pozrieť na tieto údaje.
+
+V predchádzajúcej lekcii ste vytvorili Pandas dátový rámec a naplnili ho časťou pôvodného súboru údajov, štandardizujúc ceny podľa bušlu. Týmto spôsobom ste však dokázali zhromaždiť iba približne 400 dátových bodov a iba pre jesenné mesiace.
+
+Pozrite sa na údaje, ktoré sme prednahrali v notebooku tejto lekcie. Údaje sú prednahrané a úvodný bodový graf je vytvorený na zobrazenie údajov podľa mesiacov. Možno môžeme získať trochu viac detailov o povahe údajov ich ďalším čistením.
+
+## Lineárna regresná čiara
+
+Ako ste sa naučili v Lekcii 1, cieľom cvičenia lineárnej regresie je byť schopný nakresliť čiaru na:
+
+- **Ukázanie vzťahov medzi premennými**. Ukázať vzťah medzi premennými
+- **Predpovedanie**. Urobiť presné predpovede, kde by nový dátový bod spadol vo vzťahu k tejto čiare.
+
+Typické pre **regresiu metódou najmenších štvorcov** je nakresliť tento typ čiary. Termín 'najmenšie štvorce' znamená, že všetky dátové body obklopujúce regresnú čiaru sú umocnené na druhú a potom sčítané. Ideálne je, aby tento konečný súčet bol čo najmenší, pretože chceme nízky počet chýb, alebo `najmenšie štvorce`.
+
+Robíme to, pretože chceme modelovať čiaru, ktorá má najmenšiu kumulatívnu vzdialenosť od všetkých našich dátových bodov. Tiež umocňujeme hodnoty na druhú pred ich sčítaním, pretože nás zaujíma ich veľkosť, nie ich smer.
+
+> **🧮 Ukážte mi matematiku**
+>
+> Táto čiara, nazývaná _čiara najlepšieho prispôsobenia_, môže byť vyjadrená [rovnicou](https://en.wikipedia.org/wiki/Simple_linear_regression):
+>
+> ```
+> Y = a + bX
+> ```
+>
+> `X` je 'vysvetľujúca premenná'. `Y` je 'závislá premenná'. Sklon čiary je `b` a `a` je y-priesečník, ktorý odkazuje na hodnotu `Y`, keď `X = 0`.
+>
+>
+>
+> Najprv vypočítajte sklon `b`. Infografika od [Jen Looper](https://twitter.com/jenlooper)
+>
+> Inými slovami, a odkazujúc na pôvodnú otázku o údajoch o tekviciach: "predpovedajte cenu tekvice za bušel podľa mesiaca", `X` by odkazovalo na cenu a `Y` by odkazovalo na mesiac predaja.
+>
+>
+>
+> Vypočítajte hodnotu Y. Ak platíte okolo $4, musí byť apríl! Infografika od [Jen Looper](https://twitter.com/jenlooper)
+>
+> Matematika, ktorá vypočítava čiaru, musí demonštrovať sklon čiary, ktorý tiež závisí od priesečníka, alebo kde sa `Y` nachádza, keď `X = 0`.
+>
+> Metódu výpočtu týchto hodnôt si môžete pozrieť na webovej stránke [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Navštívte tiež [tento kalkulátor metódy najmenších štvorcov](https://www.mathsisfun.com/data/least-squares-calculator.html), aby ste videli, ako hodnoty čísel ovplyvňujú čiaru.
+
+## Korelácia
+
+Ďalší termín, ktorý je potrebné pochopiť, je **koeficient korelácie** medzi danými premennými X a Y. Pomocou bodového grafu môžete rýchlo vizualizovať tento koeficient. Graf s dátovými bodmi rozmiestnenými v úhľadnej čiare má vysokú koreláciu, ale graf s dátovými bodmi rozmiestnenými všade medzi X a Y má nízku koreláciu.
+
+Dobrý model lineárnej regresie bude taký, ktorý má vysoký (bližšie k 1 ako k 0) koeficient korelácie pomocou metódy najmenších štvorcov s regresnou čiarou.
+
+✅ Spustite notebook, ktorý sprevádza túto lekciu, a pozrite sa na bodový graf Mesiac vs Cena. Zdá sa, že údaje spájajúce Mesiac s Cenou za predaj tekvíc majú podľa vašej vizuálnej interpretácie bodového grafu vysokú alebo nízku koreláciu? Zmení sa to, ak použijete jemnejšie meranie namiesto `Mesiac`, napr. *deň v roku* (t. j. počet dní od začiatku roka)?
+
+V nasledujúcom kóde predpokladáme, že sme vyčistili údaje a získali dátový rámec nazvaný `new_pumpkins`, podobný nasledujúcemu:
+
+ID | Mesiac | DeňVroku | Typ | Mesto | Balenie | Nízka cena | Vysoká cena | Cena
+---|-------|-----------|---------|------|---------|-----------|------------|-------
+70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 15.0 | 15.0 | 13.636364
+
+> Kód na čistenie údajov je dostupný v [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Vykonali sme rovnaké kroky čistenia ako v predchádzajúcej lekcii a vypočítali sme stĺpec `DeňVroku` pomocou nasledujúceho výrazu:
+
+```python
+day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
+```
+
+Teraz, keď rozumiete matematike za lineárnou regresiou, poďme vytvoriť regresný model, aby sme zistili, ktorý balík tekvíc bude mať najlepšie ceny tekvíc. Niekto, kto kupuje tekvice na sviatočnú tekvicovú záhradu, by mohol chcieť tieto informácie, aby optimalizoval svoje nákupy balíkov tekvíc pre záhradu.
+
+## Hľadanie korelácie
+
+[](https://youtu.be/uoRq-lW2eQo "ML pre začiatočníkov - Hľadanie korelácie: Kľúč k lineárnej regresii")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o korelácii.
+
+Z predchádzajúcej lekcie ste pravdepodobne videli, že priemerná cena za rôzne mesiace vyzerá takto:
+
+
+
+To naznačuje, že by mala existovať nejaká korelácia, a môžeme skúsiť trénovať model lineárnej regresie na predpovedanie vzťahu medzi `Mesiac` a `Cena`, alebo medzi `DeňVroku` a `Cena`. Tu je bodový graf, ktorý ukazuje druhý vzťah:
+
+
+
+Pozrime sa, či existuje korelácia pomocou funkcie `corr`:
+
+```python
+print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
+print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
+```
+
+Zdá sa, že korelácia je pomerne malá, -0.15 podľa `Mesiac` a -0.17 podľa `DeňVroku`, ale mohol by existovať iný dôležitý vzťah. Zdá sa, že existujú rôzne zhluky cien zodpovedajúce rôznym odrodám tekvíc. Na potvrdenie tejto hypotézy nakreslime každú kategóriu tekvíc pomocou inej farby. Pri prechode parametra `ax` do funkcie `scatter` môžeme nakresliť všetky body na rovnaký graf:
+
+```python
+ax=None
+colors = ['red','blue','green','yellow']
+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)
+```
+
+
+
+Naše vyšetrovanie naznačuje, že odroda má väčší vplyv na celkovú cenu ako skutočný dátum predaja. Môžeme to vidieť na stĺpcovom grafe:
+
+```python
+new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
+```
+
+
+
+Zamerajme sa na chvíľu iba na jednu odrodu tekvíc, 'pie type', a pozrime sa, aký vplyv má dátum na cenu:
+
+```python
+pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
+pie_pumpkins.plot.scatter('DayOfYear','Price')
+```
+
+
+Ak teraz vypočítame koreláciu medzi `Cena` a `DeňVroku` pomocou funkcie `corr`, dostaneme hodnotu okolo `-0.27` - čo znamená, že trénovanie prediktívneho modelu má zmysel.
+
+> Pred trénovaním modelu lineárnej regresie je dôležité zabezpečiť, aby naše údaje boli čisté. Lineárna regresia nefunguje dobre s chýbajúcimi hodnotami, preto má zmysel zbaviť sa všetkých prázdnych buniek:
+
+```python
+pie_pumpkins.dropna(inplace=True)
+pie_pumpkins.info()
+```
+
+Ďalším prístupom by bolo vyplniť tieto prázdne hodnoty priemernými hodnotami z príslušného stĺpca.
+
+## Jednoduchá lineárna regresia
+
+[](https://youtu.be/e4c_UP2fSjg "ML pre začiatočníkov - Lineárna a polynomiálna regresia pomocou Scikit-learn")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o lineárnej a polynomiálnej regresii.
+
+Na trénovanie nášho modelu lineárnej regresie použijeme knižnicu **Scikit-learn**.
+
+```python
+from sklearn.linear_model import LinearRegression
+from sklearn.metrics import mean_squared_error
+from sklearn.model_selection import train_test_split
+```
+
+Začíname oddelením vstupných hodnôt (príznakov) a očakávaného výstupu (označenia) do samostatných numpy polí:
+
+```python
+X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
+y = pie_pumpkins['Price']
+```
+
+> Všimnite si, že sme museli vykonať `reshape` na vstupných údajoch, aby ich balík lineárnej regresie správne pochopil. Lineárna regresia očakáva 2D pole ako vstup, kde každý riadok poľa zodpovedá vektoru vstupných príznakov. V našom prípade, keďže máme iba jeden vstup, potrebujeme pole s tvarom N×1, kde N je veľkosť súboru údajov.
+
+Potom musíme rozdeliť údaje na trénovací a testovací súbor údajov, aby sme mohli po tréningu overiť náš model:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+```
+
+Nakoniec, samotné trénovanie modelu lineárnej regresie trvá iba dva riadky kódu. Definujeme objekt `LinearRegression` a prispôsobíme ho našim údajom pomocou metódy `fit`:
+
+```python
+lin_reg = LinearRegression()
+lin_reg.fit(X_train,y_train)
+```
+
+Objekt `LinearRegression` po prispôsobení obsahuje všetky koeficienty regresie, ku ktorým je možné pristupovať pomocou vlastnosti `.coef_`. V našom prípade existuje iba jeden koeficient, ktorý by mal byť okolo `-0.017`. To znamená, že ceny sa zdajú klesať trochu s časom, ale nie príliš, približne o 2 centy za deň. Môžeme tiež pristupovať k priesečníku regresie s Y-osou pomocou `lin_reg.intercept_` - bude to okolo `21` v našom prípade, čo naznačuje cenu na začiatku roka.
+
+Aby sme videli, aký presný je náš model, môžeme predpovedať ceny na testovacom súbore údajov a potom zmerať, ako blízko sú naše predpovede k očakávaným hodnotám. To sa dá urobiť pomocou metriky strednej kvadratickej chyby (MSE), ktorá je priemerom všetkých kvadratických rozdielov medzi očakávanou a predpovedanou hodnotou.
+
+```python
+pred = lin_reg.predict(X_test)
+
+mse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+```
+Naša chyba sa zdá byť okolo 2 bodov, čo je ~17 %. Nie je to príliš dobré. Ďalším indikátorom kvality modelu je **koeficient determinácie**, ktorý môžeme získať takto:
+
+```python
+score = lin_reg.score(X_train,y_train)
+print('Model determination: ', score)
+```
+Ak je hodnota 0, znamená to, že model neberie do úvahy vstupné údaje a funguje ako *najhorší lineárny prediktor*, čo je jednoducho priemerná hodnota výsledku. Hodnota 1 znamená, že môžeme dokonale predpovedať všetky očakávané výstupy. V našom prípade je koeficient okolo 0.06, čo je pomerne nízke.
+
+Môžeme tiež vykresliť testovacie údaje spolu s regresnou čiarou, aby sme lepšie videli, ako regresia funguje v našom prípade:
+
+```python
+plt.scatter(X_test,y_test)
+plt.plot(X_test,pred)
+```
+
+
+
+## Polynomická regresia
+
+Ďalším typom lineárnej regresie je polynomická regresia. Zatiaľ čo niekedy existuje lineárny vzťah medzi premennými – čím väčší objem tekvice, tým vyššia cena – niekedy tieto vzťahy nemožno vykresliť ako rovinu alebo priamku.
+
+✅ Tu sú [niektoré ďalšie príklady](https://online.stat.psu.edu/stat501/lesson/9/9.8) údajov, ktoré by mohli využiť polynomickú regresiu.
+
+Pozrite sa znova na vzťah medzi dátumom a cenou. Zdá sa, že tento bodový graf by mal byť nevyhnutne analyzovaný priamkou? Nemôžu ceny kolísať? V tomto prípade môžete vyskúšať polynomickú regresiu.
+
+✅ Polynómy sú matematické výrazy, ktoré môžu pozostávať z jednej alebo viacerých premenných a koeficientov.
+
+Polynomická regresia vytvára zakrivenú čiaru, ktorá lepšie zodpovedá nelineárnym údajom. V našom prípade, ak do vstupných údajov zahrnieme premennú `DayOfYear` na druhú, mali by sme byť schopní prispôsobiť naše údaje parabolickou krivkou, ktorá bude mať minimum v určitom bode počas roka.
+
+Scikit-learn obsahuje užitočné [API pre pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), ktoré kombinuje rôzne kroky spracovania údajov. **Pipeline** je reťaz **odhadovateľov**. V našom prípade vytvoríme pipeline, ktorá najskôr pridá polynomické prvky do nášho modelu a potom trénuje regresiu:
+
+```python
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.pipeline import make_pipeline
+
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+
+pipeline.fit(X_train,y_train)
+```
+
+Použitie `PolynomialFeatures(2)` znamená, že zahrnieme všetky polynómy druhého stupňa zo vstupných údajov. V našom prípade to bude znamenať len `DayOfYear`2, ale pri dvoch vstupných premenných X a Y to pridá X2, XY a Y2. Môžeme tiež použiť polynómy vyššieho stupňa, ak chceme.
+
+Pipeline môžeme používať rovnakým spôsobom ako pôvodný objekt `LinearRegression`, t.j. môžeme pipeline `fit` a potom použiť `predict` na získanie výsledkov predikcie. Tu je graf zobrazujúci testovacie údaje a aproximačnú krivku:
+
+
+
+Použitím polynomickej regresie môžeme dosiahnuť mierne nižšie MSE a vyššiu determináciu, ale nie významne. Musíme zohľadniť ďalšie prvky!
+
+> Vidíte, že minimálne ceny tekvíc sú pozorované niekde okolo Halloweenu. Ako to môžete vysvetliť?
+
+🎃 Gratulujeme, práve ste vytvorili model, ktorý môže pomôcť predpovedať cenu tekvíc na koláče. Pravdepodobne môžete zopakovať rovnaký postup pre všetky typy tekvíc, ale to by bolo zdĺhavé. Poďme sa teraz naučiť, ako zohľadniť odrodu tekvíc v našom modeli!
+
+## Kategorické prvky
+
+V ideálnom svete chceme byť schopní predpovedať ceny pre rôzne odrody tekvíc pomocou rovnakého modelu. Stĺpec `Variety` je však trochu odlišný od stĺpcov ako `Month`, pretože obsahuje nenumerické hodnoty. Takéto stĺpce sa nazývajú **kategorické**.
+
+[](https://youtu.be/DYGliioIAE0 "ML pre začiatočníkov - Predikcia kategorických prvkov pomocou lineárnej regresie")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o používaní kategorických prvkov.
+
+Tu môžete vidieť, ako priemerná cena závisí od odrody:
+
+
+
+Aby sme zohľadnili odrodu, musíme ju najskôr previesť na numerickú formu, alebo ju **zakódovať**. Existuje niekoľko spôsobov, ako to môžeme urobiť:
+
+* Jednoduché **numerické kódovanie** vytvorí tabuľku rôznych odrôd a potom nahradí názov odrody indexom v tejto tabuľke. Toto nie je najlepší nápad pre lineárnu regresiu, pretože lineárna regresia berie skutočnú numerickú hodnotu indexu a pridáva ju k výsledku, násobiac ju nejakým koeficientom. V našom prípade je vzťah medzi číslom indexu a cenou jasne nelineárny, aj keď zabezpečíme, že indexy sú usporiadané určitým spôsobom.
+* **One-hot kódovanie** nahradí stĺpec `Variety` štyrmi rôznymi stĺpcami, jeden pre každú odrodu. Každý stĺpec bude obsahovať `1`, ak príslušný riadok patrí danej odrode, a `0` inak. To znamená, že v lineárnej regresii budú štyri koeficienty, jeden pre každú odrodu tekvíc, zodpovedné za "východiskovú cenu" (alebo skôr "dodatočnú cenu") pre danú odrodu.
+
+Nižšie uvedený kód ukazuje, ako môžeme zakódovať odrodu pomocou one-hot kódovania:
+
+```python
+pd.get_dummies(new_pumpkins['Variety'])
+```
+
+ ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
+----|-----------|-----------|--------------------------|----------
+70 | 0 | 0 | 0 | 1
+71 | 0 | 0 | 0 | 1
+... | ... | ... | ... | ...
+1738 | 0 | 1 | 0 | 0
+1739 | 0 | 1 | 0 | 0
+1740 | 0 | 1 | 0 | 0
+1741 | 0 | 1 | 0 | 0
+1742 | 0 | 1 | 0 | 0
+
+Na trénovanie lineárnej regresie pomocou one-hot zakódovanej odrody ako vstupu stačí správne inicializovať údaje `X` a `y`:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety'])
+y = new_pumpkins['Price']
+```
+
+Zvyšok kódu je rovnaký ako ten, ktorý sme použili vyššie na trénovanie lineárnej regresie. Ak to vyskúšate, uvidíte, že stredná kvadratická chyba je približne rovnaká, ale získame oveľa vyšší koeficient determinácie (~77 %). Na získanie ešte presnejších predpovedí môžeme zohľadniť viac kategorických prvkov, ako aj numerické prvky, ako `Month` alebo `DayOfYear`. Na získanie jedného veľkého poľa prvkov môžeme použiť `join`:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+```
+
+Tu tiež zohľadňujeme `City` a typ balenia `Package`, čo nám dáva MSE 2.84 (10 %) a determináciu 0.94!
+
+## Spojenie všetkého dohromady
+
+Na vytvorenie najlepšieho modelu môžeme použiť kombinované (one-hot zakódované kategorické + numerické) údaje z vyššie uvedeného príkladu spolu s polynomickou regresiou. Tu je kompletný kód pre vaše pohodlie:
+
+```python
+# set up training data
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+
+# make train-test split
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+# setup and train the pipeline
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+pipeline.fit(X_train,y_train)
+
+# predict results for test data
+pred = pipeline.predict(X_test)
+
+# calculate MSE and determination
+mse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+Toto by nám malo dať najlepší koeficient determinácie takmer 97 % a MSE=2.23 (~8 % predikčná chyba).
+
+| Model | MSE | Determinácia |
+|-------|-----|-------------|
+| `DayOfYear` Lineárny | 2.77 (17.2 %) | 0.07 |
+| `DayOfYear` Polynomický | 2.73 (17.0 %) | 0.08 |
+| `Variety` Lineárny | 5.24 (19.7 %) | 0.77 |
+| Všetky prvky Lineárny | 2.84 (10.5 %) | 0.94 |
+| Všetky prvky Polynomický | 2.23 (8.25 %) | 0.97 |
+
+🏆 Výborne! Vytvorili ste štyri regresné modely v jednej lekcii a zlepšili kvalitu modelu na 97 %. V poslednej časti o regresii sa naučíte o logistickej regresii na určenie kategórií.
+
+---
+
+## 🚀Výzva
+
+Otestujte niekoľko rôznych premenných v tomto notebooku, aby ste videli, ako korelácia zodpovedá presnosti modelu.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samoštúdium
+
+V tejto lekcii sme sa naučili o lineárnej regresii. Existujú aj ďalšie dôležité typy regresie. Prečítajte si o technikách Stepwise, Ridge, Lasso a Elasticnet. Dobrý kurz na štúdium je [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
+
+## Zadanie
+
+[Postavte model](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/3-Linear/assignment.md b/translations/sk/2-Regression/3-Linear/assignment.md
new file mode 100644
index 00000000..45cc8678
--- /dev/null
+++ b/translations/sk/2-Regression/3-Linear/assignment.md
@@ -0,0 +1,25 @@
+
+# Vytvorenie regresného modelu
+
+## Pokyny
+
+V tejto lekcii ste sa naučili, ako vytvoriť model pomocou lineárnej a polynomiálnej regresie. Na základe týchto znalostí nájdite dataset alebo použite jeden z preddefinovaných datasetov v Scikit-learn na vytvorenie nového modelu. Vo svojom notebooku vysvetlite, prečo ste si zvolili konkrétnu techniku, a preukážte presnosť svojho modelu. Ak model nie je presný, vysvetlite prečo.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ----------------------------------------------------------- | -------------------------- | ------------------------------- |
+| | prezentuje kompletný notebook s dobre zdokumentovaným riešením | riešenie je neúplné | riešenie je chybné alebo má nedostatky |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/3-Linear/solution/Julia/README.md b/translations/sk/2-Regression/3-Linear/solution/Julia/README.md
new file mode 100644
index 00000000..8d771f3d
--- /dev/null
+++ b/translations/sk/2-Regression/3-Linear/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/4-Logistic/README.md b/translations/sk/2-Regression/4-Logistic/README.md
new file mode 100644
index 00000000..b89f3336
--- /dev/null
+++ b/translations/sk/2-Regression/4-Logistic/README.md
@@ -0,0 +1,407 @@
+
+# Logistická regresia na predpovedanie kategórií
+
+
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Táto lekcia je dostupná aj v R!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html)
+
+## Úvod
+
+V tejto poslednej lekcii o regresii, jednej zo základných _klasických_ techník strojového učenia, sa pozrieme na logistickú regresiu. Túto techniku by ste použili na objavenie vzorcov na predpovedanie binárnych kategórií. Je táto cukrovinka čokoládová alebo nie? Je táto choroba nákazlivá alebo nie? Vyberie si tento zákazník tento produkt alebo nie?
+
+V tejto lekcii sa naučíte:
+
+- Novú knižnicu na vizualizáciu dát
+- Techniky logistickej regresie
+
+✅ Prehĺbte si svoje znalosti o práci s týmto typom regresie v tomto [učebnom module](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott)
+
+## Predpoklady
+
+Po práci s dátami o tekviciach sme už dostatočne oboznámení s tým, že existuje jedna binárna kategória, s ktorou môžeme pracovať: `Farba`.
+
+Postavme model logistickej regresie na predpovedanie toho, na základe niektorých premenných, _akú farbu bude mať daná tekvica_ (oranžová 🎃 alebo biela 👻).
+
+> Prečo hovoríme o binárnej klasifikácii v lekcii o regresii? Len z jazykového pohodlia, pretože logistická regresia je [v skutočnosti metóda klasifikácie](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), hoci založená na lineárnom prístupe. O ďalších spôsoboch klasifikácie dát sa dozviete v nasledujúcej skupine lekcií.
+
+## Definovanie otázky
+
+Pre naše účely to vyjadríme ako binárnu otázku: 'Biela' alebo 'Nie biela'. V našej dátovej sade je tiež kategória 'pruhovaná', ale má málo záznamov, takže ju nebudeme používať. Aj tak zmizne, keď odstránime nulové hodnoty z dátovej sady.
+
+> 🎃 Zaujímavý fakt: biele tekvice niekedy nazývame 'duchové' tekvice. Nie sú veľmi ľahké na vyrezávanie, takže nie sú tak populárne ako oranžové, ale vyzerajú zaujímavo! Takže by sme mohli našu otázku preformulovať ako: 'Duch' alebo 'Nie duch'. 👻
+
+## O logistickej regresii
+
+Logistická regresia sa líši od lineárnej regresie, ktorú ste sa naučili predtým, v niekoľkých dôležitých ohľadoch.
+
+[](https://youtu.be/KpeCT6nEpBY "Strojové učenie pre začiatočníkov - Pochopenie logistickej regresie pre klasifikáciu")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o logistickej regresii.
+
+### Binárna klasifikácia
+
+Logistická regresia neponúka rovnaké funkcie ako lineárna regresia. Prvá ponúka predpoveď o binárnej kategórii ("biela alebo nie biela"), zatiaľ čo druhá je schopná predpovedať kontinuálne hodnoty, napríklad na základe pôvodu tekvice a času zberu, _ako veľmi sa zvýši jej cena_.
+
+
+> Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+### Iné typy klasifikácií
+
+Existujú aj iné typy logistickej regresie, vrátane multinomiálnej a ordinálnej:
+
+- **Multinomiálna**, ktorá zahŕňa viac ako jednu kategóriu - "Oranžová, Biela a Pruhovaná".
+- **Ordinálna**, ktorá zahŕňa usporiadané kategórie, užitočné, ak by sme chceli usporiadať naše výsledky logicky, ako naše tekvice, ktoré sú usporiadané podľa konečného počtu veľkostí (mini, sm, med, lg, xl, xxl).
+
+
+
+### Premenné NEMUSIA korelovať
+
+Pamätáte si, ako lineárna regresia fungovala lepšie s viac korelovanými premennými? Logistická regresia je opakom - premenné nemusia byť v súlade. To funguje pre tieto dáta, ktoré majú pomerne slabé korelácie.
+
+### Potrebujete veľa čistých dát
+
+Logistická regresia poskytne presnejšie výsledky, ak použijete viac dát; naša malá dátová sada nie je optimálna pre túto úlohu, takže to majte na pamäti.
+
+[](https://youtu.be/B2X4H9vcXTs "Strojové učenie pre začiatočníkov - Analýza a príprava dát pre logistickú regresiu")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o príprave dát pre lineárnu regresiu.
+
+✅ Premýšľajte o typoch dát, ktoré by sa hodili pre logistickú regresiu.
+
+## Cvičenie - upravte dáta
+
+Najprv trochu upravte dáta, odstráňte nulové hodnoty a vyberte len niektoré stĺpce:
+
+1. Pridajte nasledujúci kód:
+
+ ```python
+
+ columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
+ pumpkins = full_pumpkins.loc[:, columns_to_select]
+
+ pumpkins.dropna(inplace=True)
+ ```
+
+ Vždy sa môžete pozrieť na svoj nový dataframe:
+
+ ```python
+ pumpkins.info
+ ```
+
+### Vizualizácia - kategóriálny graf
+
+Teraz ste načítali [štartovací notebook](../../../../2-Regression/4-Logistic/notebook.ipynb) s dátami o tekviciach a upravili ho tak, aby obsahoval dátovú sadu s niekoľkými premennými vrátane `Farba`. Vizualizujme dataframe v notebooku pomocou inej knižnice: [Seaborn](https://seaborn.pydata.org/index.html), ktorá je postavená na Matplotlib, ktorý sme použili skôr.
+
+Seaborn ponúka niekoľko zaujímavých spôsobov vizualizácie vašich dát. Napríklad môžete porovnať distribúcie dát pre každú `Variety` a `Farba` v kategóriálnom grafe.
+
+1. Vytvorte takýto graf pomocou funkcie `catplot`, použite naše dáta o tekviciach `pumpkins` a špecifikujte farebné mapovanie pre každú kategóriu tekvíc (oranžová alebo biela):
+
+ ```python
+ import seaborn as sns
+
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+
+ sns.catplot(
+ data=pumpkins, y="Variety", hue="Color", kind="count",
+ palette=palette,
+ )
+ ```
+
+ 
+
+ Pozorovaním dát môžete vidieť, ako sa dáta o farbe vzťahujú na odrodu.
+
+ ✅ Na základe tohto kategóriálneho grafu, aké zaujímavé skúmania si dokážete predstaviť?
+
+### Predspracovanie dát: kódovanie vlastností a štítkov
+Naša dátová sada o tekviciach obsahuje textové hodnoty vo všetkých svojich stĺpcoch. Práca s kategóriálnymi dátami je intuitívna pre ľudí, ale nie pre stroje. Algoritmy strojového učenia fungujú dobre s číslami. Preto je kódovanie veľmi dôležitým krokom vo fáze predspracovania dát, pretože nám umožňuje premeniť kategóriálne dáta na číselné dáta bez straty informácií. Dobré kódovanie vedie k vytvoreniu dobrého modelu.
+
+Pre kódovanie vlastností existujú dva hlavné typy kóderov:
+
+1. Ordinálny kóder: hodí sa pre ordinálne premenné, ktoré sú kategóriálne premenné, kde ich dáta nasledujú logické usporiadanie, ako stĺpec `Item Size` v našej dátovej sade. Vytvára mapovanie, kde každá kategória je reprezentovaná číslom, ktoré je poradie kategórie v stĺpci.
+
+ ```python
+ from sklearn.preprocessing import OrdinalEncoder
+
+ item_size_categories = [['sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo']]
+ ordinal_features = ['Item Size']
+ ordinal_encoder = OrdinalEncoder(categories=item_size_categories)
+ ```
+
+2. Kategóriálny kóder: hodí sa pre nominálne premenné, ktoré sú kategóriálne premenné, kde ich dáta nenasledujú logické usporiadanie, ako všetky vlastnosti odlišné od `Item Size` v našej dátovej sade. Ide o kódovanie typu one-hot, čo znamená, že každá kategória je reprezentovaná binárnym stĺpcom: kódovaná premenná je rovná 1, ak tekvica patrí do tejto odrody, a 0 inak.
+
+ ```python
+ from sklearn.preprocessing import OneHotEncoder
+
+ categorical_features = ['City Name', 'Package', 'Variety', 'Origin']
+ categorical_encoder = OneHotEncoder(sparse_output=False)
+ ```
+Potom sa na kombináciu viacerých kóderov do jedného kroku a ich aplikáciu na príslušné stĺpce používa `ColumnTransformer`.
+
+```python
+ from sklearn.compose import ColumnTransformer
+
+ ct = ColumnTransformer(transformers=[
+ ('ord', ordinal_encoder, ordinal_features),
+ ('cat', categorical_encoder, categorical_features)
+ ])
+
+ ct.set_output(transform='pandas')
+ encoded_features = ct.fit_transform(pumpkins)
+```
+Na druhej strane, na kódovanie štítku používame triedu `LabelEncoder` zo scikit-learn, ktorá je pomocnou triedou na normalizáciu štítkov tak, aby obsahovali iba hodnoty medzi 0 a n_classes-1 (tu 0 a 1).
+
+```python
+ from sklearn.preprocessing import LabelEncoder
+
+ label_encoder = LabelEncoder()
+ encoded_label = label_encoder.fit_transform(pumpkins['Color'])
+```
+Keď sme zakódovali vlastnosti a štítok, môžeme ich zlúčiť do nového dataframe `encoded_pumpkins`.
+
+```python
+ encoded_pumpkins = encoded_features.assign(Color=encoded_label)
+```
+✅ Aké sú výhody použitia ordinálneho kódera pre stĺpec `Item Size`?
+
+### Analýza vzťahov medzi premennými
+
+Teraz, keď sme predspracovali naše dáta, môžeme analyzovať vzťahy medzi vlastnosťami a štítkom, aby sme získali predstavu o tom, ako dobre bude model schopný predpovedať štítok na základe vlastností.
+Najlepší spôsob, ako vykonať tento druh analýzy, je vizualizácia dát. Opäť použijeme funkciu `catplot` zo Seaborn na vizualizáciu vzťahov medzi `Item Size`, `Variety` a `Farba` v kategóriálnom grafe. Na lepšiu vizualizáciu dát použijeme zakódovaný stĺpec `Item Size` a nezakódovaný stĺpec `Variety`.
+
+```python
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+ pumpkins['Item Size'] = encoded_pumpkins['ord__Item Size']
+
+ g = sns.catplot(
+ data=pumpkins,
+ x="Item Size", y="Color", row='Variety',
+ kind="box", orient="h",
+ sharex=False, margin_titles=True,
+ height=1.8, aspect=4, palette=palette,
+ )
+ g.set(xlabel="Item Size", ylabel="").set(xlim=(0,6))
+ g.set_titles(row_template="{row_name}")
+```
+
+
+### Použitie swarm grafu
+
+Keďže Farba je binárna kategória (Biela alebo Nie), potrebuje 'špecializovaný prístup [k vizualizácii](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar)'. Existujú aj iné spôsoby vizualizácie vzťahu tejto kategórie s inými premennými.
+
+Premenné môžete vizualizovať vedľa seba pomocou grafov Seaborn.
+
+1. Skúste 'swarm' graf na zobrazenie distribúcie hodnôt:
+
+ ```python
+ palette = {
+ 0: 'orange',
+ 1: 'wheat'
+ }
+ sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette)
+ ```
+
+ 
+
+**Pozor**: vyššie uvedený kód môže generovať varovanie, pretože Seaborn nedokáže reprezentovať také množstvo dátových bodov v swarm grafe. Možným riešením je zmenšenie veľkosti značky pomocou parametra 'size'. Buďte však opatrní, pretože to ovplyvňuje čitateľnosť grafu.
+
+> **🧮 Ukážte mi matematiku**
+>
+> Logistická regresia sa opiera o koncept 'maximálnej pravdepodobnosti' pomocou [sigmoidných funkcií](https://wikipedia.org/wiki/Sigmoid_function). 'Sigmoidná funkcia' na grafe vyzerá ako tvar 'S'. Berie hodnotu a mapuje ju na niečo medzi 0 a 1. Jej krivka sa tiež nazýva 'logistická krivka'. Jej vzorec vyzerá takto:
+>
+> 
+>
+> kde stred sigmoidnej funkcie sa nachádza na 0 bode x, L je maximálna hodnota krivky a k je strmosť krivky. Ak je výsledok funkcie viac ako 0.5, daný štítok bude priradený do triedy '1' binárnej voľby. Ak nie, bude klasifikovaný ako '0'.
+
+## Vytvorte svoj model
+
+Vytvorenie modelu na nájdenie týchto binárnych klasifikácií je prekvapivo jednoduché v Scikit-learn.
+
+[](https://youtu.be/MmZS2otPrQ8 "Strojové učenie pre začiatočníkov - Logistická regresia pre klasifikáciu dát")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o vytváraní modelu lineárnej regresie.
+
+1. Vyberte premenné, ktoré chcete použiť vo svojom klasifikačnom modeli, a rozdeľte tréningové a testovacie sady pomocou `train_test_split()`:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])]
+ y = encoded_pumpkins['Color']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+ ```
+
+2. Teraz môžete trénovať svoj model, zavolaním `fit()` s vašimi tréningovými dátami, a vytlačiť jeho výsledok:
+
+ ```python
+ from sklearn.metrics import f1_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('F1-score: ', f1_score(y_test, predictions))
+ ```
+
+ Pozrite sa na skóre vášho modelu. Nie je to zlé, vzhľadom na to, že máte len asi 1000 riadkov dát:
+
+ ```output
+ precision recall f1-score support
+
+ 0 0.94 0.98 0.96 166
+ 1 0.85 0.67 0.75 33
+
+ accuracy 0.92 199
+ macro avg 0.89 0.82 0.85 199
+ weighted avg 0.92 0.92 0.92 199
+
+ Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
+ 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0
+ 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+ 0 0 0 1 0 0 0 0 0 0 0 0 1 1]
+ F1-score: 0.7457627118644068
+ ```
+
+## Lepšie pochopenie pomocou matice zmätku
+
+Zatiaľ čo môžete získať správu o skóre [termíny](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) vytlačením vyššie uvedených položiek, môžete svoj model lepšie pochopiť pomocou [matice zmätku](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix), ktorá nám pomáha pochopiť, ako model funguje.
+
+> 🎓 '[Matica zmätku](https://wikipedia.org/wiki/Confusion_matrix)' (alebo 'matica chýb') je tabuľka, ktorá vyjadruje skutočné vs. falošné pozitíva a negatíva vášho modelu, čím hodnotí presnosť predpovedí.
+
+1. Na použitie matice zmätku zavolajte `confusion_matrix()`:
+
+ ```python
+ from sklearn.metrics import confusion_matrix
+ confusion_matrix(y_test, predictions)
+ ```
+
+ Pozrite sa na maticu zmätku vášho modelu:
+
+ ```output
+ array([[162, 4],
+ [ 11, 22]])
+ ```
+
+V Scikit-learn, riadky (os 0) sú skutočné štítky a stĺpce (os 1) sú predpovedané štítky.
+
+| | 0 | 1 |
+| :---: | :---: | :---: |
+| 0 | TN | FP |
+| 1 | FN | TP |
+
+Čo sa tu deje? Povedzme, že náš model je požiadaný klasifikovať tekvice medzi dvoma binárnymi kategóriami, kategóriou 'biela' a kategóriou 'nie biela'.
+
+- Ak váš model predpovedá tekvicu ako nie bielu a v skutočnosti patrí do kategórie 'nie biela', nazývame to pravý negatívny, zobrazený horným ľavým číslom.
+- Ak váš model predpovedá tekvicu ako bielu a v skutočnosti patrí do kategórie 'nie biela', nazývame to falošný negatívny, zobrazený dolným ľavým číslom.
+- Ak váš model predpovedá tekvicu ako nie bielu a v skutočnosti patrí do kategórie 'biela', nazývame to falošný pozitívny, zobrazený horným pravým číslom.
+- Ak váš model predpovedá tekvicu ako bielu a v skutočnosti patrí do kategórie 'biela', nazývame to pravý pozitívny, zobrazený dolným pravým číslom.
+
+Ako ste mohli uhádnuť, je preferované mať väčší počet pravých pozitívnych a pravých negatívnych a nižší počet falošných pozitívnych a falošných negatívnych, čo naznačuje, že model funguje lepšie.
+Ako súvisí matica zámien s presnosťou a odvolaním? Pamätajte, že klasifikačná správa uvedená vyššie ukázala presnosť (0,85) a odvolanie (0,67).
+
+Presnosť = tp / (tp + fp) = 22 / (22 + 4) = 0,8461538461538461
+
+Odvolanie = tp / (tp + fn) = 22 / (22 + 11) = 0,6666666666666666
+
+✅ Otázka: Podľa matice zámien, ako si model viedol? Odpoveď: Nie zle; je tu dobrý počet správne negatívnych, ale aj niekoľko nesprávne negatívnych.
+
+Poďme si znova prejsť pojmy, ktoré sme videli skôr, s pomocou mapovania TP/TN a FP/FN v matici zámien:
+
+🎓 Presnosť: TP/(TP + FP) Podiel relevantných prípadov medzi získanými prípadmi (napr. ktoré štítky boli správne označené)
+
+🎓 Odvolanie: TP/(TP + FN) Podiel relevantných prípadov, ktoré boli získané, či už správne označené alebo nie
+
+🎓 f1-skóre: (2 * presnosť * odvolanie)/(presnosť + odvolanie) Vážený priemer presnosti a odvolania, pričom najlepšie je 1 a najhoršie 0
+
+🎓 Podpora: Počet výskytov každého získaného štítku
+
+🎓 Presnosť: (TP + TN)/(TP + TN + FP + FN) Percento štítkov predpovedaných správne pre vzorku.
+
+🎓 Makro priemer: Výpočet nevyváženého priemeru metrík pre každý štítok, bez ohľadu na nerovnováhu štítkov.
+
+🎓 Vážený priemer: Výpočet priemeru metrík pre každý štítok, pričom sa berie do úvahy nerovnováha štítkov vážením podľa ich podpory (počet skutočných prípadov pre každý štítok).
+
+✅ Dokážete si predstaviť, ktorú metriku by ste mali sledovať, ak chcete, aby váš model znížil počet nesprávne negatívnych?
+
+## Vizualizácia ROC krivky tohto modelu
+
+[](https://youtu.be/GApO575jTA0 "ML pre začiatočníkov - Analýza výkonu logistickej regresie pomocou ROC kriviek")
+
+> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad ROC kriviek
+
+Poďme urobiť ešte jednu vizualizáciu, aby sme videli tzv. 'ROC' krivku:
+
+```python
+from sklearn.metrics import roc_curve, roc_auc_score
+import matplotlib
+import matplotlib.pyplot as plt
+%matplotlib inline
+
+y_scores = model.predict_proba(X_test)
+fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1])
+
+fig = plt.figure(figsize=(6, 6))
+plt.plot([0, 1], [0, 1], 'k--')
+plt.plot(fpr, tpr)
+plt.xlabel('False Positive Rate')
+plt.ylabel('True Positive Rate')
+plt.title('ROC Curve')
+plt.show()
+```
+
+Pomocou Matplotlibu vykreslite [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) alebo ROC modelu. ROC krivky sa často používajú na zobrazenie výstupu klasifikátora z hľadiska jeho správne vs. nesprávne pozitívnych. "ROC krivky zvyčajne zobrazujú mieru správne pozitívnych na osi Y a mieru nesprávne pozitívnych na osi X." Preto záleží na strmosti krivky a priestore medzi stredovou čiarou a krivkou: chcete krivku, ktorá rýchlo stúpa a prechádza nad čiaru. V našom prípade sú na začiatku nesprávne pozitívne, a potom krivka správne stúpa a prechádza nad čiaru:
+
+
+
+Nakoniec použite Scikit-learn [`roc_auc_score` API](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) na výpočet skutočnej 'Plochy pod krivkou' (AUC):
+
+```python
+auc = roc_auc_score(y_test,y_scores[:,1])
+print(auc)
+```
+Výsledok je `0.9749908725812341`. Keďže AUC sa pohybuje od 0 do 1, chcete vysoké skóre, pretože model, ktorý je 100% správny vo svojich predpovediach, bude mať AUC 1; v tomto prípade je model _celkom dobrý_.
+
+V budúcich lekciách o klasifikáciách sa naučíte, ako iterovať na zlepšenie skóre vášho modelu. Ale zatiaľ gratulujeme! Dokončili ste tieto lekcie o regresii!
+
+---
+## 🚀Výzva
+
+Logistická regresia má oveľa viac, čo sa dá preskúmať! Ale najlepší spôsob, ako sa učiť, je experimentovať. Nájdite dataset, ktorý sa hodí na tento typ analýzy, a vytvorte s ním model. Čo ste sa naučili? tip: skúste [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) pre zaujímavé datasety.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Prečítajte si prvé stránky [tohto dokumentu zo Stanfordu](https://web.stanford.edu/~jurafsky/slp3/5.pdf) o niektorých praktických využitiach logistickej regresie. Premýšľajte o úlohách, ktoré sú lepšie vhodné pre jeden alebo druhý typ regresných úloh, ktoré sme doteraz študovali. Čo by fungovalo najlepšie?
+
+## Zadanie
+
+[Opakovanie tejto regresie](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/4-Logistic/assignment.md b/translations/sk/2-Regression/4-Logistic/assignment.md
new file mode 100644
index 00000000..c08ecf6a
--- /dev/null
+++ b/translations/sk/2-Regression/4-Logistic/assignment.md
@@ -0,0 +1,25 @@
+
+# Opakovanie niektorých regresií
+
+## Pokyny
+
+V lekcii ste použili podmnožinu údajov o tekviciach. Teraz sa vráťte k pôvodným údajom a skúste použiť všetky, vyčistené a štandardizované, na vytvorenie modelu logistickej regresie.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ---------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- |
+| | Predložený je notebook s dobre vysvetleným a dobre fungujúcim modelom | Predložený je notebook s modelom, ktorý funguje minimálne | Predložený je notebook s modelom, ktorý nefunguje dobre, alebo žiadny |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/4-Logistic/solution/Julia/README.md b/translations/sk/2-Regression/4-Logistic/solution/Julia/README.md
new file mode 100644
index 00000000..eadb024a
--- /dev/null
+++ b/translations/sk/2-Regression/4-Logistic/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/2-Regression/README.md b/translations/sk/2-Regression/README.md
new file mode 100644
index 00000000..22a1e63b
--- /dev/null
+++ b/translations/sk/2-Regression/README.md
@@ -0,0 +1,54 @@
+
+# Regresné modely pre strojové učenie
+## Regionálna téma: Regresné modely pre ceny tekvíc v Severnej Amerike 🎃
+
+V Severnej Amerike sa tekvice často vyrezávajú do strašidelných tvárí na Halloween. Poďme objaviť viac o týchto fascinujúcich zeleninách!
+
+
+> Foto od Beth Teutschmann na Unsplash
+
+## Čo sa naučíte
+
+[](https://youtu.be/5QnJtDad4iQ "Úvodné video o regresii - Kliknite na sledovanie!")
+> 🎥 Kliknite na obrázok vyššie pre rýchle úvodné video k tejto lekcii
+
+Lekcie v tejto sekcii pokrývajú typy regresie v kontexte strojového učenia. Regresné modely môžu pomôcť určiť _vzťah_ medzi premennými. Tento typ modelu dokáže predpovedať hodnoty, ako sú dĺžka, teplota alebo vek, čím odhaľuje vzťahy medzi premennými pri analýze dátových bodov.
+
+V tejto sérii lekcií objavíte rozdiely medzi lineárnou a logistickou regresiou a zistíte, kedy je vhodné použiť jednu alebo druhú.
+
+[](https://youtu.be/XA3OaoW86R8 "ML pre začiatočníkov - Úvod do regresných modelov pre strojové učenie")
+
+> 🎥 Kliknite na obrázok vyššie pre krátke video predstavujúce regresné modely.
+
+V tejto skupine lekcií sa pripravíte na začiatok úloh strojového učenia, vrátane konfigurácie Visual Studio Code na správu notebookov, bežného prostredia pre dátových vedcov. Objavíte knižnicu Scikit-learn pre strojové učenie a vytvoríte svoje prvé modely, pričom sa v tejto kapitole zameriate na regresné modely.
+
+> Existujú užitočné nástroje s nízkym kódom, ktoré vám môžu pomôcť naučiť sa pracovať s regresnými modelmi. Vyskúšajte [Azure ML pre túto úlohu](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+### Lekcie
+
+1. [Nástroje remesla](1-Tools/README.md)
+2. [Správa dát](2-Data/README.md)
+3. [Lineárna a polynomiálna regresia](3-Linear/README.md)
+4. [Logistická regresia](4-Logistic/README.md)
+
+---
+### Kredity
+
+"ML s regresiou" bolo napísané s ♥️ od [Jen Looper](https://twitter.com/jenlooper)
+
+♥️ Prispievatelia kvízov zahŕňajú: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) a [Ornella Altunyan](https://twitter.com/ornelladotcom)
+
+Dataset tekvíc je navrhnutý [týmto projektom na Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) a jeho dáta pochádzajú zo [Štandardných správ terminálových trhov pre špeciálne plodiny](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distribuovaných Ministerstvom poľnohospodárstva Spojených štátov. Pridali sme niekoľko bodov týkajúcich sa farby na základe odrody, aby sme normalizovali distribúciu. Tieto dáta sú vo verejnej doméne.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/3-Web-App/1-Web-App/README.md b/translations/sk/3-Web-App/1-Web-App/README.md
new file mode 100644
index 00000000..4034d227
--- /dev/null
+++ b/translations/sk/3-Web-App/1-Web-App/README.md
@@ -0,0 +1,359 @@
+
+# Vytvorte webovú aplikáciu na použitie ML modelu
+
+V tejto lekcii budete trénovať ML model na dátovej sade, ktorá je doslova mimo tohto sveta: _pozorovania UFO za posledné storočie_, získané z databázy NUFORC.
+
+Naučíte sa:
+
+- Ako 'pickle' trénovaný model
+- Ako použiť tento model v aplikácii Flask
+
+Pokračujeme v používaní notebookov na čistenie dát a trénovanie modelu, ale môžete tento proces posunúť o krok ďalej tým, že preskúmate použitie modelu „v divočine“, takpovediac: v webovej aplikácii.
+
+Na to budete potrebovať vytvoriť webovú aplikáciu pomocou Flask.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+## Vytvorenie aplikácie
+
+Existuje niekoľko spôsobov, ako vytvoriť webové aplikácie na využitie modelov strojového učenia. Vaša webová architektúra môže ovplyvniť spôsob, akým je váš model trénovaný. Predstavte si, že pracujete v spoločnosti, kde skupina pre dátovú vedu vytvorila model, ktorý chcete použiť vo svojej aplikácii.
+
+### Úvahy
+
+Existuje mnoho otázok, ktoré si musíte položiť:
+
+- **Je to webová aplikácia alebo mobilná aplikácia?** Ak vytvárate mobilnú aplikáciu alebo potrebujete použiť model v kontexte IoT, môžete použiť [TensorFlow Lite](https://www.tensorflow.org/lite/) a použiť model v aplikácii pre Android alebo iOS.
+- **Kde bude model umiestnený?** V cloude alebo lokálne?
+- **Podpora offline režimu.** Musí aplikácia fungovať offline?
+- **Aká technológia bola použitá na trénovanie modelu?** Zvolená technológia môže ovplyvniť nástroje, ktoré musíte použiť.
+ - **Použitie TensorFlow.** Ak trénujete model pomocou TensorFlow, napríklad tento ekosystém poskytuje možnosť konvertovať model TensorFlow na použitie vo webovej aplikácii pomocou [TensorFlow.js](https://www.tensorflow.org/js/).
+ - **Použitie PyTorch.** Ak vytvárate model pomocou knižnice ako [PyTorch](https://pytorch.org/), máte možnosť exportovať ho vo formáte [ONNX](https://onnx.ai/) (Open Neural Network Exchange) na použitie vo webových aplikáciách JavaScript, ktoré môžu používať [Onnx Runtime](https://www.onnxruntime.ai/). Táto možnosť bude preskúmaná v budúcej lekcii pre model trénovaný pomocou Scikit-learn.
+ - **Použitie Lobe.ai alebo Azure Custom Vision.** Ak používate ML SaaS (Software as a Service) systém, ako je [Lobe.ai](https://lobe.ai/) alebo [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) na trénovanie modelu, tento typ softvéru poskytuje spôsoby exportu modelu pre mnoho platforiem, vrátane vytvorenia vlastného API, ktoré je možné dotazovať v cloude vašou online aplikáciou.
+
+Máte tiež možnosť vytvoriť celú webovú aplikáciu Flask, ktorá by dokázala trénovať model priamo v webovom prehliadači. To je možné urobiť aj pomocou TensorFlow.js v kontexte JavaScriptu.
+
+Pre naše účely, keďže sme pracovali s notebookmi založenými na Pythone, preskúmajme kroky, ktoré musíte podniknúť na export trénovaného modelu z takého notebooku do formátu čitateľného webovou aplikáciou vytvorenou v Pythone.
+
+## Nástroje
+
+Na túto úlohu budete potrebovať dva nástroje: Flask a Pickle, oba bežiace na Pythone.
+
+✅ Čo je [Flask](https://palletsprojects.com/p/flask/)? Definovaný ako 'mikro-rámec' jeho tvorcami, Flask poskytuje základné funkcie webových rámcov pomocou Pythonu a šablónového enginu na vytváranie webových stránok. Pozrite si [tento modul Learn](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott), aby ste si vyskúšali prácu s Flask.
+
+✅ Čo je [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 je modul Pythonu, ktorý serializuje a de-serializuje štruktúru objektov Pythonu. Keď 'pickle' model, serializujete alebo sploštíte jeho štruktúru na použitie na webe. Buďte opatrní: pickle nie je inherentne bezpečný, takže buďte opatrní, ak ste vyzvaní k 'un-pickle' súboru. Súbor pickle má príponu `.pkl`.
+
+## Cvičenie - vyčistite svoje dáta
+
+V tejto lekcii použijete dáta z 80 000 pozorovaní UFO, zhromaždené [NUFORC](https://nuforc.org) (Národné centrum pre hlásenie UFO). Tieto dáta obsahujú zaujímavé popisy pozorovaní UFO, napríklad:
+
+- **Dlhý príklad popisu.** "Muž sa objaví z lúča svetla, ktorý svieti na trávnaté pole v noci, a beží smerom k parkovisku Texas Instruments".
+- **Krátky príklad popisu.** "svetlá nás prenasledovali".
+
+Tabuľka [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) obsahuje stĺpce o `meste`, `štáte` a `krajine`, kde sa pozorovanie uskutočnilo, `tvare` objektu a jeho `zemepisnej šírke` a `zemepisnej dĺžke`.
+
+V prázdnom [notebooku](../../../../3-Web-App/1-Web-App/notebook.ipynb) zahrnutom v tejto lekcii:
+
+1. importujte `pandas`, `matplotlib` a `numpy`, ako ste to urobili v predchádzajúcich lekciách, a importujte tabuľku ufos. Môžete si pozrieť vzorovú dátovú sadu:
+
+ ```python
+ import pandas as pd
+ import numpy as np
+
+ ufos = pd.read_csv('./data/ufos.csv')
+ ufos.head()
+ ```
+
+1. Konvertujte dáta ufos na malý dataframe s novými názvami. Skontrolujte unikátne hodnoty v poli `Country`.
+
+ ```python
+ ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})
+
+ ufos.Country.unique()
+ ```
+
+1. Teraz môžete zredukovať množstvo dát, s ktorými musíme pracovať, odstránením akýchkoľvek nulových hodnôt a importovaním iba pozorovaní medzi 1-60 sekúnd:
+
+ ```python
+ ufos.dropna(inplace=True)
+
+ ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)]
+
+ ufos.info()
+ ```
+
+1. Importujte knižnicu Scikit-learn `LabelEncoder` na konverziu textových hodnôt krajín na čísla:
+
+ ✅ LabelEncoder kóduje dáta abecedne
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+
+ ufos['Country'] = LabelEncoder().fit_transform(ufos['Country'])
+
+ ufos.head()
+ ```
+
+ Vaše dáta by mali vyzerať takto:
+
+ ```output
+ Seconds Country Latitude Longitude
+ 2 20.0 3 53.200000 -2.916667
+ 3 20.0 4 28.978333 -96.645833
+ 14 30.0 4 35.823889 -80.253611
+ 23 60.0 4 45.582778 -122.352222
+ 24 3.0 3 51.783333 -0.783333
+ ```
+
+## Cvičenie - vytvorte svoj model
+
+Teraz sa môžete pripraviť na trénovanie modelu rozdelením dát na tréningovú a testovaciu skupinu.
+
+1. Vyberte tri vlastnosti, na ktorých chcete trénovať ako svoj X vektor, a y vektor bude `Country`. Chcete byť schopní zadať `Seconds`, `Latitude` a `Longitude` a získať id krajiny na návrat.
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ Selected_features = ['Seconds','Latitude','Longitude']
+
+ X = ufos[Selected_features]
+ y = ufos['Country']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+ ```
+
+1. Trénujte svoj model pomocou logistickej regresie:
+
+ ```python
+ from sklearn.metrics import accuracy_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('Accuracy: ', accuracy_score(y_test, predictions))
+ ```
+
+Presnosť nie je zlá **(okolo 95%)**, čo nie je prekvapujúce, keďže `Country` a `Latitude/Longitude` korelujú.
+
+Model, ktorý ste vytvorili, nie je veľmi revolučný, keďže by ste mali byť schopní odvodiť `Country` z jeho `Latitude` a `Longitude`, ale je to dobré cvičenie na pokus o trénovanie z čistých dát, ktoré ste vyčistili, exportovali a potom použili tento model vo webovej aplikácii.
+
+## Cvičenie - 'pickle' váš model
+
+Teraz je čas _pickle_ váš model! Môžete to urobiť v niekoľkých riadkoch kódu. Keď je _pickled_, načítajte váš pickled model a otestujte ho na vzorovom dátovom poli obsahujúcom hodnoty pre sekundy, zemepisnú šírku a zemepisnú dĺžku.
+
+```python
+import pickle
+model_filename = 'ufo-model.pkl'
+pickle.dump(model, open(model_filename,'wb'))
+
+model = pickle.load(open('ufo-model.pkl','rb'))
+print(model.predict([[50,44,-12]]))
+```
+
+Model vráti **'3'**, čo je kód krajiny pre Spojené kráľovstvo. Divné! 👽
+
+## Cvičenie - vytvorte Flask aplikáciu
+
+Teraz môžete vytvoriť Flask aplikáciu na volanie vášho modelu a návrat podobných výsledkov, ale v vizuálne príjemnejšej podobe.
+
+1. Začnite vytvorením priečinka **web-app** vedľa súboru _notebook.ipynb_, kde sa nachádza váš súbor _ufo-model.pkl_.
+
+1. V tomto priečinku vytvorte ďalšie tri priečinky: **static**, s priečinkom **css** vo vnútri, a **templates**. Teraz by ste mali mať nasledujúce súbory a adresáre:
+
+ ```output
+ web-app/
+ static/
+ css/
+ templates/
+ notebook.ipynb
+ ufo-model.pkl
+ ```
+
+ ✅ Pozrite si riešenie priečinka pre pohľad na hotovú aplikáciu
+
+1. Prvý súbor, ktorý vytvoríte v priečinku _web-app_, je súbor **requirements.txt**. Podobne ako _package.json_ v aplikácii JavaScript, tento súbor uvádza závislosti požadované aplikáciou. Do **requirements.txt** pridajte riadky:
+
+ ```text
+ scikit-learn
+ pandas
+ numpy
+ flask
+ ```
+
+1. Teraz spustite tento súbor navigáciou do _web-app_:
+
+ ```bash
+ cd web-app
+ ```
+
+1. Vo vašom termináli zadajte `pip install`, aby ste nainštalovali knižnice uvedené v _requirements.txt_:
+
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+1. Teraz ste pripravení vytvoriť ďalšie tri súbory na dokončenie aplikácie:
+
+ 1. Vytvorte **app.py** v koreňovom adresári.
+ 2. Vytvorte **index.html** v adresári _templates_.
+ 3. Vytvorte **styles.css** v adresári _static/css_.
+
+1. Vytvorte súbor _styles.css_ s niekoľkými štýlmi:
+
+ ```css
+ body {
+ width: 100%;
+ height: 100%;
+ font-family: 'Helvetica';
+ background: black;
+ color: #fff;
+ text-align: center;
+ letter-spacing: 1.4px;
+ font-size: 30px;
+ }
+
+ input {
+ min-width: 150px;
+ }
+
+ .grid {
+ width: 300px;
+ border: 1px solid #2d2d2d;
+ display: grid;
+ justify-content: center;
+ margin: 20px auto;
+ }
+
+ .box {
+ color: #fff;
+ background: #2d2d2d;
+ padding: 12px;
+ display: inline-block;
+ }
+ ```
+
+1. Ďalej vytvorte súbor _index.html_:
+
+ ```html
+
+
+
+
+ 🛸 UFO Appearance Prediction! 👽
+
+
+
+
+
+
+
+
+
According to the number of seconds, latitude and longitude, which country is likely to have reported seeing a UFO?
+
+
+
+
{{ prediction_text }}
+
+
+
+
+
+
+
+ ```
+
+ Pozrite sa na šablónovanie v tomto súbore. Všimnite si syntax 'mustache' okolo premenných, ktoré budú poskytnuté aplikáciou, ako je text predikcie: `{{}}`. Je tu tiež formulár, ktorý posiela predikciu na trasu `/predict`.
+
+ Nakoniec ste pripravení vytvoriť pythonový súbor, ktorý riadi spotrebu modelu a zobrazenie predikcií:
+
+1. Do `app.py` pridajte:
+
+ ```python
+ import numpy as np
+ from flask import Flask, request, render_template
+ import pickle
+
+ app = Flask(__name__)
+
+ model = pickle.load(open("./ufo-model.pkl", "rb"))
+
+
+ @app.route("/")
+ def home():
+ return render_template("index.html")
+
+
+ @app.route("/predict", methods=["POST"])
+ def predict():
+
+ int_features = [int(x) for x in request.form.values()]
+ final_features = [np.array(int_features)]
+ prediction = model.predict(final_features)
+
+ output = prediction[0]
+
+ countries = ["Australia", "Canada", "Germany", "UK", "US"]
+
+ return render_template(
+ "index.html", prediction_text="Likely country: {}".format(countries[output])
+ )
+
+
+ if __name__ == "__main__":
+ app.run(debug=True)
+ ```
+
+ > 💡 Tip: keď pridáte [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) pri spustení webovej aplikácie pomocou Flask, všetky zmeny, ktoré urobíte vo svojej aplikácii, sa okamžite prejavia bez potreby reštartovania servera. Pozor! Nepovoľujte tento režim v produkčnej aplikácii.
+
+Ak spustíte `python app.py` alebo `python3 app.py` - váš webový server sa spustí lokálne a môžete vyplniť krátky formulár, aby ste získali odpoveď na svoju naliehavú otázku o tom, kde boli UFO pozorované!
+
+Predtým, než to urobíte, pozrite sa na časti `app.py`:
+
+1. Najprv sa načítajú závislosti a aplikácia sa spustí.
+1. Potom sa importuje model.
+1. Potom sa na domovskej trase vykreslí index.html.
+
+Na trase `/predict` sa pri odoslaní formulára deje niekoľko vecí:
+
+1. Premenné formulára sa zhromaždia a konvertujú na numpy pole. Potom sa odošlú modelu a vráti sa predikcia.
+2. Krajiny, ktoré chceme zobraziť, sa znovu vykreslia ako čitateľný text z ich predikovaného kódu krajiny a táto hodnota sa odošle späť do index.html, aby sa vykreslila v šablóne.
+
+Použitie modelu týmto spôsobom, s Flask a pickled modelom, je relatívne jednoduché. Najťažšie je pochopiť, aký tvar dát musí byť odoslaný modelu, aby sa získala predikcia. To všetko závisí od toho, ako bol model trénovaný. Tento má tri dátové body, ktoré je potrebné zadať, aby sa získala predikcia.
+
+V profesionálnom prostredí vidíte, aká dôležitá je dobrá komunikácia medzi ľuďmi, ktorí trénujú model, a tými, ktorí ho používajú vo webovej alebo mobilnej aplikácii. V našom prípade je to len jedna osoba, vy!
+
+---
+
+## 🚀 Výzva
+
+Namiesto práce v notebooku a importovania modelu do Flask aplikácie, môžete model trénovať priamo vo Flask aplikácii! Skúste konvertovať svoj Python kód v notebooku, možno po vyčistení dát, na trénovanie modelu priamo v aplikácii na trase nazvanej `train`. Aké sú výhody a nevýhody sledovania tejto metódy?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samoštúdium
+
+Existuje mnoho spôsobov, ako vytvoriť webovú aplikáciu na využitie ML modelov. Urobte si zoznam spôsobov, ako by ste mohli použiť JavaScript alebo Python na vytvorenie webovej aplikácie na využitie strojového učenia. Zvážte architektúru: mal by model zostať v aplikácii alebo byť umiestnený v cloude? Ak je to druhé, ako by ste k nemu pristupovali? Nakreslite architektonický model pre aplikované ML webové riešenie.
+
+## Zadanie
+
+[Vyskúšajte iný model](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/3-Web-App/1-Web-App/assignment.md b/translations/sk/3-Web-App/1-Web-App/assignment.md
new file mode 100644
index 00000000..ff50b214
--- /dev/null
+++ b/translations/sk/3-Web-App/1-Web-App/assignment.md
@@ -0,0 +1,25 @@
+
+# Vyskúšajte iný model
+
+## Pokyny
+
+Teraz, keď ste vytvorili jednu webovú aplikáciu pomocou natrénovaného regresného modelu, použite jeden z modelov z predchádzajúcej lekcie o regresii na opätovné vytvorenie tejto webovej aplikácie. Môžete zachovať štýl alebo ju navrhnúť inak, aby odrážala údaje o tekviciach. Dávajte pozor na zmenu vstupov tak, aby zodpovedali metóde tréningu vášho modelu.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| -------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -------------------------------------- |
+| | Webová aplikácia funguje podľa očakávaní a je nasadená v cloude | Webová aplikácia obsahuje chyby alebo vykazuje neočakávané výsledky | Webová aplikácia nefunguje správne |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/3-Web-App/README.md b/translations/sk/3-Web-App/README.md
new file mode 100644
index 00000000..0963e386
--- /dev/null
+++ b/translations/sk/3-Web-App/README.md
@@ -0,0 +1,35 @@
+
+# Vytvorte webovú aplikáciu na použitie vášho ML modelu
+
+V tejto časti kurzu sa zoznámite s praktickou témou strojového učenia: ako uložiť váš Scikit-learn model ako súbor, ktorý môže byť použitý na predikcie v rámci webovej aplikácie. Keď je model uložený, naučíte sa, ako ho použiť v webovej aplikácii postavenej vo Flasku. Najskôr vytvoríte model pomocou dát, ktoré sa týkajú pozorovaní UFO! Potom vytvoríte webovú aplikáciu, ktorá vám umožní zadať počet sekúnd spolu s hodnotami zemepisnej šírky a dĺžky na predpovedanie, ktorá krajina nahlásila pozorovanie UFO.
+
+
+
+Foto od Michael Herren na Unsplash
+
+## Lekcie
+
+1. [Vytvorte webovú aplikáciu](1-Web-App/README.md)
+
+## Kredity
+
+"Vytvorte webovú aplikáciu" bolo napísané s ♥️ od [Jen Looper](https://twitter.com/jenlooper).
+
+♥️ Kvízy boli napísané Rohanom Rajom.
+
+Dataset pochádza z [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings).
+
+Architektúra webovej aplikácie bola čiastočne navrhnutá podľa [tohto článku](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) a [tohto repozitára](https://github.com/abhinavsagar/machine-learning-deployment) od Abhinava Sagara.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/1-Introduction/README.md b/translations/sk/4-Classification/1-Introduction/README.md
new file mode 100644
index 00000000..89849333
--- /dev/null
+++ b/translations/sk/4-Classification/1-Introduction/README.md
@@ -0,0 +1,313 @@
+
+# Úvod do klasifikácie
+
+V týchto štyroch lekciách sa budete venovať základnému zameraniu klasického strojového učenia - _klasifikácii_. Prejdeme si používanie rôznych klasifikačných algoritmov s datasetom o všetkých úžasných kuchyniach Ázie a Indie. Dúfam, že máte chuť na jedlo!
+
+
+
+> Oslávte panázijské kuchyne v týchto lekciách! Obrázok od [Jen Looper](https://twitter.com/jenlooper)
+
+Klasifikácia je forma [supervised learning](https://wikipedia.org/wiki/Supervised_learning), ktorá má veľa spoločného s regresnými technikami. Ak je strojové učenie o predpovedaní hodnôt alebo názvov vecí pomocou datasetov, potom klasifikácia všeobecne spadá do dvoch skupín: _binárna klasifikácia_ a _multiklasová klasifikácia_.
+
+[](https://youtu.be/eg8DJYwdMyg "Úvod do klasifikácie")
+
+> 🎥 Kliknite na obrázok vyššie pre video: MIT's John Guttag predstavuje klasifikáciu
+
+Pamätajte:
+
+- **Lineárna regresia** vám pomohla predpovedať vzťahy medzi premennými a robiť presné predpovede o tom, kde nový dátový bod spadne vo vzťahu k tejto čiare. Napríklad ste mohli predpovedať _aká bude cena tekvice v septembri vs. decembri_.
+- **Logistická regresia** vám pomohla objaviť "binárne kategórie": pri tejto cenovej hladine, _je táto tekvica oranžová alebo nie-oranžová_?
+
+Klasifikácia používa rôzne algoritmy na určenie iných spôsobov, ako určiť označenie alebo triedu dátového bodu. Poďme pracovať s týmto datasetom o kuchyniach, aby sme zistili, či na základe skupiny ingrediencií dokážeme určiť jej pôvodnú kuchyňu.
+
+## [Kvíz pred lekciou](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Táto lekcia je dostupná v R!](../../../../4-Classification/1-Introduction/solution/R/lesson_10.html)
+
+### Úvod
+
+Klasifikácia je jednou zo základných aktivít výskumníka strojového učenia a dátového vedca. Od základnej klasifikácie binárnej hodnoty ("je tento email spam alebo nie?") až po komplexnú klasifikáciu a segmentáciu obrázkov pomocou počítačového videnia, je vždy užitočné vedieť triediť dáta do tried a klásť im otázky.
+
+Ak to vyjadríme vedeckejšie, vaša klasifikačná metóda vytvára prediktívny model, ktorý vám umožňuje mapovať vzťah medzi vstupnými premennými a výstupnými premennými.
+
+
+
+> Binárne vs. multiklasové problémy, ktoré musia klasifikačné algoritmy riešiť. Infografika od [Jen Looper](https://twitter.com/jenlooper)
+
+Predtým, než začneme proces čistenia našich dát, ich vizualizácie a prípravy na úlohy strojového učenia, poďme sa trochu naučiť o rôznych spôsoboch, akými môže byť strojové učenie využité na klasifikáciu dát.
+
+Odvodené zo [štatistiky](https://wikipedia.org/wiki/Statistical_classification), klasifikácia pomocou klasického strojového učenia používa vlastnosti, ako `smoker`, `weight` a `age`, na určenie _pravdepodobnosti rozvoja X choroby_. Ako technika supervised learning podobná regresným cvičeniam, ktoré ste vykonávali skôr, vaše dáta sú označené a algoritmy strojového učenia používajú tieto označenia na klasifikáciu a predpovedanie tried (alebo 'vlastností') datasetu a ich priradenie do skupiny alebo výsledku.
+
+✅ Predstavte si dataset o kuchyniach. Aké otázky by mohol multiklasový model zodpovedať? Aké otázky by mohol zodpovedať binárny model? Čo ak by ste chceli určiť, či daná kuchyňa pravdepodobne používa senovku grécku? Čo ak by ste chceli zistiť, či by ste z darovaného nákupného košíka plného badiánu, artičokov, karfiolu a chrenu mohli vytvoriť typické indické jedlo?
+
+[](https://youtu.be/GuTeDbaNoEU "Bláznivé tajomné košíky")
+
+> 🎥 Kliknite na obrázok vyššie pre video. Celý koncept relácie 'Chopped' je o 'tajomnom košíku', kde šéfkuchári musia pripraviť jedlo z náhodného výberu ingrediencií. Určite by model strojového učenia pomohol!
+
+## Ahoj 'klasifikátor'
+
+Otázka, ktorú chceme položiť tomuto datasetu o kuchyniach, je vlastne **multiklasová otázka**, pretože máme niekoľko potenciálnych národných kuchýň, s ktorými môžeme pracovať. Na základe dávky ingrediencií, do ktorej z týchto mnohých tried budú dáta patriť?
+
+Scikit-learn ponúka niekoľko rôznych algoritmov na klasifikáciu dát, v závislosti od typu problému, ktorý chcete vyriešiť. V nasledujúcich dvoch lekciách sa naučíte o niekoľkých z týchto algoritmov.
+
+## Cvičenie - vyčistite a vyvážte svoje dáta
+
+Prvým krokom pred začatím projektu je vyčistiť a **vyvážiť** svoje dáta, aby ste dosiahli lepšie výsledky. Začnite s prázdnym súborom _notebook.ipynb_ v koreňovom adresári tejto zložky.
+
+Prvá vec, ktorú je potrebné nainštalovať, je [imblearn](https://imbalanced-learn.org/stable/). Toto je balík Scikit-learn, ktorý vám umožní lepšie vyvážiť dáta (o tejto úlohe sa dozviete viac za chvíľu).
+
+1. Na inštaláciu `imblearn` spustite `pip install`, takto:
+
+ ```python
+ pip install imblearn
+ ```
+
+1. Importujte balíky, ktoré potrebujete na importovanie a vizualizáciu dát, tiež importujte `SMOTE` z `imblearn`.
+
+ ```python
+ import pandas as pd
+ import matplotlib.pyplot as plt
+ import matplotlib as mpl
+ import numpy as np
+ from imblearn.over_sampling import SMOTE
+ ```
+
+ Teraz ste pripravení na importovanie dát.
+
+1. Ďalším krokom bude importovanie dát:
+
+ ```python
+ df = pd.read_csv('../data/cuisines.csv')
+ ```
+
+ Použitie `read_csv()` načíta obsah súboru _cusines.csv_ a uloží ho do premennej `df`.
+
+1. Skontrolujte tvar dát:
+
+ ```python
+ df.head()
+ ```
+
+ Prvých päť riadkov vyzerá takto:
+
+ ```output
+ | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+ | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+ | 0 | 65 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 1 | 66 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 2 | 67 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 3 | 68 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 4 | 69 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+ ```
+
+1. Získajte informácie o týchto dátach volaním `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Vaša výstupná podoba sa podobá:
+
+ ```output
+
+ RangeIndex: 2448 entries, 0 to 2447
+ Columns: 385 entries, Unnamed: 0 to zucchini
+ dtypes: int64(384), object(1)
+ memory usage: 7.2+ MB
+ ```
+
+## Cvičenie - učenie o kuchyniach
+
+Teraz sa práca začína stávať zaujímavejšou. Poďme objaviť distribúciu dát podľa kuchyne.
+
+1. Vykreslite dáta ako stĺpce volaním `barh()`:
+
+ ```python
+ df.cuisine.value_counts().plot.barh()
+ ```
+
+ 
+
+ Existuje konečný počet kuchýň, ale distribúcia dát je nerovnomerná. Môžete to opraviť! Predtým však trochu preskúmajte.
+
+1. Zistite, koľko dát je dostupných na kuchyňu a vytlačte to:
+
+ ```python
+ thai_df = df[(df.cuisine == "thai")]
+ japanese_df = df[(df.cuisine == "japanese")]
+ chinese_df = df[(df.cuisine == "chinese")]
+ indian_df = df[(df.cuisine == "indian")]
+ korean_df = df[(df.cuisine == "korean")]
+
+ print(f'thai df: {thai_df.shape}')
+ print(f'japanese df: {japanese_df.shape}')
+ print(f'chinese df: {chinese_df.shape}')
+ print(f'indian df: {indian_df.shape}')
+ print(f'korean df: {korean_df.shape}')
+ ```
+
+ Výstup vyzerá takto:
+
+ ```output
+ thai df: (289, 385)
+ japanese df: (320, 385)
+ chinese df: (442, 385)
+ indian df: (598, 385)
+ korean df: (799, 385)
+ ```
+
+## Objavovanie ingrediencií
+
+Teraz môžete ísť hlbšie do dát a zistiť, aké sú typické ingrediencie pre jednotlivé kuchyne. Mali by ste vyčistiť opakujúce sa dáta, ktoré vytvárajú zmätok medzi kuchyňami, takže sa poďme dozvedieť o tomto probléme.
+
+1. Vytvorte funkciu `create_ingredient()` v Pythone na vytvorenie dataframe ingrediencií. Táto funkcia začne odstránením nepotrebného stĺpca a triedením ingrediencií podľa ich počtu:
+
+ ```python
+ def create_ingredient_df(df):
+ ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value')
+ ingredient_df = ingredient_df[(ingredient_df.T != 0).any()]
+ ingredient_df = ingredient_df.sort_values(by='value', ascending=False,
+ inplace=False)
+ return ingredient_df
+ ```
+
+ Teraz môžete použiť túto funkciu na získanie predstavy o desiatich najpopulárnejších ingredienciách podľa kuchyne.
+
+1. Zavolajte `create_ingredient()` a vykreslite to volaním `barh()`:
+
+ ```python
+ thai_ingredient_df = create_ingredient_df(thai_df)
+ thai_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Urobte to isté pre japonské dáta:
+
+ ```python
+ japanese_ingredient_df = create_ingredient_df(japanese_df)
+ japanese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Teraz pre čínske ingrediencie:
+
+ ```python
+ chinese_ingredient_df = create_ingredient_df(chinese_df)
+ chinese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Vykreslite indické ingrediencie:
+
+ ```python
+ indian_ingredient_df = create_ingredient_df(indian_df)
+ indian_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Nakoniec vykreslite kórejské ingrediencie:
+
+ ```python
+ korean_ingredient_df = create_ingredient_df(korean_df)
+ korean_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Teraz odstráňte najbežnejšie ingrediencie, ktoré vytvárajú zmätok medzi rôznymi kuchyňami, volaním `drop()`:
+
+ Každý miluje ryžu, cesnak a zázvor!
+
+ ```python
+ feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1)
+ labels_df = df.cuisine #.unique()
+ feature_df.head()
+ ```
+
+## Vyváženie datasetu
+
+Teraz, keď ste vyčistili dáta, použite [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Synthetic Minority Over-sampling Technique" - na ich vyváženie.
+
+1. Zavolajte `fit_resample()`, táto stratégia generuje nové vzorky interpoláciou.
+
+ ```python
+ oversample = SMOTE()
+ transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)
+ ```
+
+ Vyvážením dát dosiahnete lepšie výsledky pri ich klasifikácii. Premýšľajte o binárnej klasifikácii. Ak väčšina vašich dát patrí do jednej triedy, model strojového učenia bude predpovedať túto triedu častejšie, len preto, že je pre ňu viac dát. Vyváženie dát odstráni túto nerovnováhu.
+
+1. Teraz môžete skontrolovať počet označení na ingredienciu:
+
+ ```python
+ print(f'new label count: {transformed_label_df.value_counts()}')
+ print(f'old label count: {df.cuisine.value_counts()}')
+ ```
+
+ Vaša výstupná podoba vyzerá takto:
+
+ ```output
+ new label count: korean 799
+ chinese 799
+ indian 799
+ japanese 799
+ thai 799
+ Name: cuisine, dtype: int64
+ old label count: korean 799
+ indian 598
+ chinese 442
+ japanese 320
+ thai 289
+ Name: cuisine, dtype: int64
+ ```
+
+ Dáta sú pekné, čisté, vyvážené a veľmi chutné!
+
+1. Posledným krokom je uloženie vyvážených dát, vrátane označení a vlastností, do nového dataframe, ktorý môže byť exportovaný do súboru:
+
+ ```python
+ transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer')
+ ```
+
+1. Môžete sa ešte raz pozrieť na dáta pomocou `transformed_df.head()` a `transformed_df.info()`. Uložte kópiu týchto dát na použitie v budúcich lekciách:
+
+ ```python
+ transformed_df.head()
+ transformed_df.info()
+ transformed_df.to_csv("../data/cleaned_cuisines.csv")
+ ```
+
+ Tento nový CSV súbor sa teraz nachádza v koreňovom adresári dát.
+
+---
+
+## 🚀Výzva
+
+Tento učebný plán obsahuje niekoľko zaujímavých datasetov. Prezrite si zložky `data` a zistite, či niektoré obsahujú datasety, ktoré by boli vhodné pre binárnu alebo multiklasovú klasifikáciu? Aké otázky by ste mohli položiť tomuto datasetu?
+
+## [Kvíz po lekcii](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Preskúmajte API SMOTE. Pre aké prípady použitia je najlepšie? Aké problémy rieši?
+
+## Zadanie
+
+[Preskúmajte metódy klasifikácie](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/1-Introduction/assignment.md b/translations/sk/4-Classification/1-Introduction/assignment.md
new file mode 100644
index 00000000..a72e294b
--- /dev/null
+++ b/translations/sk/4-Classification/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Preskúmajte metódy klasifikácie
+
+## Pokyny
+
+V [dokumentácii Scikit-learn](https://scikit-learn.org/stable/supervised_learning.html) nájdete rozsiahly zoznam spôsobov, ako klasifikovať dáta. Urobte si malý prieskum v tejto dokumentácii: vaším cieľom je nájsť metódy klasifikácie a priradiť k nim dataset z tohto kurzu, otázku, ktorú môžete položiť, a techniku klasifikácie. Vytvorte tabuľku alebo tabuľku v súbore .doc a vysvetlite, ako by dataset fungoval s algoritmom klasifikácie.
+
+## Hodnotiace kritériá
+
+| Kritériá | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| -------- | ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| | Dokument obsahuje prehľad 5 algoritmov spolu s klasifikačnou technikou. Prehľad je dobre vysvetlený a podrobný. | Dokument obsahuje prehľad 3 algoritmov spolu s klasifikačnou technikou. Prehľad je dobre vysvetlený a podrobný. | Dokument obsahuje prehľad menej ako troch algoritmov spolu s klasifikačnou technikou a prehľad nie je dobre vysvetlený ani podrobný. |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/1-Introduction/solution/Julia/README.md b/translations/sk/4-Classification/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..87dc8ab7
--- /dev/null
+++ b/translations/sk/4-Classification/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/2-Classifiers-1/README.md b/translations/sk/4-Classification/2-Classifiers-1/README.md
new file mode 100644
index 00000000..9cce8866
--- /dev/null
+++ b/translations/sk/4-Classification/2-Classifiers-1/README.md
@@ -0,0 +1,253 @@
+
+# Klasifikátory kuchýň 1
+
+V tejto lekcii použijete dataset, ktorý ste si uložili z predchádzajúcej lekcie, plný vyvážených a čistých údajov o kuchyniach.
+
+Tento dataset použijete s rôznymi klasifikátormi na _predpovedanie národnej kuchyne na základe skupiny ingrediencií_. Pri tom sa dozviete viac o tom, ako môžu byť algoritmy využívané na klasifikačné úlohy.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+# Príprava
+
+Za predpokladu, že ste dokončili [Lekciu 1](../1-Introduction/README.md), uistite sa, že súbor _cleaned_cuisines.csv_ existuje v koreňovom priečinku `/data` pre tieto štyri lekcie.
+
+## Cvičenie - predpovedanie národnej kuchyne
+
+1. Pracujte v priečinku _notebook.ipynb_ tejto lekcie, importujte tento súbor spolu s knižnicou Pandas:
+
+ ```python
+ import pandas as pd
+ cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv")
+ cuisines_df.head()
+ ```
+
+ Údaje vyzerajú takto:
+
+| | Unnamed: 0 | kuchyňa | mandľa | angelika | aníz | anízové semeno | jablko | jablkový brandy | marhuľa | armagnac | ... | whiskey | biely chlieb | biele víno | celozrnná pšeničná múka | víno | drevo | yam | droždie | jogurt | cuketa |
+| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+| 0 | 0 | indická | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | indická | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 2 | indická | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 3 | indická | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 4 | indická | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+
+
+1. Teraz importujte niekoľko ďalších knižníc:
+
+ ```python
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ from sklearn.svm import SVC
+ import numpy as np
+ ```
+
+1. Rozdeľte X a y súradnice do dvoch dataframeov na trénovanie. `cuisine` môže byť dataframe s označeniami:
+
+ ```python
+ cuisines_label_df = cuisines_df['cuisine']
+ cuisines_label_df.head()
+ ```
+
+ Bude to vyzerať takto:
+
+ ```output
+ 0 indian
+ 1 indian
+ 2 indian
+ 3 indian
+ 4 indian
+ Name: cuisine, dtype: object
+ ```
+
+1. Odstráňte stĺpec `Unnamed: 0` a stĺpec `cuisine` pomocou `drop()`. Zvyšok údajov uložte ako trénovateľné vlastnosti:
+
+ ```python
+ cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
+ cuisines_feature_df.head()
+ ```
+
+ Vaše vlastnosti vyzerajú takto:
+
+| | mandľa | angelika | aníz | anízové semeno | jablko | jablkový brandy | marhuľa | armagnac | artemisia | artičok | ... | whiskey | biely chlieb | biele víno | celozrnná pšeničná múka | víno | drevo | yam | droždie | jogurt | cuketa |
+| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
+| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
+
+Teraz ste pripravení trénovať váš model!
+
+## Výber klasifikátora
+
+Keď sú vaše údaje čisté a pripravené na trénovanie, musíte sa rozhodnúť, ktorý algoritmus použiť na túto úlohu.
+
+Scikit-learn zaraďuje klasifikáciu pod Supervised Learning, a v tejto kategórii nájdete mnoho spôsobov klasifikácie. [Rozmanitosť](https://scikit-learn.org/stable/supervised_learning.html) je na prvý pohľad dosť zarážajúca. Nasledujúce metódy zahŕňajú techniky klasifikácie:
+
+- Lineárne modely
+- Support Vector Machines
+- Stochastický gradientný zostup
+- Najbližší susedia
+- Gaussovské procesy
+- Rozhodovacie stromy
+- Ensemble metódy (hlasovací klasifikátor)
+- Multiclass a multioutput algoritmy (multiclass a multilabel klasifikácia, multiclass-multioutput klasifikácia)
+
+> Na klasifikáciu údajov môžete použiť aj [neurónové siete](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), ale to je mimo rozsah tejto lekcie.
+
+### Aký klasifikátor zvoliť?
+
+Takže, ktorý klasifikátor by ste si mali vybrať? Často je dobré vyskúšať niekoľko a hľadať dobrý výsledok. Scikit-learn ponúka [porovnanie vedľa seba](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) na vytvorenom datasete, kde porovnáva KNeighbors, SVC dvoma spôsobmi, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB a QuadraticDiscriminationAnalysis, pričom výsledky vizualizuje:
+
+
+> Grafy generované na dokumentácii Scikit-learn
+
+> AutoML tento problém elegantne rieši tým, že vykonáva tieto porovnania v cloude, čo vám umožňuje vybrať najlepší algoritmus pre vaše údaje. Vyskúšajte to [tu](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
+
+### Lepší prístup
+
+Lepší spôsob ako náhodne hádať je však nasledovať nápady z tejto stiahnuteľnej [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Tu zistíme, že pre náš multiclass problém máme niekoľko možností:
+
+
+> Časť Microsoftovej Algorithm Cheat Sheet, ktorá podrobne opisuje možnosti multiclass klasifikácie
+
+✅ Stiahnite si tento cheat sheet, vytlačte ho a zaveste na stenu!
+
+### Úvahy
+
+Pozrime sa, či dokážeme rozumne zhodnotiť rôzne prístupy vzhľadom na obmedzenia, ktoré máme:
+
+- **Neurónové siete sú príliš náročné**. Vzhľadom na náš čistý, ale minimálny dataset a fakt, že trénovanie prebieha lokálne cez notebooky, sú neurónové siete príliš náročné na túto úlohu.
+- **Žiadny dvojtriedny klasifikátor**. Nepoužívame dvojtriedny klasifikátor, takže to vylučuje one-vs-all.
+- **Rozhodovací strom alebo logistická regresia by mohli fungovať**. Rozhodovací strom by mohol fungovať, alebo logistická regresia pre multiclass údaje.
+- **Multiclass Boosted Decision Trees riešia iný problém**. Multiclass Boosted Decision Tree je najvhodnejší pre neparametrické úlohy, napr. úlohy určené na vytváranie rebríčkov, takže pre nás nie je užitočný.
+
+### Použitie Scikit-learn
+
+Budeme používať Scikit-learn na analýzu našich údajov. Existuje však mnoho spôsobov, ako použiť logistickú regresiu v Scikit-learn. Pozrite sa na [parametre na nastavenie](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+V podstate existujú dva dôležité parametre - `multi_class` a `solver` - ktoré musíme špecifikovať, keď požiadame Scikit-learn o vykonanie logistickej regresie. Hodnota `multi_class` aplikuje určitú logiku. Hodnota solveru určuje, aký algoritmus sa použije. Nie všetky solvery môžu byť spárované so všetkými hodnotami `multi_class`.
+
+Podľa dokumentácie, v prípade multiclass, tréningový algoritmus:
+
+- **Používa schému one-vs-rest (OvR)**, ak je možnosť `multi_class` nastavená na `ovr`
+- **Používa cross-entropy loss**, ak je možnosť `multi_class` nastavená na `multinomial`. (Momentálne je možnosť `multinomial` podporovaná iba solvermi ‘lbfgs’, ‘sag’, ‘saga’ a ‘newton-cg’.)
+
+> 🎓 Schéma tu môže byť buď 'ovr' (one-vs-rest) alebo 'multinomial'. Keďže logistická regresia je skutočne navrhnutá na podporu binárnej klasifikácie, tieto schémy jej umožňujú lepšie zvládnuť úlohy multiclass klasifikácie. [zdroj](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
+
+> 🎓 Solver je definovaný ako "algoritmus, ktorý sa použije na optimalizačný problém". [zdroj](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Scikit-learn ponúka túto tabuľku na vysvetlenie, ako solvery zvládajú rôzne výzvy, ktoré predstavujú rôzne typy dátových štruktúr:
+
+
+
+## Cvičenie - rozdelenie údajov
+
+Môžeme sa zamerať na logistickú regresiu pre náš prvý tréningový pokus, keďže ste sa o nej nedávno učili v predchádzajúcej lekcii.
+Rozdeľte svoje údaje na trénovacie a testovacie skupiny pomocou `train_test_split()`:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+```
+
+## Cvičenie - aplikácia logistickej regresie
+
+Keďže používate prípad multiclass, musíte si vybrať, akú _schému_ použiť a aký _solver_ nastaviť. Použite LogisticRegression s nastavením multiclass a solverom **liblinear** na trénovanie.
+
+1. Vytvorte logistickú regresiu s multi_class nastavenou na `ovr` a solverom nastaveným na `liblinear`:
+
+ ```python
+ lr = LogisticRegression(multi_class='ovr',solver='liblinear')
+ model = lr.fit(X_train, np.ravel(y_train))
+
+ accuracy = model.score(X_test, y_test)
+ print ("Accuracy is {}".format(accuracy))
+ ```
+
+ ✅ Vyskúšajte iný solver, napríklad `lbfgs`, ktorý je často nastavený ako predvolený.
+> Poznámka: Použite funkciu Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) na zjednodušenie vašich údajov, keď je to potrebné.
+Presnosť je dobrá na viac ako **80%**!
+
+1. Tento model si môžete vyskúšať na jednom riadku dát (#50):
+
+ ```python
+ print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
+ print(f'cuisine: {y_test.iloc[50]}')
+ ```
+
+ Výsledok sa zobrazí:
+
+ ```output
+ ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
+ cuisine: indian
+ ```
+
+ ✅ Skúste iné číslo riadku a skontrolujte výsledky.
+
+1. Ak chcete ísť hlbšie, môžete skontrolovať presnosť tejto predikcie:
+
+ ```python
+ test= X_test.iloc[50].values.reshape(-1, 1).T
+ proba = model.predict_proba(test)
+ classes = model.classes_
+ resultdf = pd.DataFrame(data=proba, columns=classes)
+
+ topPrediction = resultdf.T.sort_values(by=[0], ascending = [False])
+ topPrediction.head()
+ ```
+
+ Výsledok sa zobrazí - indická kuchyňa je najpravdepodobnejší odhad s dobrou pravdepodobnosťou:
+
+ | | 0 |
+ | -------: | -------: |
+ | indian | 0.715851 |
+ | chinese | 0.229475 |
+ | japanese | 0.029763 |
+ | korean | 0.017277 |
+ | thai | 0.007634 |
+
+ ✅ Dokážete vysvetliť, prečo si model myslí, že ide o indickú kuchyňu?
+
+1. Získajte viac detailov vytlačením klasifikačnej správy, ako ste to robili v lekciách o regresii:
+
+ ```python
+ y_pred = model.predict(X_test)
+ print(classification_report(y_test,y_pred))
+ ```
+
+ | | presnosť | recall | f1-skóre | podpora |
+ | ------------ | -------- | ------ | -------- | ------- |
+ | chinese | 0.73 | 0.71 | 0.72 | 229 |
+ | indian | 0.91 | 0.93 | 0.92 | 254 |
+ | japanese | 0.70 | 0.75 | 0.72 | 220 |
+ | korean | 0.86 | 0.76 | 0.81 | 242 |
+ | thai | 0.79 | 0.85 | 0.82 | 254 |
+ | presnosť | 0.80 | 1199 | | |
+ | priemer makro| 0.80 | 0.80 | 0.80 | 1199 |
+ | vážený priemer| 0.80 | 0.80 | 0.80 | 1199 |
+
+## 🚀Výzva
+
+V tejto lekcii ste použili vyčistené dáta na vytvorenie modelu strojového učenia, ktorý dokáže predpovedať národnú kuchyňu na základe série ingrediencií. Venujte čas preskúmaniu mnohých možností, ktoré Scikit-learn ponúka na klasifikáciu dát. Ponorte sa hlbšie do konceptu 'solver', aby ste pochopili, čo sa deje v zákulisí.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad & Samoštúdium
+
+Preskúmajte matematiku za logistickou regresiou v [tejto lekcii](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
+## Zadanie
+
+[Preskúmajte solvery](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/2-Classifiers-1/assignment.md b/translations/sk/4-Classification/2-Classifiers-1/assignment.md
new file mode 100644
index 00000000..06908edc
--- /dev/null
+++ b/translations/sk/4-Classification/2-Classifiers-1/assignment.md
@@ -0,0 +1,23 @@
+
+# Preskúmajte riešiteľov
+## Pokyny
+
+V tejto lekcii ste sa naučili o rôznych riešiteľoch, ktoré spájajú algoritmy s procesom strojového učenia na vytvorenie presného modelu. Prejdite si riešiteľov uvedených v lekcii a vyberte dvoch. Vlastnými slovami porovnajte a kontrastujte týchto dvoch riešiteľov. Aký typ problému riešia? Ako pracujú s rôznymi dátovými štruktúrami? Prečo by ste si vybrali jedného pred druhým?
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------- | ---------------------------- |
+| | Predložený je .doc súbor s dvoma odstavcami, každý o jednom riešiteľovi, s premysleným porovnaním. | Predložený je .doc súbor s iba jedným odstavcom | Zadanie je neúplné |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/2-Classifiers-1/solution/Julia/README.md b/translations/sk/4-Classification/2-Classifiers-1/solution/Julia/README.md
new file mode 100644
index 00000000..b7512284
--- /dev/null
+++ b/translations/sk/4-Classification/2-Classifiers-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/3-Classifiers-2/README.md b/translations/sk/4-Classification/3-Classifiers-2/README.md
new file mode 100644
index 00000000..a42a281b
--- /dev/null
+++ b/translations/sk/4-Classification/3-Classifiers-2/README.md
@@ -0,0 +1,249 @@
+
+# Klasifikátory kuchýň 2
+
+V tejto druhej lekcii o klasifikácii preskúmate ďalšie spôsoby klasifikácie číselných údajov. Tiež sa dozviete o dôsledkoch výberu jedného klasifikátora oproti druhému.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+### Predpoklady
+
+Predpokladáme, že ste dokončili predchádzajúce lekcie a máte vyčistený dataset vo vašom priečinku `data` s názvom _cleaned_cuisines.csv_ v koreňovom adresári tejto 4-lekciovej zložky.
+
+### Príprava
+
+Načítali sme váš súbor _notebook.ipynb_ s vyčisteným datasetom a rozdelili ho na dátové rámce X a y, pripravené na proces vytvárania modelu.
+
+## Mapa klasifikácie
+
+Predtým ste sa naučili o rôznych možnostiach klasifikácie údajov pomocou cheat sheetu od Microsoftu. Scikit-learn ponúka podobný, ale podrobnejší cheat sheet, ktorý vám môže pomôcť ešte viac zúžiť výber odhadovačov (iný termín pre klasifikátory):
+
+
+> Tip: [navštívte túto mapu online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) a kliknite na cesty, aby ste si prečítali dokumentáciu.
+
+### Plán
+
+Táto mapa je veľmi užitočná, keď máte jasný prehľad o svojich údajoch, pretože sa môžete „prejsť“ po jej cestách k rozhodnutiu:
+
+- Máme >50 vzoriek
+- Chceme predpovedať kategóriu
+- Máme označené údaje
+- Máme menej ako 100K vzoriek
+- ✨ Môžeme zvoliť Linear SVC
+- Ak to nefunguje, keďže máme číselné údaje
+ - Môžeme skúsiť ✨ KNeighbors Classifier
+ - Ak to nefunguje, skúste ✨ SVC a ✨ Ensemble Classifiers
+
+Toto je veľmi užitočná cesta, ktorú treba sledovať.
+
+## Cvičenie - rozdelenie údajov
+
+Podľa tejto cesty by sme mali začať importovaním niektorých knižníc na použitie.
+
+1. Importujte potrebné knižnice:
+
+ ```python
+ from sklearn.neighbors import KNeighborsClassifier
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.svm import SVC
+ from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ import numpy as np
+ ```
+
+1. Rozdeľte svoje tréningové a testovacie údaje:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+ ```
+
+## Linear SVC klasifikátor
+
+Support-Vector clustering (SVC) je súčasťou rodiny techník strojového učenia Support-Vector Machines (viac o nich nižšie). V tejto metóde si môžete vybrať „kernel“, ktorý rozhoduje o tom, ako sa budú označenia zoskupovať. Parameter 'C' sa týka 'regularizácie', ktorá reguluje vplyv parametrov. Kernel môže byť jeden z [niekoľkých](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); tu ho nastavíme na 'linear', aby sme využili Linear SVC. Pravdepodobnosť je predvolene nastavená na 'false'; tu ju nastavíme na 'true', aby sme získali odhady pravdepodobnosti. Random state nastavíme na '0', aby sme premiešali údaje na získanie pravdepodobností.
+
+### Cvičenie - aplikácia Linear SVC
+
+Začnite vytvorením poľa klasifikátorov. Postupne budete pridávať do tohto poľa, ako budeme testovať.
+
+1. Začnite s Linear SVC:
+
+ ```python
+ C = 10
+ # Create different classifiers.
+ classifiers = {
+ 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
+ }
+ ```
+
+2. Natrénujte svoj model pomocou Linear SVC a vytlačte správu:
+
+ ```python
+ n_classifiers = len(classifiers)
+
+ for index, (name, classifier) in enumerate(classifiers.items()):
+ classifier.fit(X_train, np.ravel(y_train))
+
+ y_pred = classifier.predict(X_test)
+ accuracy = accuracy_score(y_test, y_pred)
+ print("Accuracy (train) for %s: %0.1f%% " % (name, accuracy * 100))
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Výsledok je celkom dobrý:
+
+ ```output
+ Accuracy (train) for Linear SVC: 78.6%
+ precision recall f1-score support
+
+ chinese 0.71 0.67 0.69 242
+ indian 0.88 0.86 0.87 234
+ japanese 0.79 0.74 0.76 254
+ korean 0.85 0.81 0.83 242
+ thai 0.71 0.86 0.78 227
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+## K-Neighbors klasifikátor
+
+K-Neighbors je súčasťou rodiny metód strojového učenia „neighbors“, ktoré sa dajú použiť na riadené aj neriadené učenie. V tejto metóde sa vytvorí preddefinovaný počet bodov a údaje sa zhromažďujú okolo týchto bodov tak, aby sa dali predpovedať všeobecné označenia pre údaje.
+
+### Cvičenie - aplikácia K-Neighbors klasifikátora
+
+Predchádzajúci klasifikátor bol dobrý a fungoval dobre s údajmi, ale možno môžeme dosiahnuť lepšiu presnosť. Skúste K-Neighbors klasifikátor.
+
+1. Pridajte riadok do svojho poľa klasifikátorov (pridajte čiarku za položku Linear SVC):
+
+ ```python
+ 'KNN classifier': KNeighborsClassifier(C),
+ ```
+
+ Výsledok je o niečo horší:
+
+ ```output
+ Accuracy (train) for KNN classifier: 73.8%
+ precision recall f1-score support
+
+ chinese 0.64 0.67 0.66 242
+ indian 0.86 0.78 0.82 234
+ japanese 0.66 0.83 0.74 254
+ korean 0.94 0.58 0.72 242
+ thai 0.71 0.82 0.76 227
+
+ accuracy 0.74 1199
+ macro avg 0.76 0.74 0.74 1199
+ weighted avg 0.76 0.74 0.74 1199
+ ```
+
+ ✅ Zistite viac o [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
+
+## Support Vector klasifikátor
+
+Support-Vector klasifikátory sú súčasťou rodiny metód strojového učenia [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), ktoré sa používajú na klasifikačné a regresné úlohy. SVM „mapujú tréningové príklady na body v priestore“, aby maximalizovali vzdialenosť medzi dvoma kategóriami. Následné údaje sa mapujú do tohto priestoru, aby sa dala predpovedať ich kategória.
+
+### Cvičenie - aplikácia Support Vector klasifikátora
+
+Skúsme dosiahnuť o niečo lepšiu presnosť pomocou Support Vector klasifikátora.
+
+1. Pridajte čiarku za položku K-Neighbors a potom pridajte tento riadok:
+
+ ```python
+ 'SVC': SVC(),
+ ```
+
+ Výsledok je veľmi dobrý!
+
+ ```output
+ Accuracy (train) for SVC: 83.2%
+ precision recall f1-score support
+
+ chinese 0.79 0.74 0.76 242
+ indian 0.88 0.90 0.89 234
+ japanese 0.87 0.81 0.84 254
+ korean 0.91 0.82 0.86 242
+ thai 0.74 0.90 0.81 227
+
+ accuracy 0.83 1199
+ macro avg 0.84 0.83 0.83 1199
+ weighted avg 0.84 0.83 0.83 1199
+ ```
+
+ ✅ Zistite viac o [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
+
+## Ensemble klasifikátory
+
+Poďme sledovať cestu až do konca, aj keď predchádzajúci test bol veľmi dobrý. Skúsme niektoré 'Ensemble Classifiers', konkrétne Random Forest a AdaBoost:
+
+```python
+ 'RFST': RandomForestClassifier(n_estimators=100),
+ 'ADA': AdaBoostClassifier(n_estimators=100)
+```
+
+Výsledok je veľmi dobrý, najmä pre Random Forest:
+
+```output
+Accuracy (train) for RFST: 84.5%
+ precision recall f1-score support
+
+ chinese 0.80 0.77 0.78 242
+ indian 0.89 0.92 0.90 234
+ japanese 0.86 0.84 0.85 254
+ korean 0.88 0.83 0.85 242
+ thai 0.80 0.87 0.83 227
+
+ accuracy 0.84 1199
+ macro avg 0.85 0.85 0.84 1199
+weighted avg 0.85 0.84 0.84 1199
+
+Accuracy (train) for ADA: 72.4%
+ precision recall f1-score support
+
+ chinese 0.64 0.49 0.56 242
+ indian 0.91 0.83 0.87 234
+ japanese 0.68 0.69 0.69 254
+ korean 0.73 0.79 0.76 242
+ thai 0.67 0.83 0.74 227
+
+ accuracy 0.72 1199
+ macro avg 0.73 0.73 0.72 1199
+weighted avg 0.73 0.72 0.72 1199
+```
+
+✅ Zistite viac o [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
+
+Táto metóda strojového učenia „kombinuje predpovede niekoľkých základných odhadovačov“, aby zlepšila kvalitu modelu. V našom príklade sme použili Random Trees a AdaBoost.
+
+- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metóda priemerovania, vytvára „les“ z „rozhodovacích stromov“ naplnených náhodnosťou, aby sa zabránilo pretrénovaniu. Parameter n_estimators je nastavený na počet stromov.
+
+- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) prispôsobí klasifikátor datasetu a potom prispôsobí kópie tohto klasifikátora rovnakému datasetu. Zameriava sa na váhy nesprávne klasifikovaných položiek a upravuje fit pre ďalší klasifikátor, aby ich opravil.
+
+---
+
+## 🚀Výzva
+
+Každá z týchto techník má veľké množstvo parametrov, ktoré môžete upraviť. Preskúmajte predvolené parametre každého z nich a premýšľajte o tom, čo by znamenalo upravenie týchto parametrov pre kvalitu modelu.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+V týchto lekciách je veľa odborných výrazov, takže si chvíľu preštudujte [tento zoznam](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) užitočnej terminológie!
+
+## Zadanie
+
+[Parameter play](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/3-Classifiers-2/assignment.md b/translations/sk/4-Classification/3-Classifiers-2/assignment.md
new file mode 100644
index 00000000..6d145018
--- /dev/null
+++ b/translations/sk/4-Classification/3-Classifiers-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Hra s parametrami
+
+## Pokyny
+
+Pri práci s týmito klasifikátormi je veľa parametrov nastavených predvolene. Intellisense v VS Code vám môže pomôcť preskúmať ich. Vyberte jednu z techník klasifikácie strojového učenia z tejto lekcie a znovu natrénujte modely, pričom upravíte rôzne hodnoty parametrov. Vytvorte notebook, ktorý vysvetlí, prečo niektoré zmeny zlepšujú kvalitu modelu, zatiaľ čo iné ju zhoršujú. Buďte vo svojej odpovedi podrobní.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ---------------------------- |
+| | Notebook je prezentovaný s plne vybudovaným klasifikátorom, jeho parametre sú upravené a zmeny sú vysvetlené v textových poliach | Notebook je čiastočne prezentovaný alebo slabo vysvetlený | Notebook je chybný alebo má nedostatky |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/3-Classifiers-2/solution/Julia/README.md b/translations/sk/4-Classification/3-Classifiers-2/solution/Julia/README.md
new file mode 100644
index 00000000..d3473620
--- /dev/null
+++ b/translations/sk/4-Classification/3-Classifiers-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/4-Applied/README.md b/translations/sk/4-Classification/4-Applied/README.md
new file mode 100644
index 00000000..82def68e
--- /dev/null
+++ b/translations/sk/4-Classification/4-Applied/README.md
@@ -0,0 +1,329 @@
+
+# Vytvorenie webovej aplikácie na odporúčanie kuchyne
+
+V tejto lekcii si vytvoríte klasifikačný model pomocou techník, ktoré ste sa naučili v predchádzajúcich lekciách, a s použitím datasetu chutných kuchýň, ktorý sa používal v celej tejto sérii. Okrem toho si vytvoríte malú webovú aplikáciu na použitie uloženého modelu, využívajúc webový runtime Onnx.
+
+Jedným z najpraktickejších využití strojového učenia je vytváranie odporúčacích systémov, a dnes môžete urobiť prvý krok týmto smerom!
+
+[](https://youtu.be/17wdM9AHMfg "Applied ML")
+
+> 🎥 Kliknite na obrázok vyššie pre video: Jen Looper vytvára webovú aplikáciu pomocou klasifikovaných údajov o kuchyniach
+
+## [Kvíz pred lekciou](https://ff-quizzes.netlify.app/en/ml/)
+
+V tejto lekcii sa naučíte:
+
+- Ako vytvoriť model a uložiť ho ako Onnx model
+- Ako použiť Netron na kontrolu modelu
+- Ako použiť váš model vo webovej aplikácii na inferenciu
+
+## Vytvorenie modelu
+
+Vytváranie aplikovaných ML systémov je dôležitou súčasťou využívania týchto technológií pre vaše obchodné systémy. Modely môžete používať vo svojich webových aplikáciách (a teda ich používať v offline režime, ak je to potrebné) pomocou Onnx.
+
+V [predchádzajúcej lekcii](../../3-Web-App/1-Web-App/README.md) ste vytvorili regresný model o pozorovaniach UFO, "picklovali" ho a použili ho vo Flask aplikácii. Aj keď je táto architektúra veľmi užitočná, ide o plnohodnotnú Python aplikáciu, a vaše požiadavky môžu zahŕňať použitie JavaScript aplikácie.
+
+V tejto lekcii si môžete vytvoriť základný systém na inferenciu založený na JavaScripte. Najprv však musíte vytrénovať model a konvertovať ho na použitie s Onnx.
+
+## Cvičenie - trénovanie klasifikačného modelu
+
+Najprv vytrénujte klasifikačný model pomocou vyčisteného datasetu kuchýň, ktorý sme použili.
+
+1. Začnite importovaním užitočných knižníc:
+
+ ```python
+ !pip install skl2onnx
+ import pandas as pd
+ ```
+
+ Potrebujete '[skl2onnx](https://onnx.ai/sklearn-onnx/)', aby ste mohli konvertovať váš Scikit-learn model do Onnx formátu.
+
+1. Potom pracujte s vašimi údajmi rovnakým spôsobom ako v predchádzajúcich lekciách, čítaním CSV súboru pomocou `read_csv()`:
+
+ ```python
+ data = pd.read_csv('../data/cleaned_cuisines.csv')
+ data.head()
+ ```
+
+1. Odstráňte prvé dva nepotrebné stĺpce a uložte zostávajúce údaje ako 'X':
+
+ ```python
+ X = data.iloc[:,2:]
+ X.head()
+ ```
+
+1. Uložte štítky ako 'y':
+
+ ```python
+ y = data[['cuisine']]
+ y.head()
+
+ ```
+
+### Spustenie tréningovej rutiny
+
+Použijeme knižnicu 'SVC', ktorá má dobrú presnosť.
+
+1. Importujte príslušné knižnice zo Scikit-learn:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+ from sklearn.svm import SVC
+ from sklearn.model_selection import cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report
+ ```
+
+1. Rozdeľte tréningové a testovacie sady:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
+ ```
+
+1. Vytvorte klasifikačný model SVC, ako ste to urobili v predchádzajúcej lekcii:
+
+ ```python
+ model = SVC(kernel='linear', C=10, probability=True,random_state=0)
+ model.fit(X_train,y_train.values.ravel())
+ ```
+
+1. Teraz otestujte váš model, zavolaním `predict()`:
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+1. Vytlačte klasifikačnú správu na kontrolu kvality modelu:
+
+ ```python
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Ako sme videli predtým, presnosť je dobrá:
+
+ ```output
+ precision recall f1-score support
+
+ chinese 0.72 0.69 0.70 257
+ indian 0.91 0.87 0.89 243
+ japanese 0.79 0.77 0.78 239
+ korean 0.83 0.79 0.81 236
+ thai 0.72 0.84 0.78 224
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+### Konverzia modelu na Onnx
+
+Uistite sa, že konverziu vykonávate s správnym počtom tensorov. Tento dataset má 380 uvedených ingrediencií, takže musíte uviesť toto číslo v `FloatTensorType`:
+
+1. Konvertujte s tensorovým číslom 380.
+
+ ```python
+ from skl2onnx import convert_sklearn
+ from skl2onnx.common.data_types import FloatTensorType
+
+ initial_type = [('float_input', FloatTensorType([None, 380]))]
+ options = {id(model): {'nocl': True, 'zipmap': False}}
+ ```
+
+1. Vytvorte onx a uložte ako súbor **model.onnx**:
+
+ ```python
+ onx = convert_sklearn(model, initial_types=initial_type, options=options)
+ with open("./model.onnx", "wb") as f:
+ f.write(onx.SerializeToString())
+ ```
+
+ > Poznámka: Môžete zadať [možnosti](https://onnx.ai/sklearn-onnx/parameterized.html) vo vašom konverznom skripte. V tomto prípade sme nastavili 'nocl' na True a 'zipmap' na False. Keďže ide o klasifikačný model, máte možnosť odstrániť ZipMap, ktorý produkuje zoznam slovníkov (nie je potrebné). `nocl` sa týka informácií o triedach zahrnutých v modeli. Zmenšite veľkosť vášho modelu nastavením `nocl` na 'True'.
+
+Spustením celého notebooku teraz vytvoríte Onnx model a uložíte ho do tejto zložky.
+
+## Zobrazenie modelu
+
+Onnx modely nie sú veľmi viditeľné vo Visual Studio Code, ale existuje veľmi dobrý bezplatný softvér, ktorý mnohí výskumníci používajú na vizualizáciu modelu, aby sa uistili, že je správne vytvorený. Stiahnite si [Netron](https://github.com/lutzroeder/Netron) a otvorte váš súbor model.onnx. Môžete vidieť váš jednoduchý model vizualizovaný, s jeho 380 vstupmi a klasifikátorom uvedeným:
+
+
+
+Netron je užitočný nástroj na zobrazenie vašich modelov.
+
+Teraz ste pripravení použiť tento šikovný model vo webovej aplikácii. Vytvorme aplikáciu, ktorá bude užitočná, keď sa pozriete do vašej chladničky a pokúsite sa zistiť, akú kombináciu vašich zvyšných ingrediencií môžete použiť na prípravu určitej kuchyne, ako určí váš model.
+
+## Vytvorenie webovej aplikácie na odporúčanie
+
+Môžete použiť váš model priamo vo webovej aplikácii. Táto architektúra tiež umožňuje jeho spustenie lokálne a dokonca offline, ak je to potrebné. Začnite vytvorením súboru `index.html` v tej istej zložke, kde ste uložili váš súbor `model.onnx`.
+
+1. V tomto súbore _index.html_ pridajte nasledujúci markup:
+
+ ```html
+
+
+
+ Cuisine Matcher
+
+
+ ...
+
+
+ ```
+
+1. Teraz, pracujúc v rámci značiek `body`, pridajte trochu markupu na zobrazenie zoznamu zaškrtávacích políčok odrážajúcich niektoré ingrediencie:
+
+ ```html
+
Check your refrigerator. What can you create?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ```
+
+ Všimnite si, že každé zaškrtávacie políčko má hodnotu. Táto hodnota odráža index, kde sa ingrediencia nachádza podľa datasetu. Jablko, napríklad, v tomto abecednom zozname, zaberá piaty stĺpec, takže jeho hodnota je '4', keďže začíname počítať od 0. Môžete si pozrieť [spreadsheet ingrediencií](../../../../4-Classification/data/ingredient_indexes.csv), aby ste zistili index danej ingrediencie.
+
+ Pokračujúc vo vašej práci v súbore index.html, pridajte blok skriptu, kde je model volaný po poslednom uzatváracom ``.
+
+1. Najprv importujte [Onnx Runtime](https://www.onnxruntime.ai/):
+
+ ```html
+
+ ```
+
+ > Onnx Runtime sa používa na umožnenie spustenia vašich Onnx modelov na širokej škále hardvérových platforiem, vrátane optimalizácií a API na použitie.
+
+1. Keď je Runtime na mieste, môžete ho zavolať:
+
+ ```html
+
+ ```
+
+V tomto kóde sa deje niekoľko vecí:
+
+1. Vytvorili ste pole 380 možných hodnôt (1 alebo 0), ktoré sa nastavujú a posielajú modelu na inferenciu, v závislosti od toho, či je zaškrtávacie políčko zaškrtnuté.
+2. Vytvorili ste pole zaškrtávacích políčok a spôsob, ako určiť, či boli zaškrtnuté, vo funkcii `init`, ktorá sa volá pri spustení aplikácie. Keď je zaškrtávacie políčko zaškrtnuté, pole `ingredients` sa upraví tak, aby odrážalo zvolenú ingredienciu.
+3. Vytvorili ste funkciu `testCheckboxes`, ktorá kontroluje, či bolo zaškrtnuté nejaké políčko.
+4. Používate funkciu `startInference`, keď je stlačené tlačidlo, a ak je zaškrtnuté nejaké políčko, začnete inferenciu.
+5. Rutina inferencie zahŕňa:
+ 1. Nastavenie asynchrónneho načítania modelu
+ 2. Vytvorenie Tensor štruktúry na odoslanie modelu
+ 3. Vytvorenie 'feeds', ktoré odrážajú vstup `float_input`, ktorý ste vytvorili pri trénovaní vášho modelu (môžete použiť Netron na overenie názvu)
+ 4. Odoslanie týchto 'feeds' modelu a čakanie na odpoveď
+
+## Testovanie aplikácie
+
+Otvorte terminálovú reláciu vo Visual Studio Code v zložke, kde sa nachádza váš súbor index.html. Uistite sa, že máte [http-server](https://www.npmjs.com/package/http-server) nainštalovaný globálne, a zadajte `http-server` na výzvu. Lokálny hostiteľ by sa mal otvoriť a môžete si prezrieť vašu webovú aplikáciu. Skontrolujte, aká kuchyňa je odporúčaná na základe rôznych ingrediencií:
+
+
+
+Gratulujeme, vytvorili ste webovú aplikáciu na odporúčanie s niekoľkými poliami. Venujte nejaký čas rozšíreniu tohto systému!
+
+## 🚀Výzva
+
+Vaša webová aplikácia je veľmi jednoduchá, takže pokračujte v jej rozširovaní pomocou ingrediencií a ich indexov z údajov [ingredient_indexes](../../../../4-Classification/data/ingredient_indexes.csv). Aké kombinácie chutí fungujú na vytvorenie určitého národného jedla?
+
+## [Kvíz po lekcii](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Aj keď sa táto lekcia len dotkla užitočnosti vytvárania odporúčacieho systému pre ingrediencie, táto oblasť aplikácií ML je veľmi bohatá na príklady. Prečítajte si viac o tom, ako sa tieto systémy vytvárajú:
+
+- https://www.sciencedirect.com/topics/computer-science/recommendation-engine
+- https://www.technologyreview.com/2014/08/25/171547/the-ultimate-challenge-for-recommendation-engines/
+- https://www.technologyreview.com/2015/03/23/168831/everything-is-a-recommendation/
+
+## Zadanie
+
+[Vytvorte nový odporúčací systém](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/4-Applied/assignment.md b/translations/sk/4-Classification/4-Applied/assignment.md
new file mode 100644
index 00000000..be58cef9
--- /dev/null
+++ b/translations/sk/4-Classification/4-Applied/assignment.md
@@ -0,0 +1,25 @@
+
+# Vytvorte odporúčací systém
+
+## Pokyny
+
+Na základe cvičení v tejto lekcii už viete, ako vytvoriť webovú aplikáciu založenú na JavaScripte pomocou Onnx Runtime a konvertovaného Onnx modelu. Experimentujte s vytvorením nového odporúčacieho systému pomocou údajov z týchto lekcií alebo získaných z iných zdrojov (prosím, uveďte zdroj). Môžete napríklad vytvoriť odporúčací systém pre domáce zvieratá na základe rôznych osobnostných vlastností alebo odporúčací systém hudobných žánrov podľa nálady človeka. Buďte kreatívni!
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | --------------------------------------------------------------------- | ------------------------------------ | -------------------------------- |
+| | Webová aplikácia a notebook sú prezentované, dobre zdokumentované a funkčné | Jeden z nich chýba alebo má chyby | Oba buď chýbajú, alebo majú chyby |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/4-Classification/README.md b/translations/sk/4-Classification/README.md
new file mode 100644
index 00000000..c483af4d
--- /dev/null
+++ b/translations/sk/4-Classification/README.md
@@ -0,0 +1,41 @@
+
+# Začíname s klasifikáciou
+
+## Regionálna téma: Lahodné ázijské a indické kuchyne 🍜
+
+V Ázii a Indii sú tradície v jedle mimoriadne rozmanité a veľmi chutné! Pozrime sa na údaje o regionálnych kuchyniach, aby sme lepšie pochopili ich ingrediencie.
+
+
+> Fotografia od Lisheng Chang na Unsplash
+
+## Čo sa naučíte
+
+V tejto sekcii nadviažete na svoje predchádzajúce štúdium regresie a naučíte sa o ďalších klasifikátoroch, ktoré môžete použiť na lepšie pochopenie údajov.
+
+> Existujú užitočné nástroje s nízkym kódom, ktoré vám môžu pomôcť naučiť sa pracovať s modelmi klasifikácie. Vyskúšajte [Azure ML na túto úlohu](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Lekcie
+
+1. [Úvod do klasifikácie](1-Introduction/README.md)
+2. [Viac klasifikátorov](2-Classifiers-1/README.md)
+3. [Ďalšie klasifikátory](3-Classifiers-2/README.md)
+4. [Aplikované ML: vytvorte webovú aplikáciu](4-Applied/README.md)
+
+## Kredity
+
+"Začíname s klasifikáciou" bolo napísané s ♥️ od [Cassie Breviu](https://www.twitter.com/cassiebreviu) a [Jen Looper](https://www.twitter.com/jenlooper)
+
+Dataset o lahodných kuchyniach pochádza z [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines).
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/5-Clustering/1-Visualize/README.md b/translations/sk/5-Clustering/1-Visualize/README.md
new file mode 100644
index 00000000..5230f7c9
--- /dev/null
+++ b/translations/sk/5-Clustering/1-Visualize/README.md
@@ -0,0 +1,347 @@
+
+# Úvod do zhlukovania
+
+Zhlukovanie je typ [neučenej metódy](https://wikipedia.org/wiki/Unsupervised_learning), ktorá predpokladá, že dataset nie je označený alebo že jeho vstupy nie sú spojené s preddefinovanými výstupmi. Používa rôzne algoritmy na triedenie neoznačených dát a poskytuje skupiny na základe vzorov, ktoré rozpozná v dátach.
+
+[](https://youtu.be/ty2advRiWJM "No One Like You od PSquare")
+
+> 🎥 Kliknite na obrázok vyššie pre video. Kým študujete strojové učenie so zhlukovaním, užite si niektoré nigerijské Dance Hall skladby - toto je vysoko hodnotená skladba z roku 2014 od PSquare.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+### Úvod
+
+[Zhlukovanie](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) je veľmi užitočné pre prieskum dát. Pozrime sa, či nám môže pomôcť objaviť trendy a vzory v tom, ako nigerijské publikum konzumuje hudbu.
+
+✅ Zamyslite sa na chvíľu nad využitím zhlukovania. V reálnom živote sa zhlukovanie deje vždy, keď máte hromadu bielizne a potrebujete roztriediť oblečenie členov rodiny 🧦👕👖🩲. V dátovej vede sa zhlukovanie deje pri analýze preferencií používateľov alebo pri určovaní charakteristík akéhokoľvek neoznačeného datasetu. Zhlukovanie, do istej miery, pomáha urobiť poriadok z chaosu, ako napríklad zásuvka na ponožky.
+
+[](https://youtu.be/esmzYhuFnds "Úvod do zhlukovania")
+
+> 🎥 Kliknite na obrázok vyššie pre video: John Guttag z MIT predstavuje zhlukovanie.
+
+V profesionálnom prostredí môže byť zhlukovanie použité na určenie vecí, ako je segmentácia trhu, napríklad na určenie, ktoré vekové skupiny kupujú aké položky. Ďalším využitím by mohlo byť odhaľovanie anomálií, napríklad na detekciu podvodov z datasetu transakcií kreditných kariet. Alebo by ste mohli použiť zhlukovanie na určenie nádorov v dávke medicínskych skenov.
+
+✅ Zamyslite sa na chvíľu nad tým, ako ste sa mohli stretnúť so zhlukovaním „v divočine“, v bankovníctve, e-commerce alebo obchodnom prostredí.
+
+> 🎓 Zaujímavosť: Analýza zhlukov vznikla v oblasti antropológie a psychológie v 30. rokoch 20. storočia. Dokážete si predstaviť, ako mohla byť použitá?
+
+Alternatívne by ste ju mohli použiť na zoskupenie výsledkov vyhľadávania - napríklad podľa nákupných odkazov, obrázkov alebo recenzií. Zhlukovanie je užitočné, keď máte veľký dataset, ktorý chcete zredukovať a na ktorom chcete vykonať podrobnejšiu analýzu, takže táto technika môže byť použitá na získanie informácií o dátach pred vytvorením iných modelov.
+
+✅ Keď sú vaše dáta organizované do zhlukov, priradíte im identifikátor zhluku, a táto technika môže byť užitočná pri zachovaní súkromia datasetu; namiesto odkazovania na konkrétne údaje môžete odkazovať na identifikátor zhluku. Dokážete si predstaviť ďalšie dôvody, prečo by ste odkazovali na identifikátor zhluku namiesto iných prvkov zhluku na jeho identifikáciu?
+
+Prehĺbte svoje pochopenie techník zhlukovania v tomto [učebnom module](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott).
+
+## Začíname so zhlukovaním
+
+[Scikit-learn ponúka širokú škálu](https://scikit-learn.org/stable/modules/clustering.html) metód na vykonávanie zhlukovania. Typ, ktorý si vyberiete, bude závisieť od vášho prípadu použitia. Podľa dokumentácie má každá metóda rôzne výhody. Tu je zjednodušená tabuľka metód podporovaných Scikit-learn a ich vhodné prípady použitia:
+
+| Názov metódy | Prípad použitia |
+| :--------------------------- | :------------------------------------------------------------------- |
+| K-Means | všeobecné použitie, induktívne |
+| Affinity propagation | mnoho, nerovnomerné zhluky, induktívne |
+| Mean-shift | mnoho, nerovnomerné zhluky, induktívne |
+| Spectral clustering | málo, rovnomerné zhluky, transduktívne |
+| Ward hierarchical clustering | mnoho, obmedzené zhluky, transduktívne |
+| Agglomerative clustering | mnoho, obmedzené, ne-Euklidovské vzdialenosti, transduktívne |
+| DBSCAN | neplochá geometria, nerovnomerné zhluky, transduktívne |
+| OPTICS | neplochá geometria, nerovnomerné zhluky s variabilnou hustotou, transduktívne |
+| Gaussian mixtures | plochá geometria, induktívne |
+| BIRCH | veľký dataset s odľahlými bodmi, induktívne |
+
+> 🎓 Ako vytvárame zhluky, má veľa spoločného s tým, ako zhromažďujeme dátové body do skupín. Poďme si rozobrať niektoré pojmy:
+>
+> 🎓 ['Transduktívne' vs. 'induktívne'](https://wikipedia.org/wiki/Transduction_(machine_learning))
+>
+> Transduktívna inferencia je odvodená z pozorovaných tréningových prípadov, ktoré sa mapujú na konkrétne testovacie prípady. Induktívna inferencia je odvodená z tréningových prípadov, ktoré sa mapujú na všeobecné pravidlá, ktoré sa potom aplikujú na testovacie prípady.
+>
+> Príklad: Predstavte si, že máte dataset, ktorý je len čiastočne označený. Niektoré veci sú „platne“, niektoré „CD“ a niektoré sú prázdne. Vašou úlohou je poskytnúť označenia pre prázdne miesta. Ak si vyberiete induktívny prístup, trénovali by ste model hľadajúci „platne“ a „CD“ a aplikovali tieto označenia na vaše neoznačené dáta. Tento prístup bude mať problémy s klasifikáciou vecí, ktoré sú vlastne „kazety“. Transduktívny prístup, na druhej strane, efektívnejšie spracováva tieto neznáme dáta, pretože pracuje na zoskupení podobných položiek a potom aplikuje označenie na skupinu. V tomto prípade by zhluky mohli odrážať „okrúhle hudobné veci“ a „štvorcové hudobné veci“.
+>
+> 🎓 ['Neplochá' vs. 'plochá' geometria](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
+>
+> Odvodené z matematickej terminológie, neplochá vs. plochá geometria sa týka merania vzdialeností medzi bodmi buď „plochými“ ([Euklidovskými](https://wikipedia.org/wiki/Euclidean_geometry)) alebo „neplochými“ (ne-Euklidovskými) geometrickými metódami.
+>
+>'Plochá' v tomto kontexte odkazuje na Euklidovskú geometriu (časti ktorej sa učia ako „rovinná“ geometria), a neplochá odkazuje na ne-Euklidovskú geometriu. Čo má geometria spoločné so strojovým učením? Ako dve oblasti, ktoré sú zakorenené v matematike, musí existovať spoločný spôsob merania vzdialeností medzi bodmi v zhlukoch, a to môže byť vykonané „plochým“ alebo „neplochým“ spôsobom, v závislosti od povahy dát. [Euklidovské vzdialenosti](https://wikipedia.org/wiki/Euclidean_distance) sa merajú ako dĺžka úsečky medzi dvoma bodmi. [Ne-Euklidovské vzdialenosti](https://wikipedia.org/wiki/Non-Euclidean_geometry) sa merajú pozdĺž krivky. Ak vaše dáta, vizualizované, neexistujú na rovine, možno budete potrebovať použiť špecializovaný algoritmus na ich spracovanie.
+>
+
+> Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
+>
+> 🎓 ['Vzdialenosti'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
+>
+> Zhluky sú definované ich maticou vzdialeností, napr. vzdialenosti medzi bodmi. Táto vzdialenosť môže byť meraná niekoľkými spôsobmi. Euklidovské zhluky sú definované priemerom hodnôt bodov a obsahujú „centroid“ alebo stredový bod. Vzdialenosti sú teda merané vzdialenosťou k tomuto centroidu. Ne-Euklidovské vzdialenosti odkazujú na „clustroidy“, bod najbližší k ostatným bodom. Clustroidy môžu byť definované rôznymi spôsobmi.
+>
+> 🎓 ['Obmedzené'](https://wikipedia.org/wiki/Constrained_clustering)
+>
+> [Obmedzené zhlukovanie](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) zavádza „semi-učené“ učenie do tejto neučenej metódy. Vzťahy medzi bodmi sú označené ako „nemôže byť prepojené“ alebo „musí byť prepojené“, takže na dataset sú aplikované určité pravidlá.
+>
+>Príklad: Ak je algoritmus voľne spustený na dávke neoznačených alebo semi-označených dát, zhluky, ktoré vytvorí, môžu byť nekvalitné. V príklade vyššie by zhluky mohli zoskupovať „okrúhle hudobné veci“ a „štvorcové hudobné veci“ a „trojuholníkové veci“ a „sušienky“. Ak sú dané nejaké obmedzenia alebo pravidlá, ktoré treba dodržiavať („položka musí byť vyrobená z plastu“, „položka musí byť schopná produkovať hudbu“), môže to pomôcť „obmedziť“ algoritmus, aby robil lepšie rozhodnutia.
+>
+> 🎓 'Hustota'
+>
+> Dáta, ktoré sú „hlučné“, sa považujú za „husté“. Vzdialenosti medzi bodmi v každom z jeho zhlukov môžu byť pri skúmaní viac alebo menej husté, alebo „preplnené“, a preto tieto dáta potrebujú byť analyzované vhodnou metódou zhlukovania. [Tento článok](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) demonštruje rozdiel medzi použitím K-Means zhlukovania vs. HDBSCAN algoritmov na preskúmanie hlučného datasetu s nerovnomernou hustotou zhlukov.
+
+## Algoritmy zhlukovania
+
+Existuje viac ako 100 algoritmov zhlukovania a ich použitie závisí od povahy dostupných dát. Poďme diskutovať o niektorých hlavných:
+
+- **Hierarchické zhlukovanie**. Ak je objekt klasifikovaný podľa jeho blízkosti k blízkemu objektu, namiesto vzdialeného, zhluky sú tvorené na základe vzdialenosti členov od ostatných objektov. Agglomeratívne zhlukovanie v Scikit-learn je hierarchické.
+
+ 
+ > Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Zhlukovanie podľa centroidu**. Tento populárny algoritmus vyžaduje výber 'k', alebo počet zhlukov, ktoré sa majú vytvoriť, po ktorom algoritmus určí stredový bod zhluku a zhromaždí dáta okolo tohto bodu. [K-means zhlukovanie](https://wikipedia.org/wiki/K-means_clustering) je populárna verzia zhlukovania podľa centroidu. Stred je určený najbližším priemerom, odtiaľ názov. Štvorcová vzdialenosť od zhluku je minimalizovaná.
+
+ 
+ > Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Distribučné zhlukovanie**. Založené na štatistickom modelovaní, distribučné zhlukovanie sa zameriava na určenie pravdepodobnosti, že dátový bod patrí do zhluku, a jeho priradenie. Metódy Gaussovských zmesí patria do tohto typu.
+
+- **Zhlukovanie podľa hustoty**. Dátové body sú priradené do zhlukov na základe ich hustoty, alebo ich zoskupenia okolo seba. Dátové body vzdialené od skupiny sú považované za odľahlé body alebo šum. DBSCAN, Mean-shift a OPTICS patria do tohto typu zhlukovania.
+
+- **Zhlukovanie podľa mriežky**. Pre multidimenzionálne datasety sa vytvorí mriežka a dáta sa rozdelia medzi bunky mriežky, čím sa vytvoria zhluky.
+
+## Cvičenie - zhlukujte svoje dáta
+
+Zhlukovanie ako technika je výrazne podporené správnou vizualizáciou, takže začnime vizualizáciou našich hudobných dát. Toto cvičenie nám pomôže rozhodnúť, ktorú z metód zhlukovania by sme mali najefektívnejšie použiť pre povahu týchto dát.
+
+1. Otvorte súbor [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) v tomto priečinku.
+
+1. Importujte balík `Seaborn` pre dobrú vizualizáciu dát.
+
+ ```python
+ !pip install seaborn
+ ```
+
+1. Pripojte hudobné dáta zo súboru [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Načítajte dataframe s niektorými dátami o skladbách. Pripravte sa na preskúmanie týchto dát importovaním knižníc a vypísaním dát:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import pandas as pd
+
+ df = pd.read_csv("../data/nigerian-songs.csv")
+ df.head()
+ ```
+
+ Skontrolujte prvých pár riadkov dát:
+
+ | | názov | album | umelec | hlavný žáner umelca | dátum vydania | dĺžka | popularita | tanečnosť | akustickosť | energia | inštrumentálnosť | živosť | hlasitosť | rečovosť | tempo | takt |
+ | --- | ----------------------- | ---------------------------- | ------------------- | ------------------- | ------------- | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- |
+ | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternatívne r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 |
+ | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 |
+| 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 |
+| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 |
+| 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 |
+
+1. Získajte niektoré informácie o dátovom rámci, zavolaním `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Výstup vyzerá takto:
+
+ ```output
+
+ RangeIndex: 530 entries, 0 to 529
+ Data columns (total 16 columns):
+ # Column Non-Null Count Dtype
+ --- ------ -------------- -----
+ 0 name 530 non-null object
+ 1 album 530 non-null object
+ 2 artist 530 non-null object
+ 3 artist_top_genre 530 non-null object
+ 4 release_date 530 non-null int64
+ 5 length 530 non-null int64
+ 6 popularity 530 non-null int64
+ 7 danceability 530 non-null float64
+ 8 acousticness 530 non-null float64
+ 9 energy 530 non-null float64
+ 10 instrumentalness 530 non-null float64
+ 11 liveness 530 non-null float64
+ 12 loudness 530 non-null float64
+ 13 speechiness 530 non-null float64
+ 14 tempo 530 non-null float64
+ 15 time_signature 530 non-null int64
+ dtypes: float64(8), int64(4), object(4)
+ memory usage: 66.4+ KB
+ ```
+
+1. Skontrolujte, či neobsahuje nulové hodnoty, zavolaním `isnull()` a overením, že súčet je 0:
+
+ ```python
+ df.isnull().sum()
+ ```
+
+ Vyzerá to dobre:
+
+ ```output
+ name 0
+ album 0
+ artist 0
+ artist_top_genre 0
+ release_date 0
+ length 0
+ popularity 0
+ danceability 0
+ acousticness 0
+ energy 0
+ instrumentalness 0
+ liveness 0
+ loudness 0
+ speechiness 0
+ tempo 0
+ time_signature 0
+ dtype: int64
+ ```
+
+1. Popíšte údaje:
+
+ ```python
+ df.describe()
+ ```
+
+ | | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
+ | ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- |
+ | count | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 |
+ | mean | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011 | 0.130748 | 116.487864 | 3.986792 |
+ | std | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 |
+ | min | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 |
+ | 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 |
+ | 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 |
+ | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
+ | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
+
+> 🤔 Ak pracujeme s klastrovaním, nesupervidovanou metódou, ktorá nevyžaduje označené údaje, prečo zobrazujeme tieto údaje s označeniami? Počas fázy skúmania údajov sú užitočné, ale pre fungovanie algoritmov klastrovania nie sú potrebné. Mohli by ste rovnako odstrániť hlavičky stĺpcov a odkazovať na údaje podľa čísla stĺpca.
+
+Pozrite sa na všeobecné hodnoty údajov. Všimnite si, že popularita môže byť '0', čo ukazuje piesne, ktoré nemajú žiadne hodnotenie. Tieto odstránime čoskoro.
+
+1. Použite stĺpcový graf na zistenie najpopulárnejších žánrov:
+
+ ```python
+ import seaborn as sns
+
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top[:5].index,y=top[:5].values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ 
+
+✅ Ak chcete vidieť viac najlepších hodnôt, zmeňte top `[:5]` na väčšiu hodnotu alebo ho odstráňte, aby ste videli všetky.
+
+Všimnite si, že keď je najlepší žáner opísaný ako 'Missing', znamená to, že Spotify ho neklasifikoval, takže ho odstránime.
+
+1. Odstráňte chýbajúce údaje ich filtrovaním
+
+ ```python
+ df = df[df['artist_top_genre'] != 'Missing']
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ Teraz znova skontrolujte žánre:
+
+ 
+
+1. Tri najlepšie žánre jednoznačne dominujú tejto množine údajov. Zamerajme sa na `afro dancehall`, `afropop` a `nigerian pop`, a navyše filtrovaním odstráňme všetko s hodnotou popularity 0 (čo znamená, že nebolo klasifikované s popularitou v množine údajov a môže byť považované za šum pre naše účely):
+
+ ```python
+ df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
+ df = df[(df['popularity'] > 0)]
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+1. Rýchlo otestujte, či údaje korelujú nejakým výrazným spôsobom:
+
+ ```python
+ corrmat = df.corr(numeric_only=True)
+ f, ax = plt.subplots(figsize=(12, 9))
+ sns.heatmap(corrmat, vmax=.8, square=True)
+ ```
+
+ 
+
+ Jediná silná korelácia je medzi `energy` a `loudness`, čo nie je príliš prekvapujúce, keďže hlasná hudba je zvyčajne dosť energická. Inak sú korelácie relatívne slabé. Bude zaujímavé vidieť, čo s týmito údajmi dokáže algoritmus klastrovania.
+
+ > 🎓 Všimnite si, že korelácia neimplikuje kauzalitu! Máme dôkaz o korelácii, ale žiadny dôkaz o kauzalite. [Zábavná webová stránka](https://tylervigen.com/spurious-correlations) obsahuje niekoľko vizuálov, ktoré zdôrazňujú tento bod.
+
+Existuje nejaká konvergencia v tejto množine údajov okolo vnímania popularity a tanečnosti piesne? FacetGrid ukazuje, že existujú sústredné kruhy, ktoré sa zhodujú, bez ohľadu na žáner. Mohlo by to byť tak, že nigérijské chute sa zhodujú na určitej úrovni tanečnosti pre tento žáner?
+
+✅ Vyskúšajte rôzne dátové body (energy, loudness, speechiness) a viac alebo iné hudobné žánre. Čo môžete objaviť? Pozrite sa na tabuľku `df.describe()`, aby ste videli všeobecné rozloženie dátových bodov.
+
+### Cvičenie - rozloženie údajov
+
+Sú tieto tri žánre významne odlišné vo vnímaní ich tanečnosti na základe ich popularity?
+
+1. Preskúmajte rozloženie údajov našich troch najlepších žánrov pre popularitu a tanečnosť pozdĺž danej osi x a y.
+
+ ```python
+ sns.set_theme(style="ticks")
+
+ g = sns.jointplot(
+ data=df,
+ x="popularity", y="danceability", hue="artist_top_genre",
+ kind="kde",
+ )
+ ```
+
+ Môžete objaviť sústredné kruhy okolo všeobecného bodu konvergencie, ktoré ukazujú rozloženie bodov.
+
+ > 🎓 Tento príklad používa graf KDE (Kernel Density Estimate), ktorý reprezentuje údaje pomocou spojitej krivky hustoty pravdepodobnosti. To nám umožňuje interpretovať údaje pri práci s viacerými rozloženiami.
+
+ Vo všeobecnosti sa tri žánre voľne zhodujú, pokiaľ ide o ich popularitu a tanečnosť. Určenie klastrov v týchto voľne zarovnaných údajoch bude výzvou:
+
+ 
+
+1. Vytvorte bodový graf:
+
+ ```python
+ sns.FacetGrid(df, hue="artist_top_genre", height=5) \
+ .map(plt.scatter, "popularity", "danceability") \
+ .add_legend()
+ ```
+
+ Bodový graf rovnakých osí ukazuje podobný vzor konvergencie
+
+ 
+
+Vo všeobecnosti môžete pre klastrovanie použiť bodové grafy na zobrazenie klastrov údajov, takže zvládnutie tohto typu vizualizácie je veľmi užitočné. V ďalšej lekcii použijeme tieto filtrované údaje a použijeme klastrovanie k-means na objavenie skupín v týchto údajoch, ktoré sa zaujímavo prekrývajú.
+
+---
+
+## 🚀Výzva
+
+V rámci prípravy na ďalšiu lekciu vytvorte graf o rôznych algoritmoch klastrovania, ktoré by ste mohli objaviť a použiť v produkčnom prostredí. Aké problémy sa klastrovanie snaží riešiť?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samoštúdium
+
+Pred aplikáciou algoritmov klastrovania, ako sme sa naučili, je dobré pochopiť povahu vašej množiny údajov. Prečítajte si viac na túto tému [tu](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
+
+[Tento užitočný článok](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) vás prevedie rôznymi spôsobmi, ako sa rôzne algoritmy klastrovania správajú pri rôznych tvaroch údajov.
+
+## Zadanie
+
+[Preskúmajte ďalšie vizualizácie pre klastrovanie](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/5-Clustering/1-Visualize/assignment.md b/translations/sk/5-Clustering/1-Visualize/assignment.md
new file mode 100644
index 00000000..61b2c30d
--- /dev/null
+++ b/translations/sk/5-Clustering/1-Visualize/assignment.md
@@ -0,0 +1,25 @@
+
+# Preskúmajte ďalšie vizualizácie pre zoskupovanie
+
+## Pokyny
+
+V tejto lekcii ste pracovali s niektorými technikami vizualizácie, aby ste získali predstavu o tom, ako vykresliť svoje údaje na prípravu ich zoskupovania. Rozptylové grafy sú obzvlášť užitočné na hľadanie skupín objektov. Preskúmajte rôzne spôsoby a rôzne knižnice na vytváranie rozptylových grafov a zdokumentujte svoju prácu v poznámkovom bloku. Môžete použiť údaje z tejto lekcie, iných lekcií alebo údaje, ktoré si sami nájdete (v poznámkovom bloku však prosím uveďte ich zdroj). Vykreslite niektoré údaje pomocou rozptylových grafov a vysvetlite, čo ste zistili.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ---------------------------------- |
+| | Predložený je poznámkový blok s piatimi dobre zdokumentovanými rozptylovými grafmi | Predložený je poznámkový blok s menej ako piatimi rozptylovými grafmi a je menej dobre zdokumentovaný | Predložený je neúplný poznámkový blok |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/5-Clustering/1-Visualize/solution/Julia/README.md b/translations/sk/5-Clustering/1-Visualize/solution/Julia/README.md
new file mode 100644
index 00000000..c3942340
--- /dev/null
+++ b/translations/sk/5-Clustering/1-Visualize/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Zrieknutie sa zodpovednosti**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/5-Clustering/2-K-Means/README.md b/translations/sk/5-Clustering/2-K-Means/README.md
new file mode 100644
index 00000000..4bb9571a
--- /dev/null
+++ b/translations/sk/5-Clustering/2-K-Means/README.md
@@ -0,0 +1,261 @@
+
+# K-Means zhlukovanie
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+V tejto lekcii sa naučíte, ako vytvárať zhluky pomocou Scikit-learn a datasetu nigérijskej hudby, ktorý ste importovali skôr. Pokryjeme základy K-Means pre zhlukovanie. Pamätajte, že ako ste sa naučili v predchádzajúcej lekcii, existuje mnoho spôsobov, ako pracovať so zhlukmi, a metóda, ktorú použijete, závisí od vašich dát. Skúsime K-Means, pretože je to najbežnejšia technika zhlukovania. Poďme na to!
+
+Pojmy, o ktorých sa dozviete:
+
+- Silhouette skóre
+- Metóda lakťa
+- Inercia
+- Variancia
+
+## Úvod
+
+[K-Means zhlukovanie](https://wikipedia.org/wiki/K-means_clustering) je metóda odvodená z oblasti spracovania signálov. Používa sa na rozdelenie a rozčlenenie skupín dát do 'k' zhlukov pomocou série pozorovaní. Každé pozorovanie pracuje na zoskupení daného dátového bodu najbližšie k jeho najbližšiemu 'priemeru', alebo stredovému bodu zhluku.
+
+Zhluky je možné vizualizovať ako [Voronoi diagramy](https://wikipedia.org/wiki/Voronoi_diagram), ktoré zahŕňajú bod (alebo 'semienko') a jeho zodpovedajúcu oblasť.
+
+
+
+> Infografika od [Jen Looper](https://twitter.com/jenlooper)
+
+Proces K-Means zhlukovania [prebieha v trojstupňovom procese](https://scikit-learn.org/stable/modules/clustering.html#k-means):
+
+1. Algoritmus vyberie k-počet stredových bodov vzorkovaním z datasetu. Potom cykluje:
+ 1. Priradí každú vzorku k najbližšiemu centroidu.
+ 2. Vytvorí nové centroidy vypočítaním priemernej hodnoty všetkých vzoriek priradených k predchádzajúcim centroidom.
+ 3. Potom vypočíta rozdiel medzi novými a starými centroidmi a opakuje, kým sa centroidy nestabilizujú.
+
+Jednou nevýhodou používania K-Means je fakt, že budete musieť určiť 'k', teda počet centroidov. Našťastie metóda 'lakťa' pomáha odhadnúť dobrú počiatočnú hodnotu pre 'k'. Hneď si to vyskúšate.
+
+## Predpoklad
+
+Budete pracovať v súbore [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb), ktorý obsahuje import dát a predbežné čistenie, ktoré ste vykonali v poslednej lekcii.
+
+## Cvičenie - príprava
+
+Začnite tým, že sa znova pozriete na dáta piesní.
+
+1. Vytvorte boxplot, zavolaním `boxplot()` pre každý stĺpec:
+
+ ```python
+ plt.figure(figsize=(20,20), dpi=200)
+
+ plt.subplot(4,3,1)
+ sns.boxplot(x = 'popularity', data = df)
+
+ plt.subplot(4,3,2)
+ sns.boxplot(x = 'acousticness', data = df)
+
+ plt.subplot(4,3,3)
+ sns.boxplot(x = 'energy', data = df)
+
+ plt.subplot(4,3,4)
+ sns.boxplot(x = 'instrumentalness', data = df)
+
+ plt.subplot(4,3,5)
+ sns.boxplot(x = 'liveness', data = df)
+
+ plt.subplot(4,3,6)
+ sns.boxplot(x = 'loudness', data = df)
+
+ plt.subplot(4,3,7)
+ sns.boxplot(x = 'speechiness', data = df)
+
+ plt.subplot(4,3,8)
+ sns.boxplot(x = 'tempo', data = df)
+
+ plt.subplot(4,3,9)
+ sns.boxplot(x = 'time_signature', data = df)
+
+ plt.subplot(4,3,10)
+ sns.boxplot(x = 'danceability', data = df)
+
+ plt.subplot(4,3,11)
+ sns.boxplot(x = 'length', data = df)
+
+ plt.subplot(4,3,12)
+ sns.boxplot(x = 'release_date', data = df)
+ ```
+
+ Tieto dáta sú trochu hlučné: pozorovaním každého stĺpca ako boxplotu môžete vidieť odľahlé hodnoty.
+
+ 
+
+Môžete prejsť dataset a odstrániť tieto odľahlé hodnoty, ale to by spravilo dáta dosť minimálne.
+
+1. Zatiaľ si vyberte, ktoré stĺpce použijete pre vaše cvičenie zhlukovania. Vyberte tie s podobnými rozsahmi a zakódujte stĺpec `artist_top_genre` ako numerické dáta:
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+ le = LabelEncoder()
+
+ X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')]
+
+ y = df['artist_top_genre']
+
+ X['artist_top_genre'] = le.fit_transform(X['artist_top_genre'])
+
+ y = le.transform(y)
+ ```
+
+1. Teraz musíte vybrať, koľko zhlukov chcete cieliť. Viete, že existujú 3 hudobné žánre, ktoré sme vyčlenili z datasetu, takže skúsme 3:
+
+ ```python
+ from sklearn.cluster import KMeans
+
+ nclusters = 3
+ seed = 0
+
+ km = KMeans(n_clusters=nclusters, random_state=seed)
+ km.fit(X)
+
+ # Predict the cluster for each data point
+
+ y_cluster_kmeans = km.predict(X)
+ y_cluster_kmeans
+ ```
+
+Vidíte vytlačené pole s predpovedanými zhlukmi (0, 1 alebo 2) pre každý riadok dataframe.
+
+1. Použite toto pole na výpočet 'silhouette skóre':
+
+ ```python
+ from sklearn import metrics
+ score = metrics.silhouette_score(X, y_cluster_kmeans)
+ score
+ ```
+
+## Silhouette skóre
+
+Hľadajte silhouette skóre bližšie k 1. Toto skóre sa pohybuje od -1 do 1, a ak je skóre 1, zhluk je hustý a dobre oddelený od ostatných zhlukov. Hodnota blízka 0 predstavuje prekrývajúce sa zhluky so vzorkami veľmi blízko rozhodovacej hranice susedných zhlukov. [(Zdroj)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
+
+Naše skóre je **.53**, takže je presne v strede. To naznačuje, že naše dáta nie sú obzvlášť vhodné pre tento typ zhlukovania, ale pokračujme.
+
+### Cvičenie - vytvorte model
+
+1. Importujte `KMeans` a začnite proces zhlukovania.
+
+ ```python
+ from sklearn.cluster import KMeans
+ wcss = []
+
+ for i in range(1, 11):
+ kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)
+ kmeans.fit(X)
+ wcss.append(kmeans.inertia_)
+
+ ```
+
+ Tu je niekoľko častí, ktoré si zaslúžia vysvetlenie.
+
+ > 🎓 range: Toto sú iterácie procesu zhlukovania.
+
+ > 🎓 random_state: "Určuje generovanie náhodných čísel pre inicializáciu centroidov." [Zdroj](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
+
+ > 🎓 WCSS: "súčet štvorcov v rámci zhluku" meria štvorcovú priemernú vzdialenosť všetkých bodov v rámci zhluku od centroidu zhluku. [Zdroj](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
+
+ > 🎓 Inercia: Algoritmy K-Means sa snažia vybrať centroidy tak, aby minimalizovali 'inerciu', "mieru toho, ako sú zhluky vnútorne koherentné." [Zdroj](https://scikit-learn.org/stable/modules/clustering.html). Hodnota sa pridáva do premennej wcss pri každej iterácii.
+
+ > 🎓 k-means++: V [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) môžete použiť optimalizáciu 'k-means++', ktorá "inicializuje centroidy tak, aby boli (zvyčajne) vzdialené od seba, čo vedie k pravdepodobne lepším výsledkom ako náhodná inicializácia."
+
+### Metóda lakťa
+
+Predtým ste predpokladali, že keďže ste cielili 3 hudobné žánre, mali by ste zvoliť 3 zhluky. Ale je to tak?
+
+1. Použite metódu 'lakťa', aby ste si boli istí.
+
+ ```python
+ plt.figure(figsize=(10,5))
+ sns.lineplot(x=range(1, 11), y=wcss, marker='o', color='red')
+ plt.title('Elbow')
+ plt.xlabel('Number of clusters')
+ plt.ylabel('WCSS')
+ plt.show()
+ ```
+
+ Použite premennú `wcss`, ktorú ste vytvorili v predchádzajúcom kroku, na vytvorenie grafu, ktorý ukazuje, kde je 'ohyb' v lakti, čo naznačuje optimálny počet zhlukov. Možno je to **naozaj** 3!
+
+ 
+
+## Cvičenie - zobrazte zhluky
+
+1. Skúste proces znova, tentoraz nastavte tri zhluky a zobrazte zhluky ako scatterplot:
+
+ ```python
+ from sklearn.cluster import KMeans
+ kmeans = KMeans(n_clusters = 3)
+ kmeans.fit(X)
+ labels = kmeans.predict(X)
+ plt.scatter(df['popularity'],df['danceability'],c = labels)
+ plt.xlabel('popularity')
+ plt.ylabel('danceability')
+ plt.show()
+ ```
+
+1. Skontrolujte presnosť modelu:
+
+ ```python
+ labels = kmeans.labels_
+
+ correct_labels = sum(y == labels)
+
+ print("Result: %d out of %d samples were correctly labeled." % (correct_labels, y.size))
+
+ print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size)))
+ ```
+
+ Presnosť tohto modelu nie je veľmi dobrá a tvar zhlukov vám dáva náznak prečo.
+
+ 
+
+ Tieto dáta sú príliš nevyvážené, málo korelované a medzi hodnotami stĺpcov je príliš veľká variancia na to, aby sa dobre zhlukovali. V skutočnosti sú zhluky, ktoré sa tvoria, pravdepodobne silne ovplyvnené alebo skreslené tromi kategóriami žánrov, ktoré sme definovali vyššie. To bol proces učenia!
+
+ V dokumentácii Scikit-learn môžete vidieť, že model ako tento, s nie veľmi dobre vyznačenými zhlukmi, má problém s 'varianciou':
+
+ 
+ > Infografika zo Scikit-learn
+
+## Variancia
+
+Variancia je definovaná ako "priemer štvorcových rozdielov od priemeru" [(Zdroj)](https://www.mathsisfun.com/data/standard-deviation.html). V kontexte tohto problému zhlukovania sa vzťahuje na dáta, kde čísla nášho datasetu majú tendenciu odchýliť sa trochu príliš od priemeru.
+
+✅ Toto je skvelý moment na zamyslenie sa nad všetkými spôsobmi, ako by ste mohli tento problém opraviť. Upraviť dáta trochu viac? Použiť iné stĺpce? Použiť iný algoritmus? Tip: Skúste [škálovať vaše dáta](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) na ich normalizáciu a otestovať iné stĺpce.
+
+> Skúste tento '[kalkulátor variancie](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)', aby ste lepšie pochopili tento koncept.
+
+---
+
+## 🚀Výzva
+
+Strávte nejaký čas s týmto notebookom, upravujte parametre. Dokážete zlepšiť presnosť modelu čistením dát (napríklad odstránením odľahlých hodnôt)? Môžete použiť váhy na pridanie väčšej váhy určitým vzorkám dát. Čo ešte môžete urobiť na vytvorenie lepších zhlukov?
+
+Tip: Skúste škálovať vaše dáta. V notebooku je komentovaný kód, ktorý pridáva štandardné škálovanie, aby sa stĺpce dát viac podobali z hľadiska rozsahu. Zistíte, že zatiaľ čo silhouette skóre klesá, 'ohyb' v grafe lakťa sa vyhladzuje. Je to preto, že ponechanie dát neškálovaných umožňuje dátam s menšou varianciou niesť väčšiu váhu. Prečítajte si o tomto probléme [tu](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226).
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Pozrite sa na simulátor K-Means [ako je tento](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). Môžete použiť tento nástroj na vizualizáciu vzoriek dátových bodov a určenie ich centroidov. Môžete upraviť náhodnosť dát, počet zhlukov a počet centroidov. Pomáha vám to získať predstavu o tom, ako môžu byť dáta zoskupené?
+
+Tiež sa pozrite na [tento materiál o K-Means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) zo Stanfordu.
+
+## Zadanie
+
+[Vyskúšajte rôzne metódy zhlukovania](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/5-Clustering/2-K-Means/assignment.md b/translations/sk/5-Clustering/2-K-Means/assignment.md
new file mode 100644
index 00000000..6a7db91a
--- /dev/null
+++ b/translations/sk/5-Clustering/2-K-Means/assignment.md
@@ -0,0 +1,25 @@
+
+# Vyskúšajte rôzne metódy zhlukovania
+
+## Pokyny
+
+V tejto lekcii ste sa naučili o zhlukovaní pomocou K-Means. Niekedy K-Means nie je vhodný pre vaše dáta. Vytvorte notebook, ktorý použije dáta buď z týchto lekcií, alebo z iného zdroja (uvedenie zdroja je povinné) a ukážte inú metódu zhlukovania, ktorá nepoužíva K-Means. Čo ste sa naučili?
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | -------------------------------------------------------------- | ------------------------------------------------------------------- | ---------------------------- |
+| | Notebook je prezentovaný s dobre zdokumentovaným modelom zhlukovania | Notebook je prezentovaný bez dobrej dokumentácie a/alebo neúplný | Odovzdaná práca je neúplná |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/5-Clustering/2-K-Means/solution/Julia/README.md b/translations/sk/5-Clustering/2-K-Means/solution/Julia/README.md
new file mode 100644
index 00000000..1692eaaf
--- /dev/null
+++ b/translations/sk/5-Clustering/2-K-Means/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/5-Clustering/README.md b/translations/sk/5-Clustering/README.md
new file mode 100644
index 00000000..7287d065
--- /dev/null
+++ b/translations/sk/5-Clustering/README.md
@@ -0,0 +1,42 @@
+
+# Modely zhlukovania pre strojové učenie
+
+Zhlukovanie je úloha strojového učenia, ktorá sa snaží nájsť objekty, ktoré sa navzájom podobajú, a zoskupiť ich do skupín nazývaných zhluky. Čo odlišuje zhlukovanie od iných prístupov v strojovom učení, je to, že veci sa dejú automaticky. V skutočnosti je spravodlivé povedať, že je to opak učenia s učiteľom.
+
+## Regionálna téma: modely zhlukovania pre hudobný vkus nigérijského publika 🎧
+
+Rozmanité publikum v Nigérii má rozmanitý hudobný vkus. Pomocou údajov získaných zo Spotify (inšpirované [týmto článkom](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)), sa pozrime na niektoré populárne skladby v Nigérii. Tento dataset obsahuje údaje o rôznych skladbách, ako napríklad skóre 'tanečnosti', 'akustickosti', hlasitosti, 'rečovosti', popularite a energii. Bude zaujímavé objaviť vzory v týchto údajoch!
+
+
+
+> Foto od Marcela Laskoski na Unsplash
+
+V tejto sérii lekcií objavíte nové spôsoby analýzy údajov pomocou techník zhlukovania. Zhlukovanie je obzvlášť užitočné, keď váš dataset nemá štítky. Ak však štítky má, potom môžu byť klasifikačné techniky, ktoré ste sa naučili v predchádzajúcich lekciách, užitočnejšie. Ale v prípadoch, keď chcete zoskupiť neoznačené údaje, zhlukovanie je skvelý spôsob, ako objaviť vzory.
+
+> Existujú užitočné nástroje s nízkym kódom, ktoré vám môžu pomôcť naučiť sa pracovať s modelmi zhlukovania. Vyskúšajte [Azure ML pre túto úlohu](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Lekcie
+
+1. [Úvod do zhlukovania](1-Visualize/README.md)
+2. [Zhlukovanie pomocou K-Means](2-K-Means/README.md)
+
+## Kredity
+
+Tieto lekcie boli napísané s 🎶 od [Jen Looper](https://www.twitter.com/jenlooper) s užitočnými recenziami od [Rishit Dagli](https://rishit_dagli) a [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan).
+
+Dataset [Nigérijské skladby](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) bol získaný z Kaggle ako údaje zozbierané zo Spotify.
+
+Užitočné príklady K-Means, ktoré pomohli pri tvorbe tejto lekcie, zahŕňajú túto [analýzu kosatcov](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), tento [úvodný notebook](https://www.kaggle.com/prashant111/k-means-clustering-with-python) a tento [hypotetický príklad NGO](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering).
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/1-Introduction-to-NLP/README.md b/translations/sk/6-NLP/1-Introduction-to-NLP/README.md
new file mode 100644
index 00000000..33a08579
--- /dev/null
+++ b/translations/sk/6-NLP/1-Introduction-to-NLP/README.md
@@ -0,0 +1,179 @@
+
+# Úvod do spracovania prirodzeného jazyka
+
+Táto lekcia pokrýva stručnú históriu a dôležité koncepty *spracovania prirodzeného jazyka*, podpolia *počítačovej lingvistiky*.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+## Úvod
+
+NLP, ako sa často nazýva, je jednou z najznámejších oblastí, kde sa strojové učenie aplikovalo a používa v produkčnom softvéri.
+
+✅ Dokážete si predstaviť softvér, ktorý používate každý deň a pravdepodobne obsahuje nejaké NLP? Čo tak vaše programy na spracovanie textu alebo mobilné aplikácie, ktoré pravidelne používate?
+
+Naučíte sa o:
+
+- **Myšlienke jazykov**. Ako sa jazyky vyvíjali a aké boli hlavné oblasti štúdia.
+- **Definíciách a konceptoch**. Naučíte sa definície a koncepty o tom, ako počítače spracovávajú text, vrátane parsovania, gramatiky a identifikácie podstatných mien a slovies. V tejto lekcii sú niektoré úlohy na programovanie a predstavené sú viaceré dôležité koncepty, ktoré sa naučíte programovať v ďalších lekciách.
+
+## Počítačová lingvistika
+
+Počítačová lingvistika je oblasť výskumu a vývoja, ktorá sa už desaťročia zaoberá tým, ako môžu počítače pracovať s jazykmi, rozumieť im, prekladať ich a komunikovať v nich. Spracovanie prirodzeného jazyka (NLP) je príbuzná oblasť zameraná na to, ako môžu počítače spracovávať 'prirodzené', teda ľudské jazyky.
+
+### Príklad - diktovanie do telefónu
+
+Ak ste niekedy diktovali do telefónu namiesto písania alebo sa pýtali virtuálneho asistenta otázku, vaša reč bola prevedená do textovej formy a následne spracovaná alebo *parsovaná* z jazyka, ktorým ste hovorili. Zistené kľúčové slová boli potom spracované do formátu, ktorému telefón alebo asistent rozumel a na základe toho konal.
+
+
+> Skutočné lingvistické porozumenie je náročné! Obrázok od [Jen Looper](https://twitter.com/jenlooper)
+
+### Ako je táto technológia možná?
+
+Je to možné, pretože niekto napísal počítačový program, ktorý to dokáže. Pred niekoľkými desaťročiami niektorí autori sci-fi predpovedali, že ľudia budú väčšinou hovoriť so svojimi počítačmi a počítače budú vždy presne rozumieť tomu, čo majú na mysli. Bohužiaľ sa ukázalo, že je to oveľa ťažší problém, než si mnohí predstavovali, a hoci je dnes oveľa lepšie pochopený, stále existujú významné výzvy pri dosahovaní 'dokonalého' spracovania prirodzeného jazyka, pokiaľ ide o porozumenie významu vety. Toto je obzvlášť náročné pri porozumení humoru alebo detekcii emócií, ako je sarkazmus vo vete.
+
+V tomto momente si možno spomeniete na školské hodiny, kde učiteľ preberal časti gramatiky vo vete. V niektorých krajinách sa študenti učia gramatiku a lingvistiku ako samostatný predmet, ale v mnohých sú tieto témy zahrnuté ako súčasť učenia sa jazyka: buď vášho prvého jazyka na základnej škole (učenie sa čítať a písať) a možno druhého jazyka na strednej škole. Nemajte obavy, ak nie ste odborníkom na rozlišovanie podstatných mien od slovies alebo prísloviek od prídavných mien!
+
+Ak máte problém s rozdielom medzi *jednoduchým prítomným časom* a *prítomným priebehovým časom*, nie ste sami. Toto je náročná vec pre mnohých ľudí, dokonca aj pre rodených hovorcov jazyka. Dobrou správou je, že počítače sú veľmi dobré v aplikovaní formálnych pravidiel, a naučíte sa písať kód, ktorý dokáže *parsovať* vetu rovnako dobre ako človek. Väčšou výzvou, ktorú budete skúmať neskôr, je porozumenie *významu* a *sentimentu* vety.
+
+## Predpoklady
+
+Pre túto lekciu je hlavným predpokladom schopnosť čítať a rozumieť jazyku tejto lekcie. Neexistujú žiadne matematické problémy ani rovnice na riešenie. Hoci pôvodný autor napísal túto lekciu v angličtine, je tiež preložená do iných jazykov, takže by ste mohli čítať preklad. Existujú príklady, kde sa používa niekoľko rôznych jazykov (na porovnanie rôznych gramatických pravidiel rôznych jazykov). Tieto *nie sú* preložené, ale vysvetľujúci text áno, takže význam by mal byť jasný.
+
+Pre úlohy na programovanie budete používať Python a príklady sú v Python 3.8.
+
+V tejto sekcii budete potrebovať a používať:
+
+- **Porozumenie Pythonu 3**. Porozumenie programovaciemu jazyku Python 3, táto lekcia používa vstupy, cykly, čítanie súborov, polia.
+- **Visual Studio Code + rozšírenie**. Budeme používať Visual Studio Code a jeho rozšírenie pre Python. Môžete tiež použiť IDE pre Python podľa vášho výberu.
+- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) je zjednodušená knižnica na spracovanie textu pre Python. Postupujte podľa pokynov na stránke TextBlob na jeho inštaláciu do vášho systému (nainštalujte aj korpusy, ako je uvedené nižšie):
+
+ ```bash
+ pip install -U textblob
+ python -m textblob.download_corpora
+ ```
+
+> 💡 Tip: Python môžete spustiť priamo v prostredí VS Code. Pozrite si [dokumentáciu](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) pre viac informácií.
+
+## Rozprávanie s počítačmi
+
+História snahy prinútiť počítače rozumieť ľudskému jazyku siaha desaťročia dozadu a jedným z prvých vedcov, ktorí sa zaoberali spracovaním prirodzeného jazyka, bol *Alan Turing*.
+
+### Turingov test
+
+Keď Turing skúmal *umelú inteligenciu* v 50. rokoch, uvažoval, či by sa mohol uskutočniť konverzačný test medzi človekom a počítačom (prostredníctvom písomnej komunikácie), kde by človek v konverzácii nevedel, či komunikuje s iným človekom alebo počítačom.
+
+Ak by po určitej dĺžke konverzácie človek nedokázal určiť, či odpovede pochádzajú od počítača alebo nie, mohlo by sa povedať, že počítač *myslí*?
+
+### Inšpirácia - 'hra na imitáciu'
+
+Myšlienka na to vznikla z párty hry nazývanej *Hra na imitáciu*, kde je vyšetrovateľ sám v miestnosti a má za úlohu určiť, kto z dvoch ľudí (v inej miestnosti) je muž a žena. Vyšetrovateľ môže posielať poznámky a musí sa snažiť vymyslieť otázky, kde písomné odpovede odhalia pohlavie tajomnej osoby. Samozrejme, hráči v druhej miestnosti sa snažia zmiasť vyšetrovateľa tým, že odpovedajú na otázky takým spôsobom, aby ho zaviedli alebo zmiatli, pričom zároveň dávajú dojem, že odpovedajú úprimne.
+
+### Vývoj Elizy
+
+V 60. rokoch vyvinul vedec z MIT *Joseph Weizenbaum* [*Elizu*](https://wikipedia.org/wiki/ELIZA), počítačového 'terapeuta', ktorý kládol človeku otázky a dával dojem, že rozumie jeho odpovediam. Avšak, hoci Eliza dokázala parsovať vetu a identifikovať určité gramatické konštrukty a kľúčové slová, aby poskytla rozumnú odpoveď, nedalo sa povedať, že vetu *rozumie*. Ak by bola Eliza konfrontovaná s vetou vo formáte "**Som** smutný", mohla by preusporiadať a nahradiť slová vo vete, aby vytvorila odpoveď "Ako dlho ste **vy** smutný?".
+
+To dávalo dojem, že Eliza rozumie výroku a kladie následnú otázku, zatiaľ čo v skutočnosti iba menila čas a pridávala niektoré slová. Ak by Eliza nedokázala identifikovať kľúčové slovo, na ktoré mala odpoveď, namiesto toho by poskytla náhodnú odpoveď, ktorá by mohla byť použiteľná pre mnoho rôznych výrokov. Elizu bolo možné ľahko oklamať, napríklad ak by používateľ napísal "**Ty si** bicykel", mohla by odpovedať "Ako dlho som **ja** bicykel?", namiesto rozumnejšej odpovede.
+
+[](https://youtu.be/RMK9AphfLco "Rozhovor s Elizou")
+
+> 🎥 Kliknite na obrázok vyššie pre video o pôvodnom programe ELIZA
+
+> Poznámka: Pôvodný popis [Elizy](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) publikovaný v roku 1966 si môžete prečítať, ak máte účet ACM. Alternatívne si prečítajte o Elize na [wikipédii](https://wikipedia.org/wiki/ELIZA).
+
+## Cvičenie - programovanie základného konverzačného bota
+
+Konverzačný bot, ako Eliza, je program, ktorý vyžaduje vstup od používateľa a zdá sa, že rozumie a inteligentne odpovedá. Na rozdiel od Elizy náš bot nebude mať niekoľko pravidiel, ktoré by mu dávali dojem inteligentnej konverzácie. Namiesto toho bude mať bot iba jednu schopnosť, a to pokračovať v konverzácii s náhodnými odpoveďami, ktoré by mohli fungovať takmer v každej triviálnej konverzácii.
+
+### Plán
+
+Vaše kroky pri vytváraní konverzačného bota:
+
+1. Vytlačte pokyny, ktoré používateľovi poradia, ako komunikovať s botom
+2. Spustite cyklus
+ 1. Prijmite vstup od používateľa
+ 2. Ak používateľ požiadal o ukončenie, ukončite
+ 3. Spracujte vstup od používateľa a určte odpoveď (v tomto prípade je odpoveď náhodný výber zo zoznamu možných všeobecných odpovedí)
+ 4. Vytlačte odpoveď
+3. Vráťte sa späť na krok 2
+
+### Vytvorenie bota
+
+Teraz vytvoríme bota. Začneme definovaním niektorých fráz.
+
+1. Vytvorte si tohto bota sami v Pythone s nasledujúcimi náhodnými odpoveďami:
+
+ ```python
+ random_responses = ["That is quite interesting, please tell me more.",
+ "I see. Do go on.",
+ "Why do you say that?",
+ "Funny weather we've been having, isn't it?",
+ "Let's change the subject.",
+ "Did you catch the game last night?"]
+ ```
+
+ Tu je ukážka výstupu, ktorá vás môže usmerniť (vstup používateľa je na riadkoch začínajúcich `>`):
+
+ ```output
+ Hello, I am Marvin, the simple robot.
+ You can end this conversation at any time by typing 'bye'
+ After typing each answer, press 'enter'
+ How are you today?
+ > I am good thanks
+ That is quite interesting, please tell me more.
+ > today I went for a walk
+ Did you catch the game last night?
+ > I did, but my team lost
+ Funny weather we've been having, isn't it?
+ > yes but I hope next week is better
+ Let's change the subject.
+ > ok, lets talk about music
+ Why do you say that?
+ > because I like music!
+ Why do you say that?
+ > bye
+ It was nice talking to you, goodbye!
+ ```
+
+ Jedno možné riešenie úlohy nájdete [tu](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py)
+
+ ✅ Zastavte sa a zamyslite
+
+ 1. Myslíte si, že náhodné odpovede by 'oklamali' niekoho, aby si myslel, že bot skutočne rozumie?
+ 2. Aké funkcie by bot potreboval, aby bol efektívnejší?
+ 3. Ak by bot skutočne 'rozumel' významu vety, potreboval by si 'pamätať' význam predchádzajúcich viet v konverzácii tiež?
+
+---
+
+## 🚀Výzva
+
+Vyberte si jeden z prvkov "zastavte sa a zamyslite" vyššie a buď sa ho pokúste implementovať v kóde, alebo napíšte riešenie na papier pomocou pseudokódu.
+
+V ďalšej lekcii sa naučíte o viacerých prístupoch k parsovaniu prirodzeného jazyka a strojovému učeniu.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Pozrite si nižšie uvedené odkazy ako ďalšie možnosti čítania.
+
+### Odkazy
+
+1. Schubert, Lenhart, "Computational Linguistics", *The Stanford Encyclopedia of Philosophy* (Spring 2020 Edition), Edward N. Zalta (ed.), URL = .
+2. Princeton University "About WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010.
+
+## Zadanie
+
+[Vyhľadajte bota](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/1-Introduction-to-NLP/assignment.md b/translations/sk/6-NLP/1-Introduction-to-NLP/assignment.md
new file mode 100644
index 00000000..09069e68
--- /dev/null
+++ b/translations/sk/6-NLP/1-Introduction-to-NLP/assignment.md
@@ -0,0 +1,25 @@
+
+# Vyhľadajte bota
+
+## Pokyny
+
+Boti sú všade. Vaša úloha: nájdite jedného a osvojte si ho! Môžete ich nájsť na webových stránkach, v bankových aplikáciách a na telefóne, napríklad keď voláte finančným spoločnostiam kvôli radám alebo informáciám o účte. Analyzujte bota a zistite, či ho dokážete zmiasť. Ak sa vám podarí zmiasť bota, prečo si myslíte, že sa to stalo? Napíšte krátku prácu o svojej skúsenosti.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------ | --------------------- |
+| | Napísaná je celá strana, ktorá vysvetľuje predpokladanú architektúru bota a opisuje vašu skúsenosť s ním | Práca je neúplná alebo nie je dobre preskúmaná | Práca nie je odovzdaná |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/2-Tasks/README.md b/translations/sk/6-NLP/2-Tasks/README.md
new file mode 100644
index 00000000..1aea6af7
--- /dev/null
+++ b/translations/sk/6-NLP/2-Tasks/README.md
@@ -0,0 +1,224 @@
+
+# Bežné úlohy a techniky spracovania prirodzeného jazyka
+
+Pri väčšine úloh *spracovania prirodzeného jazyka* je potrebné text rozložiť, analyzovať a výsledky uložiť alebo porovnať s pravidlami a dátovými súbormi. Tieto úlohy umožňujú programátorovi odvodiť _význam_, _zámer_ alebo len _frekvenciu_ termínov a slov v texte.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+Poďme objaviť bežné techniky používané pri spracovaní textu. V kombinácii so strojovým učením vám tieto techniky pomôžu efektívne analyzovať veľké množstvo textu. Pred aplikáciou ML na tieto úlohy je však dôležité pochopiť problémy, s ktorými sa špecialista na NLP stretáva.
+
+## Bežné úlohy v NLP
+
+Existuje mnoho spôsobov, ako analyzovať text, na ktorom pracujete. Sú tu úlohy, ktoré môžete vykonávať, a prostredníctvom nich dokážete pochopiť text a vyvodiť závery. Tieto úlohy sa zvyčajne vykonávajú v sekvencii.
+
+### Tokenizácia
+
+Pravdepodobne prvou vecou, ktorú väčšina algoritmov NLP musí urobiť, je rozdelenie textu na tokeny alebo slová. Aj keď to znie jednoducho, zohľadnenie interpunkcie a rôznych jazykových oddelovačov slov a viet môže byť zložité. Môžete potrebovať rôzne metódy na určenie hraníc.
+
+
+> Tokenizácia vety z **Pýchy a predsudku**. Infografika od [Jen Looper](https://twitter.com/jenlooper)
+
+### Vstupy (Embeddings)
+
+[Vstupy slov](https://wikipedia.org/wiki/Word_embedding) sú spôsob, ako numericky konvertovať vaše textové dáta. Vstupy sú vytvorené tak, aby slová s podobným významom alebo slová používané spolu vytvárali zhluky.
+
+
+> "Mám najväčší rešpekt k vašim nervom, sú to moji starí priatelia." - Vstupy slov pre vetu z **Pýchy a predsudku**. Infografika od [Jen Looper](https://twitter.com/jenlooper)
+
+✅ Vyskúšajte [tento zaujímavý nástroj](https://projector.tensorflow.org/) na experimentovanie s vstupmi slov. Kliknutím na jedno slovo sa zobrazia zhluky podobných slov: 'hračka' sa zhlukuje s 'disney', 'lego', 'playstation' a 'konzola'.
+
+### Parsovanie a označovanie častí reči
+
+Každé slovo, ktoré bolo tokenizované, môže byť označené ako časť reči - podstatné meno, sloveso alebo prídavné meno. Veta `rýchly červený líška preskočil cez lenivého hnedého psa` môže byť označená ako líška = podstatné meno, preskočil = sloveso.
+
+
+
+> Parsovanie vety z **Pýchy a predsudku**. Infografika od [Jen Looper](https://twitter.com/jenlooper)
+
+Parsovanie znamená rozpoznanie, ktoré slová sú vo vete navzájom prepojené - napríklad `rýchly červený líška preskočil` je sekvencia prídavné meno-podstatné meno-sloveso, ktorá je oddelená od sekvencie `lenivý hnedý pes`.
+
+### Frekvencie slov a fráz
+
+Užitočným postupom pri analýze veľkého množstva textu je vytvorenie slovníka každého slova alebo frázy, ktoré vás zaujímajú, a ich frekvencie výskytu. Fráza `rýchly červený líška preskočil cez lenivého hnedého psa` má frekvenciu slova 2 pre slovo "cez".
+
+Pozrime sa na príklad textu, kde počítame frekvenciu slov. Báseň Rudyard Kiplinga Víťazi obsahuje nasledujúci verš:
+
+```output
+What the moral? Who rides may read.
+When the night is thick and the tracks are blind
+A friend at a pinch is a friend, indeed,
+But a fool to wait for the laggard behind.
+Down to Gehenna or up to the Throne,
+He travels the fastest who travels alone.
+```
+
+Keďže frekvencie fráz môžu byť citlivé na veľkosť písmen alebo nie, fráza `priateľ` má frekvenciu 2, `cez` má frekvenciu 6 a `cestuje` má frekvenciu 2.
+
+### N-gramy
+
+Text môže byť rozdelený na sekvencie slov určitej dĺžky, jedno slovo (unigram), dve slová (bigramy), tri slová (trigramy) alebo akýkoľvek počet slov (n-gramy).
+
+Napríklad `rýchly červený líška preskočil cez lenivého hnedého psa` s hodnotou n-gramu 2 vytvára nasledujúce n-gramy:
+
+1. rýchly červený
+2. červený líška
+3. líška preskočil
+4. preskočil cez
+5. cez lenivého
+6. lenivého hnedého
+7. hnedého psa
+
+Je jednoduchšie si to predstaviť ako posuvné okno nad vetou. Tu je to pre n-gramy s 3 slovami, n-gram je zvýraznený v každej vete:
+
+1. **rýchly červený líška** preskočil cez lenivého hnedého psa
+2. rýchly **červený líška preskočil** cez lenivého hnedého psa
+3. rýchly červený **líška preskočil cez** lenivého hnedého psa
+4. rýchly červený líška **preskočil cez lenivého** hnedého psa
+5. rýchly červený líška preskočil **cez lenivého hnedého** psa
+6. rýchly červený líška preskočil cez **lenivého hnedého psa**
+
+
+
+> Hodnota n-gramu 3: Infografika od [Jen Looper](https://twitter.com/jenlooper)
+
+### Extrakcia podstatných fráz
+
+Väčšina viet obsahuje podstatné meno, ktoré je predmetom alebo objektom vety. V angličtine je často identifikovateľné tým, že pred ním stojí 'a', 'an' alebo 'the'. Identifikácia predmetu alebo objektu vety prostredníctvom 'extrakcie podstatnej frázy' je bežnou úlohou v NLP pri pokuse o pochopenie významu vety.
+
+✅ Vo vete "Nemôžem si spomenúť na hodinu, miesto, pohľad alebo slová, ktoré položili základy. Je to príliš dávno. Bol som uprostred, než som si uvedomil, že som začal." dokážete identifikovať podstatné frázy?
+
+Vo vete `rýchly červený líška preskočil cez lenivého hnedého psa` sú 2 podstatné frázy: **rýchly červený líška** a **lenivý hnedý pes**.
+
+### Analýza sentimentu
+
+Veta alebo text môže byť analyzovaný na sentiment, teda ako *pozitívny* alebo *negatívny* je. Sentiment sa meria v *polarite* a *objektivite/subjektivite*. Polarita sa meria od -1.0 do 1.0 (negatívna až pozitívna) a od 0.0 do 1.0 (najviac objektívna až najviac subjektívna).
+
+✅ Neskôr sa naučíte, že existujú rôzne spôsoby určovania sentimentu pomocou strojového učenia, ale jedným zo spôsobov je mať zoznam slov a fráz, ktoré sú kategorizované ako pozitívne alebo negatívne ľudským expertom, a aplikovať tento model na text na výpočet skóre polarity. Vidíte, ako by to mohlo fungovať v niektorých prípadoch a menej dobre v iných?
+
+### Inflekcia
+
+Inflekcia vám umožňuje vziať slovo a získať jeho jednotné alebo množné číslo.
+
+### Lemmatizácia
+
+*Lema* je koreňové alebo základné slovo pre množinu slov, napríklad *letel*, *lietajú*, *lietanie* majú lemu slovesa *lietanie*.
+
+Existujú aj užitočné databázy dostupné pre výskumníka NLP, najmä:
+
+### WordNet
+
+[WordNet](https://wordnet.princeton.edu/) je databáza slov, synonym, antonym a mnohých ďalších detailov pre každé slovo v mnohých rôznych jazykoch. Je neuveriteľne užitočná pri pokuse o vytváranie prekladov, kontrolu pravopisu alebo jazykových nástrojov akéhokoľvek typu.
+
+## Knižnice NLP
+
+Našťastie, nemusíte všetky tieto techniky vytvárať sami, pretože existujú vynikajúce knižnice v Pythone, ktoré ich sprístupňujú vývojárom, ktorí nie sú špecializovaní na spracovanie prirodzeného jazyka alebo strojové učenie. V nasledujúcich lekciách nájdete viac príkladov, ale tu sa naučíte niekoľko užitočných príkladov, ktoré vám pomôžu s ďalšou úlohou.
+
+### Cvičenie - použitie knižnice `TextBlob`
+
+Použime knižnicu TextBlob, ktorá obsahuje užitočné API na riešenie týchto typov úloh. TextBlob "stojí na obrovských pleciach [NLTK](https://nltk.org) a [pattern](https://github.com/clips/pattern) a dobre spolupracuje s oboma." Má značné množstvo ML zabudované vo svojom API.
+
+> Poznámka: Užitočný [Rýchly štart](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) sprievodca je dostupný pre TextBlob a odporúča sa skúseným vývojárom v Pythone.
+
+Pri pokuse o identifikáciu *podstatných fráz* ponúka TextBlob niekoľko možností extraktorov na nájdenie podstatných fráz.
+
+1. Pozrite sa na `ConllExtractor`.
+
+ ```python
+ from textblob import TextBlob
+ from textblob.np_extractors import ConllExtractor
+ # import and create a Conll extractor to use later
+ extractor = ConllExtractor()
+
+ # later when you need a noun phrase extractor:
+ user_input = input("> ")
+ user_input_blob = TextBlob(user_input, np_extractor=extractor) # note non-default extractor specified
+ np = user_input_blob.noun_phrases
+ ```
+
+ > Čo sa tu deje? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) je "Extraktor podstatných fráz, ktorý používa chunk parsing trénovaný na korpuse ConLL-2000." ConLL-2000 odkazuje na konferenciu o výpočtovom učení prirodzeného jazyka z roku 2000. Každý rok konferencia hostila workshop na riešenie zložitého problému NLP, a v roku 2000 to bolo chunkovanie podstatných fráz. Model bol trénovaný na Wall Street Journal, s "sekciami 15-18 ako tréningové dáta (211727 tokenov) a sekciou 20 ako testovacie dáta (47377 tokenov)". Môžete si pozrieť použité postupy [tu](https://www.clips.uantwerpen.be/conll2000/chunking/) a [výsledky](https://ifarm.nl/erikt/research/np-chunking.html).
+
+### Výzva - zlepšenie vášho bota pomocou NLP
+
+V predchádzajúcej lekcii ste vytvorili veľmi jednoduchého Q&A bota. Teraz urobíte Marvina trochu sympatickejším tým, že analyzujete váš vstup na sentiment a vytlačíte odpoveď, ktorá zodpovedá sentimentu. Budete tiež musieť identifikovať `noun_phrase` a opýtať sa na ňu.
+
+Vaše kroky pri vytváraní lepšieho konverzačného bota:
+
+1. Vytlačte pokyny, ktoré používateľovi poradia, ako komunikovať s botom
+2. Spustite slučku
+ 1. Prijmite vstup od používateľa
+ 2. Ak používateľ požiadal o ukončenie, ukončite
+ 3. Spracujte vstup používateľa a určte vhodnú odpoveď na sentiment
+ 4. Ak je v sentimentu detekovaná podstatná fráza, zmeňte ju na množné číslo a opýtajte sa na túto tému
+ 5. Vytlačte odpoveď
+3. Vráťte sa späť na krok 2
+
+Tu je úryvok kódu na určenie sentimentu pomocou TextBlob. Všimnite si, že existujú iba štyri *stupne* odpovede na sentiment (môžete ich mať viac, ak chcete):
+
+```python
+if user_input_blob.polarity <= -0.5:
+ response = "Oh dear, that sounds bad. "
+elif user_input_blob.polarity <= 0:
+ response = "Hmm, that's not great. "
+elif user_input_blob.polarity <= 0.5:
+ response = "Well, that sounds positive. "
+elif user_input_blob.polarity <= 1:
+ response = "Wow, that sounds great. "
+```
+
+Tu je ukážka výstupu na usmernenie (vstup používateľa je na riadkoch začínajúcich >):
+
+```output
+Hello, I am Marvin, the friendly robot.
+You can end this conversation at any time by typing 'bye'
+After typing each answer, press 'enter'
+How are you today?
+> I am ok
+Well, that sounds positive. Can you tell me more?
+> I went for a walk and saw a lovely cat
+Well, that sounds positive. Can you tell me more about lovely cats?
+> cats are the best. But I also have a cool dog
+Wow, that sounds great. Can you tell me more about cool dogs?
+> I have an old hounddog but he is sick
+Hmm, that's not great. Can you tell me more about old hounddogs?
+> bye
+It was nice talking to you, goodbye!
+```
+
+Jedno možné riešenie úlohy je [tu](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py)
+
+✅ Kontrola vedomostí
+
+1. Myslíte si, že sympatické odpovede by 'oklamali' niekoho, aby si myslel, že bot ich skutočne rozumie?
+2. Robí identifikácia podstatnej frázy bota viac 'uveriteľným'?
+3. Prečo by extrakcia 'podstatnej frázy' z vety bola užitočná vec na vykonanie?
+
+---
+
+Implementujte bota v predchádzajúcej kontrole vedomostí a otestujte ho na priateľovi. Dokáže ich oklamať? Dokážete urobiť vášho bota viac 'uveriteľným'?
+
+## 🚀Výzva
+
+Vezmite úlohu z predchádzajúcej kontroly vedomostí a skúste ju implementovať. Otestujte bota na priateľovi. Dokáže ich oklamať? Dokážete urobiť vášho bota viac 'uveriteľným'?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+V nasledujúcich lekciách sa dozviete viac o analýze sentimentu. Preskúmajte túto zaujímavú techniku v článkoch, ako sú tieto na [KDNuggets](https://www.kdnuggets.com/tag/nlp)
+
+## Zadanie
+
+[Urobte bota, ktorý odpovedá](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/2-Tasks/assignment.md b/translations/sk/6-NLP/2-Tasks/assignment.md
new file mode 100644
index 00000000..2174e175
--- /dev/null
+++ b/translations/sk/6-NLP/2-Tasks/assignment.md
@@ -0,0 +1,25 @@
+
+# Naučte bota odpovedať
+
+## Pokyny
+
+V predchádzajúcich lekciách ste naprogramovali základného bota, s ktorým sa dá chatovať. Tento bot dáva náhodné odpovede, kým nepoviete 'zbohom'. Dokážete urobiť odpovede menej náhodné a spustiť konkrétne odpovede, ak poviete určité veci, ako napríklad 'prečo' alebo 'ako'? Zamyslite sa nad tým, ako by strojové učenie mohlo urobiť tento typ práce menej manuálnym, keď budete rozširovať svojho bota. Môžete použiť knižnice NLTK alebo TextBlob, aby ste si uľahčili úlohy.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ------------------------------------------- | ----------------------------------------------- | ----------------------- |
+| | Je prezentovaný nový súbor bot.py a je zdokumentovaný | Je prezentovaný nový súbor bot.py, ale obsahuje chyby | Súbor nie je prezentovaný |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/3-Translation-Sentiment/README.md b/translations/sk/6-NLP/3-Translation-Sentiment/README.md
new file mode 100644
index 00000000..976fad32
--- /dev/null
+++ b/translations/sk/6-NLP/3-Translation-Sentiment/README.md
@@ -0,0 +1,200 @@
+
+# Preklad a analýza sentimentu pomocou ML
+
+V predchádzajúcich lekciách ste sa naučili, ako vytvoriť základného bota pomocou knižnice `TextBlob`, ktorá využíva strojové učenie na vykonávanie základných úloh spracovania prirodzeného jazyka, ako je extrakcia podstatných fráz. Ďalšou dôležitou výzvou v oblasti počítačovej lingvistiky je presný _preklad_ vety z jedného hovoreného alebo písaného jazyka do druhého.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+Preklad je veľmi náročný problém, ktorý je ešte zložitejší vzhľadom na to, že existujú tisíce jazykov, z ktorých každý môže mať veľmi odlišné gramatické pravidlá. Jedným z prístupov je konvertovať formálne gramatické pravidlá jedného jazyka, napríklad angličtiny, do štruktúry nezávislej od jazyka a potom ich preložiť späť do iného jazyka. Tento prístup zahŕňa nasledujúce kroky:
+
+1. **Identifikácia**. Identifikujte alebo označte slová v vstupnom jazyku ako podstatné mená, slovesá atď.
+2. **Vytvorenie prekladu**. Vytvorte priamy preklad každého slova vo formáte cieľového jazyka.
+
+### Príklad vety, angličtina do írčiny
+
+V angličtine je veta _I feel happy_ tri slová v poradí:
+
+- **podmet** (I)
+- **sloveso** (feel)
+- **prídavné meno** (happy)
+
+Avšak v írskom jazyku má tá istá veta úplne odlišnú gramatickú štruktúru – emócie ako "*šťastný*" alebo "*smutný*" sa vyjadrujú ako niečo, čo je *na vás*.
+
+Anglická fráza `I feel happy` by sa v írčine preložila ako `Tá athas orm`. Doslovný preklad by bol `Šťastie je na mne`.
+
+Írsky hovoriaci, ktorý prekladá do angličtiny, by povedal `I feel happy`, nie `Happy is upon me`, pretože chápe význam vety, aj keď sú slová a štruktúra vety odlišné.
+
+Formálne poradie vety v írčine je:
+
+- **sloveso** (Tá alebo je)
+- **prídavné meno** (athas alebo šťastný)
+- **podmet** (orm alebo na mne)
+
+## Preklad
+
+Naivný prekladový program by mohol prekladať iba slová, ignorujúc štruktúru vety.
+
+✅ Ak ste sa ako dospelý naučili druhý (alebo tretí či viac) jazyk, možno ste začali tým, že ste premýšľali vo svojom rodnom jazyku, prekladali koncept slovo po slove vo svojej hlave do druhého jazyka a potom vyslovili svoj preklad. Toto je podobné tomu, čo robia naivné prekladové počítačové programy. Je dôležité prekonať túto fázu, aby ste dosiahli plynulosť!
+
+Naivný preklad vedie k zlým (a niekedy vtipným) nesprávnym prekladom: `I feel happy` sa doslovne preloží ako `Mise bhraitheann athas` v írčine. To znamená (doslovne) `ja cítim šťastie` a nie je to platná írska veta. Aj keď angličtina a írčina sú jazyky hovorené na dvoch blízko susediacich ostrovoch, sú to veľmi odlišné jazyky s rôznymi gramatickými štruktúrami.
+
+> Môžete si pozrieť niektoré videá o írskych jazykových tradíciách, ako napríklad [toto](https://www.youtube.com/watch?v=mRIaLSdRMMs)
+
+### Prístupy strojového učenia
+
+Doteraz ste sa naučili o prístupe formálnych pravidiel k spracovaniu prirodzeného jazyka. Ďalším prístupom je ignorovať význam slov a _namiesto toho použiť strojové učenie na detekciu vzorcov_. Toto môže fungovať pri preklade, ak máte veľa textov (*korpus*) alebo textov (*korpora*) v pôvodnom a cieľovom jazyku.
+
+Napríklad, vezmite si prípad *Pýcha a predsudok*, známeho anglického románu napísaného Jane Austenovou v roku 1813. Ak si pozriete knihu v angličtine a ľudský preklad knihy do *francúzštiny*, mohli by ste detekovať frázy v jednom, ktoré sú _idiomaticky_ preložené do druhého. To si vyskúšate za chvíľu.
+
+Napríklad, keď sa anglická fráza `I have no money` doslovne preloží do francúzštiny, môže sa stať `Je n'ai pas de monnaie`. "Monnaie" je zradný francúzsky 'falošný príbuzný', pretože 'money' a 'monnaie' nie sú synonymá. Lepší preklad, ktorý by mohol urobiť človek, by bol `Je n'ai pas d'argent`, pretože lepšie vyjadruje význam, že nemáte peniaze (skôr než 'drobné', čo je význam 'monnaie').
+
+
+
+> Obrázok od [Jen Looper](https://twitter.com/jenlooper)
+
+Ak má model strojového učenia dostatok ľudských prekladov na vytvorenie modelu, môže zlepšiť presnosť prekladov identifikovaním bežných vzorcov v textoch, ktoré už predtým preložili odborní ľudskí hovoriaci oboch jazykov.
+
+### Cvičenie - preklad
+
+Môžete použiť `TextBlob` na preklad viet. Vyskúšajte slávnu prvú vetu z **Pýcha a predsudok**:
+
+```python
+from textblob import TextBlob
+
+blob = TextBlob(
+ "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
+)
+print(blob.translate(to="fr"))
+
+```
+
+`TextBlob` odvádza celkom dobrú prácu pri preklade: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
+
+Dá sa povedať, že preklad od TextBlob je oveľa presnejší ako francúzsky preklad knihy z roku 1932 od V. Leconte a Ch. Pressoir:
+
+"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."
+
+V tomto prípade preklad informovaný strojovým učením odvádza lepšiu prácu ako ľudský prekladateľ, ktorý zbytočne vkladá slová do úst pôvodného autora pre "jasnosť".
+
+> Čo sa tu deje? A prečo je TextBlob taký dobrý v preklade? Nuž, v zákulisí používa Google Translate, sofistikovanú AI schopnú analyzovať milióny fráz na predpovedanie najlepších reťazcov pre danú úlohu. Nič manuálne sa tu nedeje a na používanie `blob.translate` potrebujete internetové pripojenie.
+
+✅ Vyskúšajte niekoľko ďalších viet. Ktorý preklad je lepší, strojové učenie alebo ľudský preklad? V ktorých prípadoch?
+
+## Analýza sentimentu
+
+Ďalšou oblasťou, kde strojové učenie môže veľmi dobre fungovať, je analýza sentimentu. Ne-ML prístup k sentimentu je identifikovať slová a frázy, ktoré sú 'pozitívne' a 'negatívne'. Potom, vzhľadom na nový text, vypočítať celkovú hodnotu pozitívnych, negatívnych a neutrálnych slov na identifikáciu celkového sentimentu.
+
+Tento prístup sa dá ľahko oklamať, ako ste mohli vidieť v úlohe Marvin - veta `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` je sarkastická, negatívna veta, ale jednoduchý algoritmus detekuje 'great', 'wonderful', 'glad' ako pozitívne a 'waste', 'lost' a 'dark' ako negatívne. Celkový sentiment je ovplyvnený týmito protichodnými slovami.
+
+✅ Zastavte sa na chvíľu a zamyslite sa nad tým, ako ako ľudskí hovoriaci vyjadrujeme sarkazmus. Intonácia hlasu hrá veľkú úlohu. Skúste povedať frázu "Well, that film was awesome" rôznymi spôsobmi, aby ste zistili, ako váš hlas vyjadruje význam.
+
+### Prístupy ML
+
+Prístup ML by bol manuálne zhromaždiť negatívne a pozitívne texty - tweety, alebo recenzie filmov, alebo čokoľvek, kde človek dal skóre *a* písomný názor. Potom sa môžu aplikovať techniky NLP na názory a skóre, aby sa objavili vzorce (napr. pozitívne recenzie filmov majú tendenciu obsahovať frázu 'Oscar worthy' viac ako negatívne recenzie filmov, alebo pozitívne recenzie reštaurácií hovoria 'gourmet' oveľa viac ako 'disgusting').
+
+> ⚖️ **Príklad**: Ak by ste pracovali v kancelárii politika a diskutoval by sa nejaký nový zákon, voliči by mohli písať do kancelárie e-maily podporujúce alebo e-maily proti konkrétnemu novému zákonu. Povedzme, že by ste mali za úlohu čítať e-maily a triediť ich do 2 hromád, *za* a *proti*. Ak by bolo veľa e-mailov, mohli by ste byť zahltení pokusom prečítať ich všetky. Nebolo by pekné, keby bot mohol prečítať všetky za vás, pochopiť ich a povedať vám, do ktorej hromady patrí každý e-mail?
+>
+> Jedným zo spôsobov, ako to dosiahnuť, je použiť strojové učenie. Model by ste trénovali s časťou e-mailov *proti* a časťou e-mailov *za*. Model by mal tendenciu spájať frázy a slová so stranou proti a stranou za, *ale nerozumel by žiadnemu obsahu*, iba že určité slová a vzorce sa pravdepodobnejšie objavia v e-mailoch *proti* alebo *za*. Mohli by ste ho otestovať s niektorými e-mailmi, ktoré ste nepoužili na trénovanie modelu, a zistiť, či dospel k rovnakému záveru ako vy. Potom, keď by ste boli spokojní s presnosťou modelu, mohli by ste spracovať budúce e-maily bez toho, aby ste museli čítať každý jeden.
+
+✅ Znie tento proces ako procesy, ktoré ste použili v predchádzajúcich lekciách?
+
+## Cvičenie - sentimentálne vety
+
+Sentiment sa meria pomocou *polarizácie* od -1 do 1, pričom -1 je najnegatívnejší sentiment a 1 je najpozitívnejší. Sentiment sa tiež meria pomocou skóre od 0 do 1 pre objektivitu (0) a subjektivitu (1).
+
+Pozrite sa znova na *Pýcha a predsudok* od Jane Austenovej. Text je dostupný tu na [Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm). Ukážka nižšie zobrazuje krátky program, ktorý analyzuje sentiment prvej a poslednej vety z knihy a zobrazí jej polarizáciu sentimentu a skóre subjektivity/objektivity.
+
+Mali by ste použiť knižnicu `TextBlob` (opísanú vyššie) na určenie `sentimentu` (nemusíte písať vlastný kalkulátor sentimentu) v nasledujúcej úlohe.
+
+```python
+from textblob import TextBlob
+
+quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""
+
+quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""
+
+sentiment1 = TextBlob(quote1).sentiment
+sentiment2 = TextBlob(quote2).sentiment
+
+print(quote1 + " has a sentiment of " + str(sentiment1))
+print(quote2 + " has a sentiment of " + str(sentiment2))
+```
+
+Vidíte nasledujúci výstup:
+
+```output
+It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)
+
+Darcy, as well as Elizabeth, really loved them; and they were
+ both ever sensible of the warmest gratitude towards the persons
+ who, by bringing her into Derbyshire, had been the means of
+ uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)
+```
+
+## Výzva - skontrolujte polarizáciu sentimentu
+
+Vašou úlohou je určiť, pomocou polarizácie sentimentu, či má *Pýcha a predsudok* viac absolútne pozitívnych viet ako absolútne negatívnych. Pre túto úlohu môžete predpokladať, že polarizačné skóre 1 alebo -1 je absolútne pozitívne alebo negatívne.
+
+**Kroky:**
+
+1. Stiahnite si [kópiu Pýcha a predsudok](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) z Project Gutenberg ako .txt súbor. Odstráňte metadáta na začiatku a konci súboru, ponechajte iba pôvodný text
+2. Otvorte súbor v Pythone a extrahujte obsah ako reťazec
+3. Vytvorte TextBlob pomocou reťazca knihy
+4. Analyzujte každú vetu v knihe v cykle
+ 1. Ak je polarizácia 1 alebo -1, uložte vetu do poľa alebo zoznamu pozitívnych alebo negatívnych správ
+5. Na konci vytlačte všetky pozitívne vety a negatívne vety (samostatne) a ich počet.
+
+Tu je ukážka [riešenia](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb).
+
+✅ Kontrola vedomostí
+
+1. Sentiment je založený na slovách použitých vo vete, ale rozumie kód *slovám*?
+2. Myslíte si, že polarizácia sentimentu je presná, alebo inými slovami, *súhlasíte* s hodnotami?
+ 1. Konkrétne, súhlasíte alebo nesúhlasíte s absolútnou **pozitívnou** polarizáciou nasledujúcich viet?
+ * “What an excellent father you have, girls!” said she, when the door was shut.
+ * “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect.
+ * How wonderfully these sort of things occur!
+ * I have the greatest dislike in the world to that sort of thing.
+ * Charlotte is an excellent manager, I dare say.
+ * “This is delightful indeed!
+ * I am so happy!
+ * Your idea of the ponies is delightful.
+ 2. Nasledujúce 3 vety boli ohodnotené absolútne pozitívnym sentimentom, ale pri bližšom čítaní to nie sú pozitívne vety. Prečo si analýza sentimentu myslela, že sú pozitívne?
+ * Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power.
+ * If I could but see you as happy!
+ * Our distress, my dear Lizzy, is very great.
+ 3. Súhlasíte alebo nesúhlasíte s absolútnou **negatívnou** polarizáciou nasledujúcich viet?
+ - Everybody is disgusted with his pride.
+ - “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful.
+ - The pause was to Elizabeth’s feelings dreadful.
+ - It would be dreadful!
+
+✅ Každý nadšenec Jane Austenovej pochopí, že často používa svoje knihy na kritiku absurdnejších aspektov anglickej regentskej spoločnosti. Elizabeth Bennettová, hlavná postava v *Pýcha a predsudok*, je bystrá pozorovateľka spoločnosti (ako autorka) a jej jazyk je často veľmi nuansovaný. Dokonca aj pán Darcy (milostný záujem v príbehu) poznamenáva Elizabethin hravý a škádlivý spôsob používania jazyka: "I have had the pleasure of your acquaintance long enough to know that you find great enjoyment in occasionally professing opinions which in fact are not your own."
+
+---
+
+## 🚀Výzva
+
+Dokážete urobiť Marvina ešte lepším extrahovaním ďalších vlastností z používateľského vstupu?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+Existuje mnoho spôsobov, ako extrahovať sentiment z textu. Zamyslite sa nad obchodnými aplikáciami, ktoré by mohli využiť túto techniku. Premýšľajte o tom, ako sa to môže pokaziť. Prečítajte si viac o sofistikovaných systémoch pripravených pre podniky, ktoré analyzujú sentiment, ako napríklad [Azure Text Analysis](https://docs.microsoft.com/azure/cognitive-services/Text-Analytics/how-tos/text-analytics-how-to-sentiment-analysis?tabs=version-3-1?WT.mc_id=academic-77952-leestott). Otestujte niektoré z viet z knihy Pýcha a predsudok uvedených vyššie a zistite, či dokáže rozpoznať jemné nuansy.
+
+## Zadanie
+
+[Poetická licencia](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/3-Translation-Sentiment/assignment.md b/translations/sk/6-NLP/3-Translation-Sentiment/assignment.md
new file mode 100644
index 00000000..20382ebe
--- /dev/null
+++ b/translations/sk/6-NLP/3-Translation-Sentiment/assignment.md
@@ -0,0 +1,25 @@
+
+# Poetická licencia
+
+## Pokyny
+
+V [tomto notebooku](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) nájdete viac ako 500 básní Emily Dickinson, ktoré boli predtým analyzované na sentiment pomocou Azure text analytics. Pomocou tohto datasetu ho analyzujte pomocou techník popísaných v lekcii. Zodpovedá navrhovaný sentiment básne rozhodnutiu sofistikovanejšej služby Azure? Prečo áno alebo nie, podľa vášho názoru? Prekvapilo vás niečo?
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | -------------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------ |
+| | Notebook je prezentovaný s kvalitnou analýzou vzorky výstupu autora | Notebook je neúplný alebo nevykonáva analýzu | Notebook nie je prezentovaný |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/3-Translation-Sentiment/solution/Julia/README.md b/translations/sk/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
new file mode 100644
index 00000000..176fd9be
--- /dev/null
+++ b/translations/sk/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/3-Translation-Sentiment/solution/R/README.md b/translations/sk/6-NLP/3-Translation-Sentiment/solution/R/README.md
new file mode 100644
index 00000000..0e23b2fb
--- /dev/null
+++ b/translations/sk/6-NLP/3-Translation-Sentiment/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/4-Hotel-Reviews-1/README.md b/translations/sk/6-NLP/4-Hotel-Reviews-1/README.md
new file mode 100644
index 00000000..049c1a55
--- /dev/null
+++ b/translations/sk/6-NLP/4-Hotel-Reviews-1/README.md
@@ -0,0 +1,417 @@
+
+# Analýza sentimentu pomocou recenzií hotelov - spracovanie údajov
+
+V tejto časti použijete techniky z predchádzajúcich lekcií na prieskumnú analýzu veľkého datasetu. Keď získate dobré pochopenie užitočnosti jednotlivých stĺpcov, naučíte sa:
+
+- ako odstrániť nepotrebné stĺpce
+- ako vypočítať nové údaje na základe existujúcich stĺpcov
+- ako uložiť výsledný dataset na použitie vo finálnej výzve
+
+## [Kvíz pred lekciou](https://ff-quizzes.netlify.app/en/ml/)
+
+### Úvod
+
+Doteraz ste sa naučili, že textové údaje sú dosť odlišné od číselných typov údajov. Ak ide o text, ktorý napísal alebo povedal človek, je možné ho analyzovať na hľadanie vzorcov, frekvencií, sentimentu a významu. Táto lekcia vás zavedie do reálneho datasetu s reálnou výzvou: **[515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)**, ktorý obsahuje [CC0: Public Domain licenciu](https://creativecommons.org/publicdomain/zero/1.0/). Dataset bol získaný z verejných zdrojov na Booking.com. Autorom datasetu je Jiashen Liu.
+
+### Príprava
+
+Budete potrebovať:
+
+* Schopnosť spúšťať .ipynb notebooky pomocou Pythonu 3
+* pandas
+* NLTK, [ktorý by ste si mali nainštalovať lokálne](https://www.nltk.org/install.html)
+* Dataset, ktorý je dostupný na Kaggle [515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe). Po rozbalení má približne 230 MB. Stiahnite ho do koreňového priečinka `/data` priradeného k týmto lekciám NLP.
+
+## Prieskumná analýza údajov
+
+Táto výzva predpokladá, že vytvárate odporúčací bot pre hotely pomocou analýzy sentimentu a hodnotení hostí. Dataset, ktorý budete používať, obsahuje recenzie na 1493 rôznych hotelov v 6 mestách.
+
+Pomocou Pythonu, datasetu hotelových recenzií a analýzy sentimentu NLTK môžete zistiť:
+
+* Aké sú najčastejšie používané slová a frázy v recenziách?
+* Korelujú oficiálne *tagy* opisujúce hotel s hodnoteniami recenzií (napr. sú negatívnejšie recenzie pre konkrétny hotel od *Rodiny s malými deťmi* než od *Samostatného cestovateľa*, čo by mohlo naznačovať, že je lepší pre *Samostatných cestovateľov*)?
+* Sú skóre sentimentu NLTK v súlade s číselným hodnotením recenzenta?
+
+#### Dataset
+
+Preskúmajme dataset, ktorý ste si stiahli a uložili lokálne. Otvorte súbor v editore ako VS Code alebo dokonca Excel.
+
+Hlavičky v datasete sú nasledovné:
+
+*Hotel_Address, Additional_Number_of_Scoring, Review_Date, Average_Score, Hotel_Name, Reviewer_Nationality, Negative_Review, Review_Total_Negative_Word_Counts, Total_Number_of_Reviews, Positive_Review, Review_Total_Positive_Word_Counts, Total_Number_of_Reviews_Reviewer_Has_Given, Reviewer_Score, Tags, days_since_review, lat, lng*
+
+Tu sú zoskupené spôsobom, ktorý môže byť jednoduchší na preskúmanie:
+##### Stĺpce hotela
+
+* `Hotel_Name`, `Hotel_Address`, `lat` (zemepisná šírka), `lng` (zemepisná dĺžka)
+ * Pomocou *lat* a *lng* môžete vytvoriť mapu v Pythone, ktorá zobrazuje polohy hotelov (možno farebne odlíšené podľa negatívnych a pozitívnych recenzií)
+ * Hotel_Address nie je pre nás zjavne užitočný a pravdepodobne ho nahradíme krajinou pre jednoduchšie triedenie a vyhľadávanie
+
+**Meta-recenzie hotela**
+
+* `Average_Score`
+ * Podľa autora datasetu tento stĺpec predstavuje *Priemerné skóre hotela vypočítané na základe najnovšieho komentára za posledný rok*. Toto sa zdá byť nezvyčajný spôsob výpočtu skóre, ale ide o získané údaje, takže ich zatiaľ môžeme brať ako fakt.
+
+ ✅ Na základe ostatných stĺpcov v tomto datasete, dokážete si predstaviť iný spôsob výpočtu priemerného skóre?
+
+* `Total_Number_of_Reviews`
+ * Celkový počet recenzií, ktoré hotel dostal - nie je jasné (bez napísania kódu), či sa to vzťahuje na recenzie v datasete.
+* `Additional_Number_of_Scoring`
+ * To znamená, že bolo udelené hodnotenie, ale recenzent nenapísal pozitívnu ani negatívnu recenziu
+
+**Stĺpce recenzií**
+
+- `Reviewer_Score`
+ - Ide o číselnú hodnotu s maximálne jedným desatinným miestom medzi minimálnymi a maximálnymi hodnotami 2.5 a 10
+ - Nie je vysvetlené, prečo je najnižšie možné skóre 2.5
+- `Negative_Review`
+ - Ak recenzent nenapísal nič, toto pole bude obsahovať "**No Negative**"
+ - Všimnite si, že recenzent môže napísať pozitívnu recenziu do stĺpca Negative review (napr. "na tomto hoteli nie je nič zlé")
+- `Review_Total_Negative_Word_Counts`
+ - Vyšší počet negatívnych slov naznačuje nižšie skóre (bez kontroly sentimentu)
+- `Positive_Review`
+ - Ak recenzent nenapísal nič, toto pole bude obsahovať "**No Positive**"
+ - Všimnite si, že recenzent môže napísať negatívnu recenziu do stĺpca Positive review (napr. "na tomto hoteli nie je vôbec nič dobré")
+- `Review_Total_Positive_Word_Counts`
+ - Vyšší počet pozitívnych slov naznačuje vyššie skóre (bez kontroly sentimentu)
+- `Review_Date` a `days_since_review`
+ - Na recenziu by sa mohol aplikovať ukazovateľ čerstvosti alebo zastaranosti (staršie recenzie nemusia byť tak presné ako novšie, pretože sa mohlo zmeniť vedenie hotela, prebehli renovácie alebo bol pridaný bazén atď.)
+- `Tags`
+ - Ide o krátke popisy, ktoré si recenzent môže vybrať na opis typu hosťa (napr. samostatný alebo rodina), typu izby, dĺžky pobytu a spôsobu, akým bola recenzia odoslaná.
+ - Bohužiaľ, použitie týchto tagov je problematické, pozrite si nižšie uvedenú sekciu, ktorá diskutuje o ich užitočnosti
+
+**Stĺpce recenzenta**
+
+- `Total_Number_of_Reviews_Reviewer_Has_Given`
+ - Toto by mohlo byť faktorom v odporúčacom modeli, napríklad ak by ste mohli určiť, že plodnejší recenzenti s stovkami recenzií boli skôr negatívni než pozitívni. Avšak recenzent konkrétnej recenzie nie je identifikovaný jedinečným kódom, a preto ho nemožno prepojiť so súborom recenzií. Existuje 30 recenzentov so 100 alebo viac recenziami, ale je ťažké vidieť, ako by to mohlo pomôcť odporúčaciemu modelu.
+- `Reviewer_Nationality`
+ - Niektorí ľudia si môžu myslieť, že určité národnosti majú väčšiu tendenciu dávať pozitívne alebo negatívne recenzie kvôli národnej inklinácii. Buďte opatrní pri budovaní takýchto anekdotických názorov do svojich modelov. Ide o národné (a niekedy rasové) stereotypy a každý recenzent bol jednotlivec, ktorý napísal recenziu na základe svojej skúsenosti. Mohla byť filtrovaná cez mnoho šošoviek, ako sú ich predchádzajúce pobyty v hoteloch, vzdialenosť, ktorú precestovali, a ich osobný temperament. Myslieť si, že ich národnosť bola dôvodom hodnotenia recenzie, je ťažké odôvodniť.
+
+##### Príklady
+
+| Priemerné skóre | Celkový počet recenzií | Skóre recenzenta | Negatívna recenzia | Pozitívna recenzia | Tagy |
+| -------------- | ---------------------- | ---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- |
+| 7.8 | 1945 | 2.5 | Toto momentálne nie je hotel, ale stavenisko. Bol som terorizovaný od skorého rána a celý deň neznesiteľným stavebným hlukom, zatiaľ čo som odpočíval po dlhej ceste a pracoval v izbe. Ľudia pracovali celý deň, napr. s pneumatickými kladivami v susedných izbách. Požiadal som o zmenu izby, ale žiadna tichá izba nebola dostupná. Aby toho nebolo málo, bol som preplatený. Odhlásil som sa večer, pretože som musel odísť na skorý let a dostal som primeraný účet. O deň neskôr hotel vykonal ďalší poplatok bez môjho súhlasu nad rámec rezervovanej ceny. Je to strašné miesto. Nepunujte sa rezerváciou tu. | Nič. Strašné miesto. Držte sa ďalej. | Služobná cesta Pár Štandardná dvojlôžková izba Pobyt na 2 noci |
+
+Ako vidíte, tento hosť nemal šťastný pobyt v tomto hoteli. Hotel má dobré priemerné skóre 7.8 a 1945 recenzií, ale tento recenzent mu dal 2.5 a napísal 115 slov o tom, aký negatívny bol jeho pobyt. Ak by nenapísal nič do stĺpca Positive_Review, mohli by ste predpokladať, že nebolo nič pozitívne, ale napriek tomu napísal 7 varovných slov. Ak by sme len počítali slová namiesto významu alebo sentimentu slov, mohli by sme mať skreslený pohľad na zámer recenzenta. Zvláštne je, že jeho skóre 2.5 je mätúce, pretože ak bol pobyt v hoteli taký zlý, prečo mu dal vôbec nejaké body? Pri podrobnom preskúmaní datasetu uvidíte, že najnižšie možné skóre je 2.5, nie 0. Najvyššie možné skóre je 10.
+
+##### Tagy
+
+Ako bolo uvedené vyššie, na prvý pohľad sa zdá, že použitie `Tags` na kategorizáciu údajov dáva zmysel. Bohužiaľ, tieto tagy nie sú štandardizované, čo znamená, že v danom hoteli môžu byť možnosti *Jednolôžková izba*, *Dvojlôžková izba* a *Manželská izba*, ale v ďalšom hoteli sú to *Deluxe jednolôžková izba*, *Klasická izba s kráľovskou posteľou* a *Exekutívna izba s kráľovskou posteľou*. Môžu to byť tie isté veci, ale existuje toľko variácií, že voľba sa stáva:
+
+1. Pokúsiť sa zmeniť všetky termíny na jeden štandard, čo je veľmi náročné, pretože nie je jasné, aká by bola cesta konverzie v každom prípade (napr. *Klasická jednolôžková izba* sa mapuje na *Jednolôžková izba*, ale *Superior Queen Room with Courtyard Garden or City View* je oveľa ťažšie mapovať)
+
+1. Môžeme použiť prístup NLP a merať frekvenciu určitých termínov ako *Samostatný*, *Obchodný cestovateľ* alebo *Rodina s malými deťmi*, ako sa vzťahujú na každý hotel, a zahrnúť to do odporúčania
+
+Tagy sú zvyčajne (ale nie vždy) jedno pole obsahujúce zoznam 5 až 6 hodnôt oddelených čiarkami, ktoré sa vzťahujú na *Typ cesty*, *Typ hostí*, *Typ izby*, *Počet nocí* a *Typ zariadenia, na ktorom bola recenzia odoslaná*. Avšak, pretože niektorí recenzenti nevyplnia každé pole (môžu nechať jedno prázdne), hodnoty nie sú vždy v rovnakom poradí.
+
+Ako príklad vezmite *Typ skupiny*. V tomto poli v stĺpci `Tags` je 1025 jedinečných možností a bohužiaľ iba niektoré z nich sa vzťahujú na skupinu (niektoré sú typ izby atď.). Ak filtrujete iba tie, ktoré spomínajú rodinu, výsledky obsahujú mnoho typov izieb *Rodinná izba*. Ak zahrniete termín *s*, t.j. počítate hodnoty *Rodina s*, výsledky sú lepšie, s viac ako 80 000 z 515 000 výsledkov obsahujúcich frázu "Rodina s malými deťmi" alebo "Rodina so staršími deťmi".
+
+To znamená, že stĺpec tagov nie je pre nás úplne zbytočný, ale bude si vyžadovať určitú prácu, aby bol užitočný.
+
+##### Priemerné skóre hotela
+
+Existuje niekoľko zvláštností alebo nezrovnalostí v datasete, ktoré neviem vysvetliť, ale sú tu ilustrované, aby ste si ich boli vedomí pri budovaní svojich modelov. Ak ich vyriešite, dajte nám vedieť v diskusnej sekcii!
+
+Dataset má nasledujúce stĺpce týkajúce sa priemerného skóre a počtu recenzií:
+
+1. Hotel_Name
+2. Additional_Number_of_Scoring
+3. Average_Score
+4. Total_Number_of_Reviews
+5. Reviewer_Score
+
+Hotel s najväčším počtom recenzií v tomto datasete je *Britannia International Hotel Canary Wharf* s 4789 recenziami z 515 000. Ale ak sa pozrieme na hodnotu `Total_Number_of_Reviews` pre tento hotel, je to 9086. Mohli by ste predpokladať, že existuje oveľa viac skóre bez recenzií, takže možno by sme mali pridať hodnotu stĺpca `Additional_Number_of_Scoring`. Táto hodnota je 2682 a pridaním k 4789 dostaneme 7471, čo je stále o 1615 menej ako `Total_Number_of_Reviews`.
+
+Ak vezmete stĺpec `Average_Score`, mohli by ste predpokladať, že ide o priemer recenzií v datasete, ale popis z Kaggle je "*Priemerné skóre hotela vypočítané na základe najnovšieho komentára za posledný rok*". To sa nezdá byť veľmi užitočné, ale môžeme vypočítať vlastný priemer na základe skóre recenzií v datasete. Použitím toho istého hotela ako príkladu je priemerné skóre hotela uvedené ako 7.1, ale vypočítané skóre (priemerné skóre recenzenta *v* datasete) je 6.8. To je blízko, ale nie rovnaká hodnota, a môžeme len hádať, že skóre uvedené v recenziách `Additional_Number_of_Scoring` zvýšilo priemer na 7.1. Bohužiaľ, bez možnosti testovania alebo overenia tohto tvrdenia je ťažké použiť alebo dôverovať hodnotám `Average_Score`, `Additional_Number_of_Scoring` a `Total_Number_of_Reviews`, keď sú založené na údajoch, ktoré nemáme.
+
+Aby to bolo ešte komplikovanejšie, hotel s druhým najväčším počtom recenzií má vypočítané priemerné skóre 8.12 a dataset `Average_Score` je 8.1. Je toto správne skóre náhoda alebo je prvý hotel nezrovnalosť?
+
+Na základe možnosti, že tieto hotely môžu byť odľahlé hodnoty a že možno väčšina hodnôt sa zhoduje (ale niektoré z nejakého dôvodu nie), napíšeme krátky program na preskúmanie hodnôt v datasete a určenie správneho použitia (alebo nepoužitia) hodnôt.
+> 🚨 Upozornenie
+>
+> Pri práci s touto dátovou sadou budete písať kód, ktorý vypočíta niečo z textu bez toho, aby ste museli text sami čítať alebo analyzovať. Toto je podstata NLP – interpretovať význam alebo sentiment bez toho, aby to musel robiť človek. Je však možné, že si prečítate niektoré negatívne recenzie. Dôrazne vás vyzývam, aby ste to nerobili, pretože to nie je potrebné. Niektoré z nich sú hlúpe alebo nepodstatné negatívne recenzie na hotely, ako napríklad „Počasie nebolo dobré“, čo je mimo kontroly hotela alebo kohokoľvek iného. Ale niektoré recenzie majú aj temnú stránku. Niekedy sú negatívne recenzie rasistické, sexistické alebo ageistické. To je nešťastné, ale očakávané v dátovej sade získanej z verejnej webovej stránky. Niektorí recenzenti zanechávajú recenzie, ktoré by ste považovali za nevkusné, nepríjemné alebo znepokojujúce. Je lepšie nechať kód zmerať sentiment, než si ich čítať sami a byť znepokojení. To povedané, je to menšina, ktorá takéto veci píše, ale aj tak existujú.
+## Cvičenie - Prieskum údajov
+### Načítanie údajov
+
+To je dosť vizuálneho skúmania údajov, teraz napíšete kód a získate odpovede! Táto sekcia používa knižnicu pandas. Vašou prvou úlohou je zabezpečiť, že dokážete načítať a prečítať údaje z CSV. Knižnica pandas má rýchly načítač CSV a výsledok je uložený v dataframe, ako v predchádzajúcich lekciách. CSV, ktoré načítavame, má viac ako pol milióna riadkov, ale iba 17 stĺpcov. Pandas vám poskytuje množstvo výkonných spôsobov interakcie s dataframe, vrátane možnosti vykonávať operácie na každom riadku.
+
+Od tohto bodu v lekcii budú kódové úryvky, vysvetlenia kódu a diskusia o tom, čo výsledky znamenajú. Použite priložený _notebook.ipynb_ na svoj kód.
+
+Začnime načítaním súboru s údajmi, ktorý budete používať:
+
+```python
+# Load the hotel reviews from CSV
+import pandas as pd
+import time
+# importing time so the start and end time can be used to calculate file loading time
+print("Loading data file now, this could take a while depending on file size")
+start = time.time()
+# df is 'DataFrame' - make sure you downloaded the file to the data folder
+df = pd.read_csv('../../data/Hotel_Reviews.csv')
+end = time.time()
+print("Loading took " + str(round(end - start, 2)) + " seconds")
+```
+
+Keď sú údaje načítané, môžeme na nich vykonávať operácie. Tento kód ponechajte na začiatku svojho programu pre ďalšiu časť.
+
+## Preskúmajte údaje
+
+V tomto prípade sú údaje už *čisté*, čo znamená, že sú pripravené na prácu a neobsahujú znaky v iných jazykoch, ktoré by mohli spôsobiť problémy algoritmom očakávajúcim iba anglické znaky.
+
+✅ Môže sa stať, že budete pracovať s údajmi, ktoré vyžadujú počiatočné spracovanie na ich formátovanie pred aplikáciou techník NLP, ale tentokrát to nie je potrebné. Ak by ste museli, ako by ste riešili znaky v iných jazykoch?
+
+Uistite sa, že po načítaní údajov ich dokážete preskúmať pomocou kódu. Je veľmi lákavé zamerať sa na stĺpce `Negative_Review` a `Positive_Review`. Sú naplnené prirodzeným textom, ktorý vaše NLP algoritmy môžu spracovať. Ale počkajte! Predtým, než sa pustíte do NLP a sentimentu, mali by ste postupovať podľa kódu nižšie, aby ste zistili, či hodnoty uvedené v datasete zodpovedajú hodnotám, ktoré vypočítate pomocou pandas.
+
+## Operácie s dataframe
+
+Prvou úlohou v tejto lekcii je overiť, či sú nasledujúce tvrdenia správne, napísaním kódu, ktorý preskúma dataframe (bez jeho zmeny).
+
+> Ako pri mnohých programovacích úlohách, existuje niekoľko spôsobov, ako to dokončiť, ale dobrá rada je urobiť to najjednoduchším a najľahším spôsobom, aký môžete, najmä ak to bude jednoduchšie pochopiť, keď sa k tomuto kódu vrátite v budúcnosti. Pri práci s dataframe existuje komplexné API, ktoré často obsahuje spôsob, ako efektívne dosiahnuť, čo chcete.
+
+Považujte nasledujúce otázky za programovacie úlohy a pokúste sa na ne odpovedať bez toho, aby ste sa pozreli na riešenie.
+
+1. Vypíšte *tvar* dataframe, ktorý ste práve načítali (tvar je počet riadkov a stĺpcov).
+2. Vypočítajte frekvenčný počet národností recenzentov:
+ 1. Koľko rôznych hodnôt je v stĺpci `Reviewer_Nationality` a aké sú?
+ 2. Ktorá národnosť recenzenta je najčastejšia v datasete (vypíšte krajinu a počet recenzií)?
+ 3. Aké sú ďalších 10 najčastejšie sa vyskytujúcich národností a ich frekvenčný počet?
+3. Ktorý hotel bol najčastejšie recenzovaný pre každú z 10 najčastejších národností recenzentov?
+4. Koľko recenzií je na každý hotel (frekvenčný počet hotelov) v datasete?
+5. Hoci existuje stĺpec `Average_Score` pre každý hotel v datasete, môžete tiež vypočítať priemerné skóre (získaním priemeru všetkých skóre recenzentov v datasete pre každý hotel). Pridajte nový stĺpec do svojho dataframe s názvom stĺpca `Calc_Average_Score`, ktorý obsahuje vypočítaný priemer.
+6. Majú niektoré hotely rovnaké (zaokrúhlené na 1 desatinné miesto) hodnoty `Average_Score` a `Calc_Average_Score`?
+ 1. Skúste napísať funkciu v Pythone, ktorá berie Series (riadok) ako argument a porovnáva hodnoty, pričom vypíše správu, keď hodnoty nie sú rovnaké. Potom použite metódu `.apply()` na spracovanie každého riadku pomocou funkcie.
+7. Vypočítajte a vypíšte, koľko riadkov má stĺpec `Negative_Review` hodnotu "No Negative".
+8. Vypočítajte a vypíšte, koľko riadkov má stĺpec `Positive_Review` hodnotu "No Positive".
+9. Vypočítajte a vypíšte, koľko riadkov má stĺpec `Positive_Review` hodnotu "No Positive" **a** stĺpec `Negative_Review` hodnotu "No Negative".
+
+### Odpovede na kód
+
+1. Vypíšte *tvar* dataframe, ktorý ste práve načítali (tvar je počet riadkov a stĺpcov).
+
+ ```python
+ print("The shape of the data (rows, cols) is " + str(df.shape))
+ > The shape of the data (rows, cols) is (515738, 17)
+ ```
+
+2. Vypočítajte frekvenčný počet národností recenzentov:
+
+ 1. Koľko rôznych hodnôt je v stĺpci `Reviewer_Nationality` a aké sú?
+ 2. Ktorá národnosť recenzenta je najčastejšia v datasete (vypíšte krajinu a počet recenzií)?
+
+ ```python
+ # value_counts() creates a Series object that has index and values in this case, the country and the frequency they occur in reviewer nationality
+ nationality_freq = df["Reviewer_Nationality"].value_counts()
+ print("There are " + str(nationality_freq.size) + " different nationalities")
+ # print first and last rows of the Series. Change to nationality_freq.to_string() to print all of the data
+ print(nationality_freq)
+
+ There are 227 different nationalities
+ United Kingdom 245246
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ ...
+ Comoros 1
+ Palau 1
+ Northern Mariana Islands 1
+ Cape Verde 1
+ Guinea 1
+ Name: Reviewer_Nationality, Length: 227, dtype: int64
+ ```
+
+ 3. Aké sú ďalších 10 najčastejšie sa vyskytujúcich národností a ich frekvenčný počet?
+
+ ```python
+ print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.")
+ # Notice there is a leading space on the values, strip() removes that for printing
+ # What is the top 10 most common nationalities and their frequencies?
+ print("The next 10 highest frequency reviewer nationalities are:")
+ print(nationality_freq[1:11].to_string())
+
+ The highest frequency reviewer nationality is United Kingdom with 245246 reviews.
+ The next 10 highest frequency reviewer nationalities are:
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ Saudi Arabia 8951
+ Netherlands 8772
+ Switzerland 8678
+ Germany 7941
+ Canada 7894
+ France 7296
+ ```
+
+3. Ktorý hotel bol najčastejšie recenzovaný pre každú z 10 najčastejších národností recenzentov?
+
+ ```python
+ # What was the most frequently reviewed hotel for the top 10 nationalities
+ # Normally with pandas you will avoid an explicit loop, but wanted to show creating a new dataframe using criteria (don't do this with large amounts of data because it could be very slow)
+ for nat in nationality_freq[:10].index:
+ # First, extract all the rows that match the criteria into a new dataframe
+ nat_df = df[df["Reviewer_Nationality"] == nat]
+ # Now get the hotel freq
+ freq = nat_df["Hotel_Name"].value_counts()
+ print("The most reviewed hotel for " + str(nat).strip() + " was " + str(freq.index[0]) + " with " + str(freq[0]) + " reviews.")
+
+ The most reviewed hotel for United Kingdom was Britannia International Hotel Canary Wharf with 3833 reviews.
+ The most reviewed hotel for United States of America was Hotel Esther a with 423 reviews.
+ The most reviewed hotel for Australia was Park Plaza Westminster Bridge London with 167 reviews.
+ The most reviewed hotel for Ireland was Copthorne Tara Hotel London Kensington with 239 reviews.
+ The most reviewed hotel for United Arab Emirates was Millennium Hotel London Knightsbridge with 129 reviews.
+ The most reviewed hotel for Saudi Arabia was The Cumberland A Guoman Hotel with 142 reviews.
+ The most reviewed hotel for Netherlands was Jaz Amsterdam with 97 reviews.
+ The most reviewed hotel for Switzerland was Hotel Da Vinci with 97 reviews.
+ The most reviewed hotel for Germany was Hotel Da Vinci with 86 reviews.
+ The most reviewed hotel for Canada was St James Court A Taj Hotel London with 61 reviews.
+ ```
+
+4. Koľko recenzií je na každý hotel (frekvenčný počet hotelov) v datasete?
+
+ ```python
+ # First create a new dataframe based on the old one, removing the uneeded columns
+ hotel_freq_df = df.drop(["Hotel_Address", "Additional_Number_of_Scoring", "Review_Date", "Average_Score", "Reviewer_Nationality", "Negative_Review", "Review_Total_Negative_Word_Counts", "Positive_Review", "Review_Total_Positive_Word_Counts", "Total_Number_of_Reviews_Reviewer_Has_Given", "Reviewer_Score", "Tags", "days_since_review", "lat", "lng"], axis = 1)
+
+ # Group the rows by Hotel_Name, count them and put the result in a new column Total_Reviews_Found
+ hotel_freq_df['Total_Reviews_Found'] = hotel_freq_df.groupby('Hotel_Name').transform('count')
+
+ # Get rid of all the duplicated rows
+ hotel_freq_df = hotel_freq_df.drop_duplicates(subset = ["Hotel_Name"])
+ display(hotel_freq_df)
+ ```
+ | Hotel_Name | Total_Number_of_Reviews | Total_Reviews_Found |
+ | :----------------------------------------: | :---------------------: | :-----------------: |
+ | Britannia International Hotel Canary Wharf | 9086 | 4789 |
+ | Park Plaza Westminster Bridge London | 12158 | 4169 |
+ | Copthorne Tara Hotel London Kensington | 7105 | 3578 |
+ | ... | ... | ... |
+ | Mercure Paris Porte d Orleans | 110 | 10 |
+ | Hotel Wagner | 135 | 10 |
+ | Hotel Gallitzinberg | 173 | 8 |
+
+ Môžete si všimnúť, že výsledky *počítané v datasete* nezodpovedajú hodnote v `Total_Number_of_Reviews`. Nie je jasné, či táto hodnota v datasete predstavovala celkový počet recenzií, ktoré hotel mal, ale nie všetky boli zoškrabané, alebo nejaký iný výpočet. `Total_Number_of_Reviews` sa nepoužíva v modeli kvôli tejto nejasnosti.
+
+5. Hoci existuje stĺpec `Average_Score` pre každý hotel v datasete, môžete tiež vypočítať priemerné skóre (získaním priemeru všetkých skóre recenzentov v datasete pre každý hotel). Pridajte nový stĺpec do svojho dataframe s názvom stĺpca `Calc_Average_Score`, ktorý obsahuje vypočítaný priemer. Vypíšte stĺpce `Hotel_Name`, `Average_Score` a `Calc_Average_Score`.
+
+ ```python
+ # define a function that takes a row and performs some calculation with it
+ def get_difference_review_avg(row):
+ return row["Average_Score"] - row["Calc_Average_Score"]
+
+ # 'mean' is mathematical word for 'average'
+ df['Calc_Average_Score'] = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+
+ # Add a new column with the difference between the two average scores
+ df["Average_Score_Difference"] = df.apply(get_difference_review_avg, axis = 1)
+
+ # Create a df without all the duplicates of Hotel_Name (so only 1 row per hotel)
+ review_scores_df = df.drop_duplicates(subset = ["Hotel_Name"])
+
+ # Sort the dataframe to find the lowest and highest average score difference
+ review_scores_df = review_scores_df.sort_values(by=["Average_Score_Difference"])
+
+ display(review_scores_df[["Average_Score_Difference", "Average_Score", "Calc_Average_Score", "Hotel_Name"]])
+ ```
+
+ Môžete sa tiež čudovať nad hodnotou `Average_Score` a prečo je niekedy odlišná od vypočítaného priemerného skóre. Keďže nemôžeme vedieť, prečo niektoré hodnoty zodpovedajú, ale iné majú rozdiel, je najbezpečnejšie v tomto prípade použiť skóre recenzií, ktoré máme, na výpočet priemeru sami. Napriek tomu sú rozdiely zvyčajne veľmi malé, tu sú hotely s najväčšou odchýlkou od priemeru v datasete a vypočítaného priemeru:
+
+ | Average_Score_Difference | Average_Score | Calc_Average_Score | Hotel_Name |
+ | :----------------------: | :-----------: | :----------------: | ------------------------------------------: |
+ | -0.8 | 7.7 | 8.5 | Best Western Hotel Astoria |
+ | -0.7 | 8.8 | 9.5 | Hotel Stendhal Place Vend me Paris MGallery |
+ | -0.7 | 7.5 | 8.2 | Mercure Paris Porte d Orleans |
+ | -0.7 | 7.9 | 8.6 | Renaissance Paris Vendome Hotel |
+ | -0.5 | 7.0 | 7.5 | Hotel Royal Elys es |
+ | ... | ... | ... | ... |
+ | 0.7 | 7.5 | 6.8 | Mercure Paris Op ra Faubourg Montmartre |
+ | 0.8 | 7.1 | 6.3 | Holiday Inn Paris Montparnasse Pasteur |
+ | 0.9 | 6.8 | 5.9 | Villa Eugenie |
+ | 0.9 | 8.6 | 7.7 | MARQUIS Faubourg St Honor Relais Ch teaux |
+ | 1.3 | 7.2 | 5.9 | Kube Hotel Ice Bar |
+
+ S iba 1 hotelom, ktorý má rozdiel skóre väčší ako 1, to znamená, že pravdepodobne môžeme ignorovať rozdiel a použiť vypočítané priemerné skóre.
+
+6. Vypočítajte a vypíšte, koľko riadkov má stĺpec `Negative_Review` hodnotu "No Negative".
+
+7. Vypočítajte a vypíšte, koľko riadkov má stĺpec `Positive_Review` hodnotu "No Positive".
+
+8. Vypočítajte a vypíšte, koľko riadkov má stĺpec `Positive_Review` hodnotu "No Positive" **a** stĺpec `Negative_Review` hodnotu "No Negative".
+
+ ```python
+ # with lambdas:
+ start = time.time()
+ no_negative_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" else False , axis=1)
+ print("Number of No Negative reviews: " + str(len(no_negative_reviews[no_negative_reviews == True].index)))
+
+ no_positive_reviews = df.apply(lambda x: True if x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of No Positive reviews: " + str(len(no_positive_reviews[no_positive_reviews == True].index)))
+
+ both_no_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" and x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of both No Negative and No Positive reviews: " + str(len(both_no_reviews[both_no_reviews == True].index)))
+ end = time.time()
+ print("Lambdas took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Lambdas took 9.64 seconds
+ ```
+
+## Iný spôsob
+
+Iný spôsob, ako počítať položky bez Lambdas, a použiť sum na počítanie riadkov:
+
+ ```python
+ # without lambdas (using a mixture of notations to show you can use both)
+ start = time.time()
+ no_negative_reviews = sum(df.Negative_Review == "No Negative")
+ print("Number of No Negative reviews: " + str(no_negative_reviews))
+
+ no_positive_reviews = sum(df["Positive_Review"] == "No Positive")
+ print("Number of No Positive reviews: " + str(no_positive_reviews))
+
+ both_no_reviews = sum((df.Negative_Review == "No Negative") & (df.Positive_Review == "No Positive"))
+ print("Number of both No Negative and No Positive reviews: " + str(both_no_reviews))
+
+ end = time.time()
+ print("Sum took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Sum took 0.19 seconds
+ ```
+
+ Môžete si všimnúť, že existuje 127 riadkov, ktoré majú hodnoty "No Negative" a "No Positive" pre stĺpce `Negative_Review` a `Positive_Review`. To znamená, že recenzent dal hotelu číselné skóre, ale odmietol napísať pozitívnu alebo negatívnu recenziu. Našťastie ide o malý počet riadkov (127 z 515738, alebo 0,02%), takže pravdepodobne neovplyvní náš model alebo výsledky žiadnym konkrétnym smerom, ale možno ste nečakali, že dataset recenzií bude obsahovať riadky bez recenzií, takže stojí za to preskúmať údaje, aby ste objavili takéto riadky.
+
+Teraz, keď ste preskúmali dataset, v ďalšej lekcii budete filtrovať údaje a pridávať analýzu sentimentu.
+
+---
+## 🚀Výzva
+
+Táto lekcia demonštruje, ako sme videli v predchádzajúcich lekciách, aké kriticky dôležité je pochopiť svoje údaje a ich zvláštnosti pred vykonaním operácií na nich. Textové údaje si obzvlášť vyžadujú dôkladné preskúmanie. Prejdite rôzne textovo bohaté datasety a zistite, či dokážete objaviť oblasti, ktoré by mohli zaviesť zaujatosť alebo skreslený sentiment do modelu.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Vezmite si [túto vzdelávaciu cestu o NLP](https://docs.microsoft.com/learn/paths/explore-natural-language-processing/?WT.mc_id=academic-77952-leestott), aby ste objavili nástroje, ktoré môžete vyskúšať pri budovaní modelov založených na reči a texte.
+
+## Zadanie
+
+[NLTK](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/4-Hotel-Reviews-1/assignment.md b/translations/sk/6-NLP/4-Hotel-Reviews-1/assignment.md
new file mode 100644
index 00000000..6d63c5e2
--- /dev/null
+++ b/translations/sk/6-NLP/4-Hotel-Reviews-1/assignment.md
@@ -0,0 +1,19 @@
+
+# NLTK
+
+## Inštrukcie
+
+NLTK je známa knižnica používaná v oblasti výpočtovej lingvistiky a spracovania prirodzeného jazyka. Využite túto príležitosť na prečítanie '[NLTK knihy](https://www.nltk.org/book/)' a vyskúšajte jej cvičenia. V tomto nehodnotenom zadaní sa budete môcť s touto knižnicou zoznámiť podrobnejšie.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md b/translations/sk/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
new file mode 100644
index 00000000..7a5b1402
--- /dev/null
+++ b/translations/sk/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/4-Hotel-Reviews-1/solution/R/README.md b/translations/sk/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
new file mode 100644
index 00000000..9cb5d331
--- /dev/null
+++ b/translations/sk/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/5-Hotel-Reviews-2/README.md b/translations/sk/6-NLP/5-Hotel-Reviews-2/README.md
new file mode 100644
index 00000000..5c33a5c2
--- /dev/null
+++ b/translations/sk/6-NLP/5-Hotel-Reviews-2/README.md
@@ -0,0 +1,389 @@
+
+# Analýza sentimentu pomocou recenzií hotelov
+
+Teraz, keď ste podrobne preskúmali dataset, je čas filtrovať stĺpce a použiť techniky NLP na získanie nových poznatkov o hoteloch.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+### Operácie filtrovania a analýzy sentimentu
+
+Ako ste si pravdepodobne všimli, dataset má niekoľko problémov. Niektoré stĺpce sú plné zbytočných informácií, iné sa zdajú byť nesprávne. Ak sú správne, nie je jasné, ako boli vypočítané, a odpovede nemôžete nezávisle overiť vlastnými výpočtami.
+
+## Cvičenie: ďalšie spracovanie dát
+
+Vyčistite dáta ešte o niečo viac. Pridajte stĺpce, ktoré budú užitočné neskôr, zmeňte hodnoty v iných stĺpcoch a niektoré stĺpce úplne odstráňte.
+
+1. Počiatočné spracovanie stĺpcov
+
+ 1. Odstráňte `lat` a `lng`
+
+ 2. Nahraďte hodnoty `Hotel_Address` nasledujúcimi hodnotami (ak adresa obsahuje názov mesta a krajiny, zmeňte ju na iba mesto a krajinu).
+
+ Toto sú jediné mestá a krajiny v datasete:
+
+ Amsterdam, Holandsko
+
+ Barcelona, Španielsko
+
+ Londýn, Spojené kráľovstvo
+
+ Miláno, Taliansko
+
+ Paríž, Francúzsko
+
+ Viedeň, Rakúsko
+
+ ```python
+ def replace_address(row):
+ if "Netherlands" in row["Hotel_Address"]:
+ return "Amsterdam, Netherlands"
+ elif "Barcelona" in row["Hotel_Address"]:
+ return "Barcelona, Spain"
+ elif "United Kingdom" in row["Hotel_Address"]:
+ return "London, United Kingdom"
+ elif "Milan" in row["Hotel_Address"]:
+ return "Milan, Italy"
+ elif "France" in row["Hotel_Address"]:
+ return "Paris, France"
+ elif "Vienna" in row["Hotel_Address"]:
+ return "Vienna, Austria"
+
+ # Replace all the addresses with a shortened, more useful form
+ df["Hotel_Address"] = df.apply(replace_address, axis = 1)
+ # The sum of the value_counts() should add up to the total number of reviews
+ print(df["Hotel_Address"].value_counts())
+ ```
+
+ Teraz môžete dotazovať údaje na úrovni krajiny:
+
+ ```python
+ display(df.groupby("Hotel_Address").agg({"Hotel_Name": "nunique"}))
+ ```
+
+ | Hotel_Address | Hotel_Name |
+ | :--------------------- | :--------: |
+ | Amsterdam, Holandsko | 105 |
+ | Barcelona, Španielsko | 211 |
+ | Londýn, Spojené kráľovstvo | 400 |
+ | Miláno, Taliansko | 162 |
+ | Paríž, Francúzsko | 458 |
+ | Viedeň, Rakúsko | 158 |
+
+2. Spracovanie stĺpcov meta-recenzie hotela
+
+ 1. Odstráňte `Additional_Number_of_Scoring`
+
+ 1. Nahraďte `Total_Number_of_Reviews` celkovým počtom recenzií pre daný hotel, ktoré sú skutočne v datasete
+
+ 1. Nahraďte `Average_Score` vlastným vypočítaným skóre
+
+ ```python
+ # Drop `Additional_Number_of_Scoring`
+ df.drop(["Additional_Number_of_Scoring"], axis = 1, inplace=True)
+ # Replace `Total_Number_of_Reviews` and `Average_Score` with our own calculated values
+ df.Total_Number_of_Reviews = df.groupby('Hotel_Name').transform('count')
+ df.Average_Score = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+ ```
+
+3. Spracovanie stĺpcov recenzií
+
+ 1. Odstráňte `Review_Total_Negative_Word_Counts`, `Review_Total_Positive_Word_Counts`, `Review_Date` a `days_since_review`
+
+ 2. Zachovajte `Reviewer_Score`, `Negative_Review` a `Positive_Review` tak, ako sú,
+
+ 3. Zatiaľ ponechajte `Tags`
+
+ - V ďalšej časti vykonáme ďalšie operácie filtrovania na tagoch a potom tagy odstránime
+
+4. Spracovanie stĺpcov recenzentov
+
+ 1. Odstráňte `Total_Number_of_Reviews_Reviewer_Has_Given`
+
+ 2. Zachovajte `Reviewer_Nationality`
+
+### Stĺpce tagov
+
+Stĺpec `Tag` je problematický, pretože je to zoznam (vo forme textu) uložený v stĺpci. Bohužiaľ, poradie a počet podsekcií v tomto stĺpci nie sú vždy rovnaké. Je ťažké pre človeka identifikovať správne frázy, ktoré by ho mohli zaujímať, pretože existuje 515 000 riadkov a 1427 hotelov, pričom každý má mierne odlišné možnosti, ktoré si recenzent mohol vybrať. Tu prichádza na rad NLP. Môžete prehľadať text a nájsť najčastejšie frázy a spočítať ich.
+
+Bohužiaľ, nezaujímajú nás jednotlivé slová, ale viacslovné frázy (napr. *Služobná cesta*). Spustenie algoritmu na frekvenčnú distribúciu viacslovných fráz na takom množstve dát (6762646 slov) by mohlo trvať mimoriadne dlho, ale bez pohľadu na dáta by sa zdalo, že je to nevyhnutný výdavok. Tu je užitočná prieskumná analýza dát, pretože ste videli vzorku tagov, ako napríklad `[' Služobná cesta ', ' Cestovateľ sólo ', ' Jednolôžková izba ', ' Pobyt na 5 nocí ', ' Odoslané z mobilného zariadenia ']`, môžete začať uvažovať, či je možné výrazne znížiť spracovanie, ktoré musíte vykonať. Našťastie je to možné - ale najprv musíte dodržať niekoľko krokov na určenie zaujímavých tagov.
+
+### Filtrovanie tagov
+
+Pamätajte, že cieľom datasetu je pridať sentiment a stĺpce, ktoré vám pomôžu vybrať najlepší hotel (pre seba alebo možno pre klienta, ktorý vás poveril vytvorením bota na odporúčanie hotelov). Musíte sa sami seba opýtať, či sú tagy užitočné alebo nie vo finálnom datasete. Tu je jedna interpretácia (ak by ste dataset potrebovali na iné účely, mohli by zostať/vypadnúť iné tagy):
+
+1. Typ cesty je relevantný a mal by zostať
+2. Typ skupiny hostí je dôležitý a mal by zostať
+3. Typ izby, apartmánu alebo štúdia, v ktorom hosť býval, je irelevantný (všetky hotely majú v podstate rovnaké izby)
+4. Zariadenie, na ktorom bola recenzia odoslaná, je irelevantné
+5. Počet nocí, ktoré recenzent zostal, *môže* byť relevantný, ak by ste pripisovali dlhšie pobyty tomu, že sa hosťovi hotel páčil viac, ale je to diskutabilné a pravdepodobne irelevantné
+
+V súhrne, **ponechajte 2 druhy tagov a ostatné odstráňte**.
+
+Najprv nechcete počítať tagy, kým nie sú v lepšom formáte, čo znamená odstránenie hranatých zátvoriek a úvodzoviek. Môžete to urobiť niekoľkými spôsobmi, ale chcete najrýchlejší, pretože spracovanie veľkého množstva dát môže trvať dlho. Našťastie, pandas má jednoduchý spôsob, ako vykonať každý z týchto krokov.
+
+```Python
+# Remove opening and closing brackets
+df.Tags = df.Tags.str.strip("[']")
+# remove all quotes too
+df.Tags = df.Tags.str.replace(" ', '", ",", regex = False)
+```
+
+Každý tag sa stane niečím ako: `Služobná cesta, Cestovateľ sólo, Jednolôžková izba, Pobyt na 5 nocí, Odoslané z mobilného zariadenia`.
+
+Ďalej narazíme na problém. Niektoré recenzie alebo riadky majú 5 stĺpcov, niektoré 3, niektoré 6. To je výsledok toho, ako bol dataset vytvorený, a je ťažké to opraviť. Chcete získať frekvenčný počet každej frázy, ale sú v rôznom poradí v každej recenzii, takže počet môže byť nesprávny a hotel nemusí dostať tag, ktorý si zaslúžil.
+
+Namiesto toho využijete rôzne poradie vo svoj prospech, pretože každý tag je viacslovný, ale tiež oddelený čiarkou! Najjednoduchší spôsob, ako to urobiť, je vytvoriť 6 dočasných stĺpcov, pričom každý tag vložíte do stĺpca zodpovedajúceho jeho poradiu v tagu. Potom môžete zlúčiť 6 stĺpcov do jedného veľkého stĺpca a spustiť metódu `value_counts()` na výslednom stĺpci. Po vytlačení uvidíte, že existovalo 2428 unikátnych tagov. Tu je malá vzorka:
+
+| Tag | Počet |
+| ------------------------------ | ------ |
+| Rekreačná cesta | 417778 |
+| Odoslané z mobilného zariadenia | 307640 |
+| Pár | 252294 |
+| Pobyt na 1 noc | 193645 |
+| Pobyt na 2 noci | 133937 |
+| Cestovateľ sólo | 108545 |
+| Pobyt na 3 noci | 95821 |
+| Služobná cesta | 82939 |
+| Skupina | 65392 |
+| Rodina s malými deťmi | 61015 |
+| Pobyt na 4 noci | 47817 |
+| Dvojlôžková izba | 35207 |
+| Štandardná dvojlôžková izba | 32248 |
+| Superior dvojlôžková izba | 31393 |
+| Rodina so staršími deťmi | 26349 |
+| Deluxe dvojlôžková izba | 24823 |
+| Dvojlôžková alebo dvojposteľová izba | 22393 |
+| Pobyt na 5 nocí | 20845 |
+| Štandardná dvojlôžková alebo dvojposteľová izba | 17483 |
+| Klasická dvojlôžková izba | 16989 |
+| Superior dvojlôžková alebo dvojposteľová izba | 13570 |
+| 2 izby | 12393 |
+
+Niektoré z bežných tagov, ako napríklad `Odoslané z mobilného zariadenia`, sú pre nás zbytočné, takže by mohlo byť rozumné ich odstrániť pred počítaním výskytu fráz, ale je to tak rýchla operácia, že ich môžete ponechať a ignorovať.
+
+### Odstránenie tagov o dĺžke pobytu
+
+Odstránenie týchto tagov je krok 1, mierne znižuje celkový počet tagov, ktoré treba zvážiť. Všimnite si, že ich neodstraňujete z datasetu, len sa rozhodnete ich nebrať do úvahy ako hodnoty na počítanie/zachovanie v datasete recenzií.
+
+| Dĺžka pobytu | Počet |
+| -------------- | ------ |
+| Pobyt na 1 noc | 193645 |
+| Pobyt na 2 noci| 133937 |
+| Pobyt na 3 noci| 95821 |
+| Pobyt na 4 noci| 47817 |
+| Pobyt na 5 nocí| 20845 |
+| Pobyt na 6 nocí| 9776 |
+| Pobyt na 7 nocí| 7399 |
+| Pobyt na 8 nocí| 2502 |
+| Pobyt na 9 nocí| 1293 |
+| ... | ... |
+
+Existuje obrovská rozmanitosť izieb, apartmánov, štúdií, bytov a podobne. Všetky znamenajú približne to isté a nie sú pre vás relevantné, takže ich odstráňte z úvahy.
+
+| Typ izby | Počet |
+| ---------------------------- | ----- |
+| Dvojlôžková izba | 35207 |
+| Štandardná dvojlôžková izba | 32248 |
+| Superior dvojlôžková izba | 31393 |
+| Deluxe dvojlôžková izba | 24823 |
+| Dvojlôžková alebo dvojposteľová izba | 22393 |
+| Štandardná dvojlôžková alebo dvojposteľová izba | 17483 |
+| Klasická dvojlôžková izba | 16989 |
+| Superior dvojlôžková alebo dvojposteľová izba | 13570 |
+
+Nakoniec, a to je potešujúce (pretože to nevyžadovalo veľa spracovania), zostanú vám nasledujúce *užitočné* tagy:
+
+| Tag | Počet |
+| --------------------------------------------- | ------ |
+| Rekreačná cesta | 417778 |
+| Pár | 252294 |
+| Cestovateľ sólo | 108545 |
+| Služobná cesta | 82939 |
+| Skupina (spojené s Cestovatelia s priateľmi) | 67535 |
+| Rodina s malými deťmi | 61015 |
+| Rodina so staršími deťmi | 26349 |
+| S domácim miláčikom | 1405 |
+
+Môžete argumentovať, že `Cestovatelia s priateľmi` je viac-menej to isté ako `Skupina`, a bolo by spravodlivé spojiť tieto dva tagy, ako je uvedené vyššie. Kód na identifikáciu správnych tagov je [notebook Tags](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb).
+
+Posledným krokom je vytvoriť nové stĺpce pre každý z týchto tagov. Potom, pre každý riadok recenzie, ak stĺpec `Tag` zodpovedá jednému z nových stĺpcov, pridajte 1, ak nie, pridajte 0. Konečným výsledkom bude počet recenzentov, ktorí si vybrali tento hotel (v súhrne) napríklad na služobnú cestu, rekreačnú cestu alebo na pobyt s domácim miláčikom, a to sú užitočné informácie pri odporúčaní hotela.
+
+```python
+# Process the Tags into new columns
+# The file Hotel_Reviews_Tags.py, identifies the most important tags
+# Leisure trip, Couple, Solo traveler, Business trip, Group combined with Travelers with friends,
+# Family with young children, Family with older children, With a pet
+df["Leisure_trip"] = df.Tags.apply(lambda tag: 1 if "Leisure trip" in tag else 0)
+df["Couple"] = df.Tags.apply(lambda tag: 1 if "Couple" in tag else 0)
+df["Solo_traveler"] = df.Tags.apply(lambda tag: 1 if "Solo traveler" in tag else 0)
+df["Business_trip"] = df.Tags.apply(lambda tag: 1 if "Business trip" in tag else 0)
+df["Group"] = df.Tags.apply(lambda tag: 1 if "Group" in tag or "Travelers with friends" in tag else 0)
+df["Family_with_young_children"] = df.Tags.apply(lambda tag: 1 if "Family with young children" in tag else 0)
+df["Family_with_older_children"] = df.Tags.apply(lambda tag: 1 if "Family with older children" in tag else 0)
+df["With_a_pet"] = df.Tags.apply(lambda tag: 1 if "With a pet" in tag else 0)
+
+```
+
+### Uložte svoj súbor
+
+Nakoniec uložte dataset v aktuálnom stave pod novým názvom.
+
+```python
+df.drop(["Review_Total_Negative_Word_Counts", "Review_Total_Positive_Word_Counts", "days_since_review", "Total_Number_of_Reviews_Reviewer_Has_Given"], axis = 1, inplace=True)
+
+# Saving new data file with calculated columns
+print("Saving results to Hotel_Reviews_Filtered.csv")
+df.to_csv(r'../data/Hotel_Reviews_Filtered.csv', index = False)
+```
+
+## Operácie analýzy sentimentu
+
+V tejto poslednej časti aplikujete analýzu sentimentu na stĺpce recenzií a uložíte výsledky do datasetu.
+
+## Cvičenie: načítanie a uloženie filtrovaných dát
+
+Všimnite si, že teraz načítavate filtrovaný dataset, ktorý bol uložený v predchádzajúcej časti, **nie** pôvodný dataset.
+
+```python
+import time
+import pandas as pd
+import nltk as nltk
+from nltk.corpus import stopwords
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+nltk.download('vader_lexicon')
+
+# Load the filtered hotel reviews from CSV
+df = pd.read_csv('../../data/Hotel_Reviews_Filtered.csv')
+
+# You code will be added here
+
+
+# Finally remember to save the hotel reviews with new NLP data added
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r'../data/Hotel_Reviews_NLP.csv', index = False)
+```
+
+### Odstránenie stop slov
+
+Ak by ste spustili analýzu sentimentu na stĺpcoch negatívnych a pozitívnych recenzií, mohlo by to trvať dlho. Testované na výkonnom testovacom notebooku s rýchlym CPU, trvalo to 12 - 14 minút v závislosti od použitej knižnice sentimentu. To je (relatívne) dlhý čas, takže stojí za to preskúmať, či sa to dá urýchliť.
+
+Odstránenie stop slov, alebo bežných anglických slov, ktoré nemenia sentiment vety, je prvým krokom. Ich odstránením by mala analýza sentimentu prebiehať rýchlejšie, ale nebude menej presná (keďže stop slová neovplyvňujú sentiment, ale spomaľujú analýzu).
+
+Najdlhšia negatívna recenzia mala 395 slov, ale po odstránení stop slov má 195 slov.
+
+Odstránenie stop slov je tiež rýchla operácia, odstránenie stop slov z 2 stĺpcov recenzií cez 515 000 riadkov trvalo 3,3 sekundy na testovacom zariadení. Môže to trvať o niečo viac alebo menej času v závislosti od rýchlosti vášho CPU, RAM, či máte SSD alebo nie, a niektorých ďalších faktorov. Relatívna krátkosť operácie znamená, že ak zlepší čas analýzy sentimentu, potom sa oplatí vykonať.
+
+```python
+from nltk.corpus import stopwords
+
+# Load the hotel reviews from CSV
+df = pd.read_csv("../../data/Hotel_Reviews_Filtered.csv")
+
+# Remove stop words - can be slow for a lot of text!
+# Ryan Han (ryanxjhan on Kaggle) has a great post measuring performance of different stop words removal approaches
+# https://www.kaggle.com/ryanxjhan/fast-stop-words-removal # using the approach that Ryan recommends
+start = time.time()
+cache = set(stopwords.words("english"))
+def remove_stopwords(review):
+ text = " ".join([word for word in review.split() if word not in cache])
+ return text
+
+# Remove the stop words from both columns
+df.Negative_Review = df.Negative_Review.apply(remove_stopwords)
+df.Positive_Review = df.Positive_Review.apply(remove_stopwords)
+```
+
+### Vykonanie analýzy sentimentu
+
+Teraz by ste mali vypočítať analýzu sentimentu pre stĺpce negatívnych a pozitívnych recenzií a uložiť výsledok do 2 nových stĺpcov. Test sentimentu bude porovnať ho so skóre recenzenta pre tú istú recenziu. Napríklad, ak sentiment ukazuje, že negatívna recenzia mala sentiment 1 (extrémne pozitívny sentiment) a pozitívna recenzia sentiment 1, ale recenzent dal hotelu najnižšie možné skóre, potom buď text recenzie nezodpovedá skóre, alebo sentimentový analyzátor nedokázal správne rozpoznať sentiment. Mali by ste očakávať, že niektoré skóre sentimentu budú úplne nesprávne, a často to bude vysvetliteľné, napríklad recenzia môže byť extrémne sarkastická "Samozrejme, že som MILOVAL spanie v izbe bez kúrenia" a sentimentový analyzátor si myslí, že je to pozitívny sentiment, aj keď človek, ktorý to číta, by vedel, že ide o sarkazmus.
+NLTK poskytuje rôzne analyzátory sentimentu, s ktorými sa môžete učiť, a môžete ich zameniť, aby ste zistili, či je sentiment presnejší alebo menej presný. Na analýzu sentimentu sa tu používa VADER.
+
+> Hutto, C.J. & Gilbert, E.E. (2014). VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text. Eighth International Conference on Weblogs and Social Media (ICWSM-14). Ann Arbor, MI, jún 2014.
+
+```python
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+
+# Create the vader sentiment analyser (there are others in NLTK you can try too)
+vader_sentiment = SentimentIntensityAnalyzer()
+# Hutto, C.J. & Gilbert, E.E. (2014). VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text. Eighth International Conference on Weblogs and Social Media (ICWSM-14). Ann Arbor, MI, June 2014.
+
+# There are 3 possibilities of input for a review:
+# It could be "No Negative", in which case, return 0
+# It could be "No Positive", in which case, return 0
+# It could be a review, in which case calculate the sentiment
+def calc_sentiment(review):
+ if review == "No Negative" or review == "No Positive":
+ return 0
+ return vader_sentiment.polarity_scores(review)["compound"]
+```
+
+Neskôr vo vašom programe, keď budete pripravení vypočítať sentiment, môžete ho aplikovať na každú recenziu nasledovne:
+
+```python
+# Add a negative sentiment and positive sentiment column
+print("Calculating sentiment columns for both positive and negative reviews")
+start = time.time()
+df["Negative_Sentiment"] = df.Negative_Review.apply(calc_sentiment)
+df["Positive_Sentiment"] = df.Positive_Review.apply(calc_sentiment)
+end = time.time()
+print("Calculating sentiment took " + str(round(end - start, 2)) + " seconds")
+```
+
+Toto trvá približne 120 sekúnd na mojom počítači, ale na každom počítači sa to môže líšiť. Ak chcete vytlačiť výsledky a zistiť, či sentiment zodpovedá recenzii:
+
+```python
+df = df.sort_values(by=["Negative_Sentiment"], ascending=True)
+print(df[["Negative_Review", "Negative_Sentiment"]])
+df = df.sort_values(by=["Positive_Sentiment"], ascending=True)
+print(df[["Positive_Review", "Positive_Sentiment"]])
+```
+
+Posledná vec, ktorú treba urobiť so súborom pred jeho použitím vo výzve, je uložiť ho! Mali by ste tiež zvážiť preusporiadanie všetkých nových stĺpcov tak, aby sa s nimi ľahšie pracovalo (pre človeka je to kozmetická zmena).
+
+```python
+# Reorder the columns (This is cosmetic, but to make it easier to explore the data later)
+df = df.reindex(["Hotel_Name", "Hotel_Address", "Total_Number_of_Reviews", "Average_Score", "Reviewer_Score", "Negative_Sentiment", "Positive_Sentiment", "Reviewer_Nationality", "Leisure_trip", "Couple", "Solo_traveler", "Business_trip", "Group", "Family_with_young_children", "Family_with_older_children", "With_a_pet", "Negative_Review", "Positive_Review"], axis=1)
+
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r"../data/Hotel_Reviews_NLP.csv", index = False)
+```
+
+Mali by ste spustiť celý kód pre [analytický notebook](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) (po tom, čo ste spustili [notebook na filtrovanie](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) na generovanie súboru Hotel_Reviews_Filtered.csv).
+
+Na zhrnutie, kroky sú:
+
+1. Pôvodný súbor datasetu **Hotel_Reviews.csv** je preskúmaný v predchádzajúcej lekcii pomocou [exploračného notebooku](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb)
+2. Hotel_Reviews.csv je filtrovaný pomocou [notebooku na filtrovanie](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb), čo vedie k súboru **Hotel_Reviews_Filtered.csv**
+3. Hotel_Reviews_Filtered.csv je spracovaný pomocou [notebooku na analýzu sentimentu](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb), čo vedie k súboru **Hotel_Reviews_NLP.csv**
+4. Použite Hotel_Reviews_NLP.csv vo výzve NLP nižšie
+
+### Záver
+
+Keď ste začínali, mali ste dataset so stĺpcami a údajmi, ale nie všetky z nich mohli byť overené alebo použité. Preskúmali ste údaje, odfiltrovali to, čo nepotrebujete, konvertovali značky na niečo užitočné, vypočítali svoje vlastné priemery, pridali niektoré stĺpce sentimentu a dúfajme, že ste sa naučili niečo zaujímavé o spracovaní prirodzeného textu.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Výzva
+
+Teraz, keď máte dataset analyzovaný na sentiment, skúste použiť stratégie, ktoré ste sa naučili v tomto kurze (napríklad zhlukovanie), aby ste určili vzory okolo sentimentu.
+
+## Prehľad a samostatné štúdium
+
+Vezmite si [tento modul Learn](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott), aby ste sa dozvedeli viac a použili rôzne nástroje na skúmanie sentimentu v texte.
+
+## Zadanie
+
+[Vyskúšajte iný dataset](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/5-Hotel-Reviews-2/assignment.md b/translations/sk/6-NLP/5-Hotel-Reviews-2/assignment.md
new file mode 100644
index 00000000..34c481fe
--- /dev/null
+++ b/translations/sk/6-NLP/5-Hotel-Reviews-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Vyskúšajte iný dataset
+
+## Pokyny
+
+Teraz, keď ste sa naučili používať NLTK na priradenie sentimentu textu, vyskúšajte iný dataset. Pravdepodobne budete musieť vykonať nejaké spracovanie údajov, takže si vytvorte notebook a zdokumentujte svoj postup. Čo ste zistili?
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------- | ---------------------- |
+| | Kompletný notebook a dataset sú prezentované s dobre zdokumentovanými bunkami, ktoré vysvetľujú, ako je sentiment priradený | Notebooku chýbajú dobré vysvetlenia | Notebook má nedostatky |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md b/translations/sk/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
new file mode 100644
index 00000000..20a14895
--- /dev/null
+++ b/translations/sk/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/5-Hotel-Reviews-2/solution/R/README.md b/translations/sk/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
new file mode 100644
index 00000000..cb890e0a
--- /dev/null
+++ b/translations/sk/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/README.md b/translations/sk/6-NLP/README.md
new file mode 100644
index 00000000..f40611fc
--- /dev/null
+++ b/translations/sk/6-NLP/README.md
@@ -0,0 +1,38 @@
+
+# Začíname s prirodzeným spracovaním jazyka
+
+Prirodzené spracovanie jazyka (NLP) je schopnosť počítačového programu porozumieť ľudskému jazyku tak, ako je hovorený a písaný – označovaný ako prirodzený jazyk. Je to súčasť umelej inteligencie (AI). NLP existuje už viac ako 50 rokov a má korene v oblasti lingvistiky. Celá oblasť je zameraná na pomoc strojom pri porozumení a spracovaní ľudského jazyka. To sa potom môže použiť na vykonávanie úloh, ako je kontrola pravopisu alebo strojový preklad. Má množstvo praktických aplikácií v rôznych oblastiach, vrátane medicínskeho výskumu, vyhľadávačov a obchodnej inteligencie.
+
+## Regionálna téma: Európske jazyky a literatúra a romantické hotely Európy ❤️
+
+V tejto časti kurzu sa zoznámite s jedným z najrozšírenejších využití strojového učenia: prirodzeným spracovaním jazyka (NLP). Táto kategória umelej inteligencie, odvodená z počítačovej lingvistiky, predstavuje most medzi ľuďmi a strojmi prostredníctvom hlasovej alebo textovej komunikácie.
+
+V týchto lekciách sa naučíme základy NLP tým, že vytvoríme malé konverzačné boty, aby sme pochopili, ako strojové učenie pomáha robiť tieto rozhovory čoraz „inteligentnejšími“. Cestujete späť v čase, rozprávajúc sa s Elizabeth Bennettovou a pánom Darcym z klasického románu Jane Austenovej, **Pýcha a predsudok**, publikovaného v roku 1813. Potom si rozšírite svoje vedomosti učením sa o analýze sentimentu prostredníctvom recenzií hotelov v Európe.
+
+
+> Foto od Elaine Howlin na Unsplash
+
+## Lekcie
+
+1. [Úvod do prirodzeného spracovania jazyka](1-Introduction-to-NLP/README.md)
+2. [Bežné úlohy a techniky NLP](2-Tasks/README.md)
+3. [Preklad a analýza sentimentu pomocou strojového učenia](3-Translation-Sentiment/README.md)
+4. [Príprava vašich dát](4-Hotel-Reviews-1/README.md)
+5. [NLTK pre analýzu sentimentu](5-Hotel-Reviews-2/README.md)
+
+## Kredity
+
+Tieto lekcie o prirodzenom spracovaní jazyka boli napísané s ☕ [Stephenom Howellom](https://twitter.com/Howell_MSFT)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-NLP/data/README.md b/translations/sk/6-NLP/data/README.md
new file mode 100644
index 00000000..48b6ec7e
--- /dev/null
+++ b/translations/sk/6-NLP/data/README.md
@@ -0,0 +1,15 @@
+
+Stiahnite údaje o recenziách hotela do tohto priečinka.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/1-Introduction/README.md b/translations/sk/7-TimeSeries/1-Introduction/README.md
new file mode 100644
index 00000000..2ef7532f
--- /dev/null
+++ b/translations/sk/7-TimeSeries/1-Introduction/README.md
@@ -0,0 +1,199 @@
+
+# Úvod do predikcie časových radov
+
+
+
+> Sketchnote od [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+V tejto lekcii a nasledujúcej sa naučíte niečo o predikcii časových radov, zaujímavej a hodnotnej časti repertoáru ML vedca, ktorá je o niečo menej známa ako iné témy. Predikcia časových radov je akýsi „krištáľový glóbus“: na základe minulého výkonu premenných, ako je cena, môžete predpovedať jej budúcu potenciálnu hodnotu.
+
+[](https://youtu.be/cBojo1hsHiI "Úvod do predikcie časových radov")
+
+> 🎥 Kliknite na obrázok vyššie pre video o predikcii časových radov
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+Je to užitočná a zaujímavá oblasť s reálnou hodnotou pre podnikanie, vzhľadom na jej priamu aplikáciu na problémy s cenami, inventárom a otázkami dodávateľského reťazca. Hoci sa začali používať techniky hlbokého učenia na získanie lepších poznatkov pre presnejšiu predikciu budúceho výkonu, predikcia časových radov zostáva oblasťou, ktorú výrazne ovplyvňujú klasické techniky ML.
+
+> Užitočný učebný plán časových radov od Penn State nájdete [tu](https://online.stat.psu.edu/stat510/lesson/1)
+
+## Úvod
+
+Predstavte si, že spravujete pole inteligentných parkovacích automatov, ktoré poskytujú údaje o tom, ako často sa používajú a ako dlho v priebehu času.
+
+> Čo keby ste mohli predpovedať, na základe minulého výkonu automatu, jeho budúcu hodnotu podľa zákonov ponuky a dopytu?
+
+Presné predpovedanie, kedy konať, aby ste dosiahli svoj cieľ, je výzva, ktorú by mohla riešiť predikcia časových radov. Ľudí by síce nepotešilo, keby boli účtované vyššie poplatky v rušných časoch, keď hľadajú parkovacie miesto, ale bol by to istý spôsob, ako generovať príjem na čistenie ulíc!
+
+Poďme preskúmať niektoré typy algoritmov časových radov a začnime notebook na čistenie a prípravu údajov. Údaje, ktoré budete analyzovať, pochádzajú zo súťaže GEFCom2014 o predikciu. Obsahujú 3 roky hodinových hodnôt elektrickej záťaže a teploty medzi rokmi 2012 a 2014. Na základe historických vzorcov elektrickej záťaže a teploty môžete predpovedať budúce hodnoty elektrickej záťaže.
+
+V tomto príklade sa naučíte predpovedať jeden časový krok dopredu, pričom použijete iba historické údaje o záťaži. Pred začiatkom je však užitočné pochopiť, čo sa deje v zákulisí.
+
+## Niektoré definície
+
+Pri stretnutí s pojmom „časové rady“ je potrebné pochopiť jeho použitie v niekoľkých rôznych kontextoch.
+
+🎓 **Časové rady**
+
+V matematike sú „časové rady sériou dátových bodov indexovaných (alebo uvedených alebo graficky znázornených) v časovom poradí. Najčastejšie sú časové rady sekvenciou zaznamenanou v po sebe nasledujúcich rovnako vzdialených časových bodoch.“ Príkladom časových radov je denná uzatváracia hodnota [Dow Jones Industrial Average](https://wikipedia.org/wiki/Time_series). Použitie grafov časových radov a štatistického modelovania sa často vyskytuje pri spracovaní signálov, predpovedi počasia, predpovedi zemetrasení a v iných oblastiach, kde sa udalosti vyskytujú a dátové body môžu byť znázornené v čase.
+
+🎓 **Analýza časových radov**
+
+Analýza časových radov je analýza vyššie uvedených údajov časových radov. Údaje časových radov môžu mať rôzne formy, vrátane „prerušených časových radov“, ktoré detekujú vzorce vo vývoji časových radov pred a po prerušenom udalosti. Typ analýzy potrebnej pre časové rady závisí od povahy údajov. Údaje časových radov samotné môžu mať formu sérií čísel alebo znakov.
+
+Analýza, ktorá sa má vykonať, používa rôzne metódy, vrátane frekvenčnej domény a časovej domény, lineárne a nelineárne a ďalšie. [Viac sa dozviete](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) o mnohých spôsoboch analýzy tohto typu údajov.
+
+🎓 **Predikcia časových radov**
+
+Predikcia časových radov je použitie modelu na predpovedanie budúcich hodnôt na základe vzorcov zobrazených predtým zhromaždenými údajmi, ako sa vyskytovali v minulosti. Hoci je možné použiť regresné modely na skúmanie údajov časových radov, s časovými indexmi ako x premennými na grafe, takéto údaje je najlepšie analyzovať pomocou špeciálnych typov modelov.
+
+Údaje časových radov sú zoznamom usporiadaných pozorovaní, na rozdiel od údajov, ktoré je možné analyzovať lineárnou regresiou. Najbežnejším modelom je ARIMA, skratka pre „Autoregressive Integrated Moving Average“.
+
+[ARIMA modely](https://online.stat.psu.edu/stat510/lesson/1/1.1) „spájajú súčasnú hodnotu série s minulými hodnotami a minulými chybami predpovede.“ Sú najvhodnejšie na analýzu údajov časovej domény, kde sú údaje usporiadané v čase.
+
+> Existuje niekoľko typov ARIMA modelov, o ktorých sa môžete dozvedieť [tu](https://people.duke.edu/~rnau/411arim.htm) a ktorých sa dotknete v nasledujúcej lekcii.
+
+V nasledujúcej lekcii vytvoríte ARIMA model pomocou [Jednorozmerných časových radov](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm), ktoré sa zameriavajú na jednu premennú, ktorá mení svoju hodnotu v čase. Príkladom tohto typu údajov je [tento dataset](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm), ktorý zaznamenáva mesačnú koncentráciu CO2 na observatóriu Mauna Loa:
+
+| CO2 | YearMonth | Year | Month |
+| :----: | :-------: | :---: | :---: |
+| 330.62 | 1975.04 | 1975 | 1 |
+| 331.40 | 1975.13 | 1975 | 2 |
+| 331.87 | 1975.21 | 1975 | 3 |
+| 333.18 | 1975.29 | 1975 | 4 |
+| 333.92 | 1975.38 | 1975 | 5 |
+| 333.43 | 1975.46 | 1975 | 6 |
+| 331.85 | 1975.54 | 1975 | 7 |
+| 330.01 | 1975.63 | 1975 | 8 |
+| 328.51 | 1975.71 | 1975 | 9 |
+| 328.41 | 1975.79 | 1975 | 10 |
+| 329.25 | 1975.88 | 1975 | 11 |
+| 330.97 | 1975.96 | 1975 | 12 |
+
+✅ Identifikujte premennú, ktorá sa v tomto datasete mení v čase.
+
+## Charakteristiky údajov časových radov, ktoré treba zvážiť
+
+Pri pohľade na údaje časových radov si môžete všimnúť, že majú [určité charakteristiky](https://online.stat.psu.edu/stat510/lesson/1/1.1), ktoré je potrebné zohľadniť a zmierniť, aby ste lepšie pochopili ich vzorce. Ak považujete údaje časových radov za potenciálne poskytujúce „signál“, ktorý chcete analyzovať, tieto charakteristiky možno považovať za „šum“. Často budete musieť tento „šum“ znížiť kompenzovaním niektorých z týchto charakteristík pomocou štatistických techník.
+
+Tu sú niektoré koncepty, ktoré by ste mali poznať, aby ste mohli pracovať s časovými radmi:
+
+🎓 **Trendy**
+
+Trendy sú definované ako merateľné nárasty a poklesy v priebehu času. [Prečítajte si viac](https://machinelearningmastery.com/time-series-trends-in-python). V kontexte časových radov ide o to, ako používať a, ak je to potrebné, odstrániť trendy z vašich časových radov.
+
+🎓 **[Sezónnosť](https://machinelearningmastery.com/time-series-seasonality-with-python/)**
+
+Sezónnosť je definovaná ako periodické výkyvy, napríklad sviatočné nákupy, ktoré môžu ovplyvniť predaj. [Pozrite sa](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm), ako rôzne typy grafov zobrazujú sezónnosť v údajoch.
+
+🎓 **Odľahlé hodnoty**
+
+Odľahlé hodnoty sú ďaleko od štandardnej variability údajov.
+
+🎓 **Dlhodobý cyklus**
+
+Nezávisle od sezónnosti môžu údaje vykazovať dlhodobý cyklus, ako je hospodársky pokles, ktorý trvá dlhšie ako rok.
+
+🎓 **Konštantná variancia**
+
+V priebehu času niektoré údaje vykazujú konštantné výkyvy, ako je spotreba energie počas dňa a noci.
+
+🎓 **Náhle zmeny**
+
+Údaje môžu vykazovať náhlu zmenu, ktorá si môže vyžadovať ďalšiu analýzu. Náhle zatvorenie podnikov kvôli COVID-u, napríklad, spôsobilo zmeny v údajoch.
+
+✅ Tu je [ukážkový graf časových radov](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python), ktorý zobrazuje denné výdavky na hernú menu počas niekoľkých rokov. Dokážete identifikovať niektoré z vyššie uvedených charakteristík v týchto údajoch?
+
+
+
+## Cvičenie - začíname s údajmi o spotrebe energie
+
+Začnime vytvárať model časových radov na predpovedanie budúcej spotreby energie na základe minulých údajov.
+
+> Údaje v tomto príklade pochádzajú zo súťaže GEFCom2014 o predikciu. Obsahujú 3 roky hodinových hodnôt elektrickej záťaže a teploty medzi rokmi 2012 a 2014.
+>
+> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli a Rob J. Hyndman, "Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016.
+
+1. V priečinku `working` tejto lekcie otvorte súbor _notebook.ipynb_. Začnite pridaním knižníc, ktoré vám pomôžu načítať a vizualizovať údaje.
+
+ ```python
+ import os
+ import matplotlib.pyplot as plt
+ from common.utils import load_data
+ %matplotlib inline
+ ```
+
+ Upozornenie: používate súbory zo zahrnutého priečinka `common`, ktoré nastavujú vaše prostredie a spracovávajú sťahovanie údajov.
+
+2. Ďalej preskúmajte údaje ako dataframe pomocou `load_data()` a `head()`:
+
+ ```python
+ data_dir = './data'
+ energy = load_data(data_dir)[['load']]
+ energy.head()
+ ```
+
+ Môžete vidieť, že existujú dva stĺpce reprezentujúce dátum a záťaž:
+
+ | | load |
+ | :-----------------: | :----: |
+ | 2012-01-01 00:00:00 | 2698.0 |
+ | 2012-01-01 01:00:00 | 2558.0 |
+ | 2012-01-01 02:00:00 | 2444.0 |
+ | 2012-01-01 03:00:00 | 2402.0 |
+ | 2012-01-01 04:00:00 | 2403.0 |
+
+3. Teraz vykreslite údaje pomocou `plot()`:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+4. Teraz vykreslite prvý týždeň júla 2014, poskytnutím vstupu do `energy` vo formáte `[od dátumu]: [do dátumu]`:
+
+ ```python
+ energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Krásny graf! Pozrite sa na tieto grafy a zistite, či dokážete určiť niektoré z vyššie uvedených charakteristík. Čo môžeme usúdiť vizualizáciou údajov?
+
+V nasledujúcej lekcii vytvoríte ARIMA model na vytvorenie niektorých predpovedí.
+
+---
+
+## 🚀Výzva
+
+Vytvorte zoznam všetkých odvetví a oblastí výskumu, ktoré by mohli profitovať z predikcie časových radov. Dokážete si predstaviť aplikáciu týchto techník v umení? V ekonometrii? Ekológii? Maloobchode? Priemysle? Financiách? Kde ešte?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Hoci ich tu nebudeme pokrývať, neurónové siete sa niekedy používajú na zlepšenie klasických metód predikcie časových radov. Prečítajte si o nich viac [v tomto článku](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412)
+
+## Zadanie
+
+[Vizualizujte ďalšie časové rady](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/1-Introduction/assignment.md b/translations/sk/7-TimeSeries/1-Introduction/assignment.md
new file mode 100644
index 00000000..7bad6acd
--- /dev/null
+++ b/translations/sk/7-TimeSeries/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Vizualizujte ďalšie časové rady
+
+## Pokyny
+
+Začali ste sa učiť o predpovedaní časových radov tým, že ste sa pozreli na typ údajov, ktoré vyžadujú tento špeciálny modelovací prístup. Vizualizovali ste niektoré údaje týkajúce sa energie. Teraz sa pozrite na ďalšie údaje, ktoré by mohli profitovať z predpovedania časových radov. Nájdite tri príklady (skúste [Kaggle](https://kaggle.com) a [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)) a vytvorte notebook na ich vizualizáciu. V notebooku zaznamenajte akékoľvek špeciálne charakteristiky, ktoré majú (sezónnosť, náhle zmeny alebo iné trendy).
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ------------------------------------------------------ | --------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| | Tri súbory údajov sú zobrazené a vysvetlené v notebooku | Dva súbory údajov sú zobrazené a vysvetlené v notebooku | Málo súborov údajov je zobrazených alebo vysvetlených v notebooku, alebo prezentované údaje sú nedostatočné |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/1-Introduction/solution/Julia/README.md b/translations/sk/7-TimeSeries/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..25a722f3
--- /dev/null
+++ b/translations/sk/7-TimeSeries/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/1-Introduction/solution/R/README.md b/translations/sk/7-TimeSeries/1-Introduction/solution/R/README.md
new file mode 100644
index 00000000..2d74c9f7
--- /dev/null
+++ b/translations/sk/7-TimeSeries/1-Introduction/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/2-ARIMA/README.md b/translations/sk/7-TimeSeries/2-ARIMA/README.md
new file mode 100644
index 00000000..7efdd2aa
--- /dev/null
+++ b/translations/sk/7-TimeSeries/2-ARIMA/README.md
@@ -0,0 +1,407 @@
+
+# Predpovedanie časových radov pomocou ARIMA
+
+V predchádzajúcej lekcii ste sa dozvedeli niečo o predpovedaní časových radov a načítali ste dataset zobrazujúci výkyvy elektrického zaťaženia v priebehu času.
+
+[](https://youtu.be/IUSk-YDau10 "Úvod do ARIMA")
+
+> 🎥 Kliknite na obrázok vyššie pre video: Stručný úvod do modelov ARIMA. Príklad je spracovaný v R, ale koncepty sú univerzálne.
+
+## [Kvíz pred lekciou](https://ff-quizzes.netlify.app/en/ml/)
+
+## Úvod
+
+V tejto lekcii objavíte konkrétny spôsob vytvárania modelov pomocou [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average). Modely ARIMA sú obzvlášť vhodné na prispôsobenie údajov, ktoré vykazujú [ne-stacionárnosť](https://wikipedia.org/wiki/Stationary_process).
+
+## Všeobecné koncepty
+
+Aby ste mohli pracovať s ARIMA, musíte poznať niektoré základné pojmy:
+
+- 🎓 **Stacionárnosť**. Z pohľadu štatistiky stacionárnosť označuje údaje, ktorých distribúcia sa nemení pri posune v čase. Ne-stacionárne údaje vykazujú výkyvy spôsobené trendmi, ktoré je potrebné transformovať na analýzu. Sezónnosť, napríklad, môže spôsobovať výkyvy v údajoch a môže byť eliminovaná procesom 'sezónneho diferenciovania'.
+
+- 🎓 **[Diferencovanie](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**. Diferencovanie údajov, opäť z pohľadu štatistiky, označuje proces transformácie ne-stacionárnych údajov na stacionárne odstránením ich ne-konštantného trendu. "Diferencovanie odstraňuje zmeny v úrovni časového radu, eliminuje trend a sezónnosť a následne stabilizuje priemer časového radu." [Štúdia od Shixiong et al](https://arxiv.org/abs/1904.07632)
+
+## ARIMA v kontexte časových radov
+
+Rozložme časti ARIMA, aby sme lepšie pochopili, ako nám pomáha modelovať časové rady a robiť predpovede.
+
+- **AR - AutoRegresívne**. Autoregresívne modely, ako naznačuje názov, sa pozerajú 'späť' v čase, aby analyzovali predchádzajúce hodnoty vo vašich údajoch a robili o nich predpoklady. Tieto predchádzajúce hodnoty sa nazývajú 'oneskorenia'. Príkladom by mohli byť údaje zobrazujúce mesačný predaj ceruziek. Každý mesačný súčet predaja by sa považoval za 'vyvíjajúcu sa premennú' v datasete. Tento model je postavený tak, že "vyvíjajúca sa premenná záujmu je regresovaná na svoje oneskorené (t.j. predchádzajúce) hodnoty." [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)
+
+- **I - Integrované**. Na rozdiel od podobných modelov 'ARMA', 'I' v ARIMA označuje jeho *[integrovaný](https://wikipedia.org/wiki/Order_of_integration)* aspekt. Údaje sú 'integrované', keď sa aplikujú kroky diferenciovania na elimináciu ne-stacionárnosti.
+
+- **MA - Pohyblivý priemer**. [Pohyblivý priemer](https://wikipedia.org/wiki/Moving-average_model) v tomto modeli označuje výstupnú premennú, ktorá je určená pozorovaním aktuálnych a minulých hodnôt oneskorení.
+
+Zhrnutie: ARIMA sa používa na prispôsobenie modelu špeciálnej forme údajov časových radov čo najpresnejšie.
+
+## Cvičenie - vytvorte model ARIMA
+
+Otvorte [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) priečinok v tejto lekcii a nájdite súbor [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb).
+
+1. Spustite notebook na načítanie knižnice `statsmodels` pre Python; túto budete potrebovať pre modely ARIMA.
+
+1. Načítajte potrebné knižnice.
+
+1. Teraz načítajte niekoľko ďalších knižníc užitočných na vykresľovanie údajov:
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from pandas.plotting import autocorrelation_plot
+ from statsmodels.tsa.statespace.sarimax import SARIMAX
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ from IPython.display import Image
+
+ %matplotlib inline
+ pd.options.display.float_format = '{:,.2f}'.format
+ np.set_printoptions(precision=2)
+ warnings.filterwarnings("ignore") # specify to ignore warning messages
+ ```
+
+1. Načítajte údaje zo súboru `/data/energy.csv` do Pandas dataframe a pozrite sa na ne:
+
+ ```python
+ energy = load_data('./data')[['load']]
+ energy.head(10)
+ ```
+
+1. Vykreslite všetky dostupné údaje o energii od januára 2012 do decembra 2014. Nemalo by vás nič prekvapiť, keďže sme tieto údaje videli v predchádzajúcej lekcii:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ Teraz vytvorme model!
+
+### Vytvorte tréningové a testovacie datasety
+
+Keď sú vaše údaje načítané, môžete ich rozdeliť na tréningovú a testovaciu množinu. Model budete trénovať na tréningovej množine. Ako obvykle, po dokončení tréningu modelu vyhodnotíte jeho presnosť pomocou testovacej množiny. Musíte zabezpečiť, aby testovacia množina pokrývala neskoršie obdobie v čase ako tréningová množina, aby ste zabezpečili, že model nezíska informácie z budúcich časových období.
+
+1. Priraďte dvojmesačné obdobie od 1. septembra do 31. októbra 2014 tréningovej množine. Testovacia množina bude zahŕňať dvojmesačné obdobie od 1. novembra do 31. decembra 2014:
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+ Keďže tieto údaje odrážajú dennú spotrebu energie, existuje silný sezónny vzor, ale spotreba je najviac podobná spotrebe v nedávnych dňoch.
+
+1. Vizualizujte rozdiely:
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Preto by malo byť dostatočné použiť relatívne malé časové okno na tréning údajov.
+
+ > Poznámka: Keďže funkcia, ktorú používame na prispôsobenie modelu ARIMA, používa validáciu v rámci vzorky počas prispôsobovania, vynecháme validačné údaje.
+
+### Pripravte údaje na tréning
+
+Teraz musíte pripraviť údaje na tréning filtrovaním a škálovaním údajov. Filtrovanie datasetu zahŕňa zahrnutie iba potrebných časových období a stĺpcov, a škálovanie zabezpečuje, že údaje sú projektované v intervale 0,1.
+
+1. Filtrovanie pôvodného datasetu na zahrnutie iba vyššie uvedených časových období na množinu a zahrnutie iba potrebného stĺpca 'load' plus dátum:
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ Môžete vidieť tvar údajov:
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+1. Škálovanie údajov do rozsahu (0, 1).
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ train.head(10)
+ ```
+
+1. Vizualizujte pôvodné vs. škálované údaje:
+
+ ```python
+ energy[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']].rename(columns={'load':'original load'}).plot.hist(bins=100, fontsize=12)
+ train.rename(columns={'load':'scaled load'}).plot.hist(bins=100, fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ > Pôvodné údaje
+
+ 
+
+ > Škálované údaje
+
+1. Teraz, keď ste kalibrovali škálované údaje, môžete škálovať testovacie údaje:
+
+ ```python
+ test['load'] = scaler.transform(test)
+ test.head()
+ ```
+
+### Implementujte ARIMA
+
+Je čas implementovať ARIMA! Teraz použijete knižnicu `statsmodels`, ktorú ste nainštalovali skôr.
+
+Teraz musíte postupovať podľa niekoľkých krokov:
+
+ 1. Definujte model volaním `SARIMAX()` a zadaním parametrov modelu: parametre p, d a q, a parametre P, D a Q.
+ 2. Pripravte model na tréningové údaje volaním funkcie fit().
+ 3. Vytvorte predpovede volaním funkcie `forecast()` a špecifikovaním počtu krokov (tzv. `horizont`) na predpovedanie.
+
+> 🎓 Na čo slúžia všetky tieto parametre? V modeli ARIMA existujú 3 parametre, ktoré sa používajú na modelovanie hlavných aspektov časového radu: sezónnosť, trend a šum. Tieto parametre sú:
+
+`p`: parameter spojený s autoregresívnym aspektom modelu, ktorý zahŕňa *minulé* hodnoty.
+`d`: parameter spojený s integrovanou časťou modelu, ktorý ovplyvňuje množstvo *diferencovania* (🎓 pamätáte si diferenciovanie 👆?) aplikovaného na časový rad.
+`q`: parameter spojený s aspektom pohyblivého priemeru modelu.
+
+> Poznámka: Ak vaše údaje majú sezónny aspekt - čo tieto majú -, používame sezónny model ARIMA (SARIMA). V takom prípade musíte použiť ďalšiu sadu parametrov: `P`, `D` a `Q`, ktoré opisujú rovnaké asociácie ako `p`, `d` a `q`, ale zodpovedajú sezónnym komponentom modelu.
+
+1. Začnite nastavením preferovanej hodnoty horizontu. Skúsme 3 hodiny:
+
+ ```python
+ # Specify the number of steps to forecast ahead
+ HORIZON = 3
+ print('Forecasting horizon:', HORIZON, 'hours')
+ ```
+
+ Výber najlepších hodnôt pre parametre modelu ARIMA môže byť náročný, pretože je čiastočne subjektívny a časovo náročný. Môžete zvážiť použitie funkcie `auto_arima()` z knižnice [`pyramid`](https://alkaline-ml.com/pmdarima/0.9.0/modules/generated/pyramid.arima.auto_arima.html).
+
+1. Zatiaľ skúste manuálne výbery na nájdenie dobrého modelu.
+
+ ```python
+ order = (4, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ model = SARIMAX(endog=train, order=order, seasonal_order=seasonal_order)
+ results = model.fit()
+
+ print(results.summary())
+ ```
+
+ Tlačí sa tabuľka výsledkov.
+
+Vytvorili ste svoj prvý model! Teraz musíme nájsť spôsob, ako ho vyhodnotiť.
+
+### Vyhodnoťte svoj model
+
+Na vyhodnotenie modelu môžete použiť tzv. `walk forward` validáciu. V praxi sa modely časových radov pretrénujú vždy, keď sú k dispozícii nové údaje. To umožňuje modelu robiť najlepšiu predpoveď v každom časovom kroku.
+
+Začnite na začiatku časového radu pomocou tejto techniky, trénujte model na tréningovej množine údajov. Potom urobte predpoveď na ďalší časový krok. Predpoveď sa vyhodnotí oproti známej hodnote. Tréningová množina sa potom rozšíri o známu hodnotu a proces sa opakuje.
+
+> Poznámka: Mali by ste udržiavať pevné okno tréningovej množiny pre efektívnejší tréning, takže vždy, keď pridáte novú pozorovanie do tréningovej množiny, odstránite pozorovanie zo začiatku množiny.
+
+Tento proces poskytuje robustnejšie odhady toho, ako bude model fungovať v praxi. Avšak, prichádza s výpočtovými nákladmi na vytvorenie toľkých modelov. To je prijateľné, ak sú údaje malé alebo ak je model jednoduchý, ale môže byť problémom pri veľkom rozsahu.
+
+Walk-forward validácia je zlatým štandardom hodnotenia modelov časových radov a odporúča sa pre vaše vlastné projekty.
+
+1. Najskôr vytvorte testovací dátový bod pre každý krok HORIZONTU.
+
+ ```python
+ test_shifted = test.copy()
+
+ for t in range(1, HORIZON+1):
+ test_shifted['load+'+str(t)] = test_shifted['load'].shift(-t, freq='H')
+
+ test_shifted = test_shifted.dropna(how='any')
+ test_shifted.head(5)
+ ```
+
+ | | | load | load+1 | load+2 |
+ | ---------- | -------- | ---- | ------ | ------ |
+ | 2014-12-30 | 00:00:00 | 0.33 | 0.29 | 0.27 |
+ | 2014-12-30 | 01:00:00 | 0.29 | 0.27 | 0.27 |
+ | 2014-12-30 | 02:00:00 | 0.27 | 0.27 | 0.30 |
+ | 2014-12-30 | 03:00:00 | 0.27 | 0.30 | 0.41 |
+ | 2014-12-30 | 04:00:00 | 0.30 | 0.41 | 0.57 |
+
+ Údaje sa horizontálne posúvajú podľa bodu horizontu.
+
+1. Urobte predpovede na testovacích údajoch pomocou tohto prístupu posuvného okna v slučke veľkosti dĺžky testovacích údajov:
+
+ ```python
+ %%time
+ training_window = 720 # dedicate 30 days (720 hours) for training
+
+ train_ts = train['load']
+ test_ts = test_shifted
+
+ history = [x for x in train_ts]
+ history = history[(-training_window):]
+
+ predictions = list()
+
+ order = (2, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ for t in range(test_ts.shape[0]):
+ model = SARIMAX(endog=history, order=order, seasonal_order=seasonal_order)
+ model_fit = model.fit()
+ yhat = model_fit.forecast(steps = HORIZON)
+ predictions.append(yhat)
+ obs = list(test_ts.iloc[t])
+ # move the training window
+ history.append(obs[0])
+ history.pop(0)
+ print(test_ts.index[t])
+ print(t+1, ': predicted =', yhat, 'expected =', obs)
+ ```
+
+ Môžete sledovať, ako prebieha tréning:
+
+ ```output
+ 2014-12-30 00:00:00
+ 1 : predicted = [0.32 0.29 0.28] expected = [0.32945389435989236, 0.2900626678603402, 0.2739480752014323]
+
+ 2014-12-30 01:00:00
+ 2 : predicted = [0.3 0.29 0.3 ] expected = [0.2900626678603402, 0.2739480752014323, 0.26812891674127126]
+
+ 2014-12-30 02:00:00
+ 3 : predicted = [0.27 0.28 0.32] expected = [0.2739480752014323, 0.26812891674127126, 0.3025962399283795]
+ ```
+
+1. Porovnajte predpovede so skutočným zaťažením:
+
+ ```python
+ eval_df = pd.DataFrame(predictions, columns=['t+'+str(t) for t in range(1, HORIZON+1)])
+ eval_df['timestamp'] = test.index[0:len(test.index)-HORIZON+1]
+ eval_df = pd.melt(eval_df, id_vars='timestamp', value_name='prediction', var_name='h')
+ eval_df['actual'] = np.array(np.transpose(test_ts)).ravel()
+ eval_df[['prediction', 'actual']] = scaler.inverse_transform(eval_df[['prediction', 'actual']])
+ eval_df.head()
+ ```
+
+ Výstup
+ | | | timestamp | h | prediction | actual |
+ | --- | ---------- | --------- | --- | ---------- | -------- |
+ | 0 | 2014-12-30 | 00:00:00 | t+1 | 3,008.74 | 3,023.00 |
+ | 1 | 2014-12-30 | 01:00:00 | t+1 | 2,955.53 | 2,935.00 |
+ | 2 | 2014-12-30 | 02:00:00 | t+1 | 2,900.17 | 2,899.00 |
+ | 3 | 2014-12-30 | 03:00:00 | t+1 | 2,917.69 | 2,886.00 |
+ | 4 | 2014-12-30 | 04:00:00 | t+1 | 2,946.99 | 2,963.00 |
+
+ Pozorujte predpoveď hodinových údajov v porovnaní so skutočným zaťažením. Aká presná je táto predpoveď?
+
+### Skontrolujte presnosť modelu
+
+Skontrolujte presnosť svojho modelu testovaním jeho strednej absolútnej percentuálnej chyby (MAPE) na všetkých predpovediach.
+> **🧮 Ukáž mi matematiku**
+>
+> 
+>
+> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) sa používa na zobrazenie presnosti predpovede ako pomeru definovaného vyššie uvedeným vzorcom. Rozdiel medzi skutočnou hodnotou a predpovedanou hodnotou je vydelený skutočnou hodnotou.
+>
+> "Absolútna hodnota v tomto výpočte sa sčíta pre každý predpovedaný bod v čase a vydelí sa počtom prispôsobených bodov n." [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
+1. Vyjadrite rovnicu v kóde:
+
+ ```python
+ if(HORIZON > 1):
+ eval_df['APE'] = (eval_df['prediction'] - eval_df['actual']).abs() / eval_df['actual']
+ print(eval_df.groupby('h')['APE'].mean())
+ ```
+
+1. Vypočítajte MAPE pre jeden krok:
+
+ ```python
+ print('One step forecast MAPE: ', (mape(eval_df[eval_df['h'] == 't+1']['prediction'], eval_df[eval_df['h'] == 't+1']['actual']))*100, '%')
+ ```
+
+ MAPE predpovede pre jeden krok: 0.5570581332313952 %
+
+1. Vytlačte MAPE pre viac krokov:
+
+ ```python
+ print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%')
+ ```
+
+ ```output
+ Multi-step forecast MAPE: 1.1460048657704118 %
+ ```
+
+ Nízke číslo je najlepšie: zvážte, že predpoveď s MAPE 10 je odchýlená o 10 %.
+
+1. Ale ako vždy, je jednoduchšie vidieť tento typ merania presnosti vizuálne, takže si to zobrazme na grafe:
+
+ ```python
+ if(HORIZON == 1):
+ ## Plotting single step forecast
+ eval_df.plot(x='timestamp', y=['actual', 'prediction'], style=['r', 'b'], figsize=(15, 8))
+
+ else:
+ ## Plotting multi step forecast
+ plot_df = eval_df[(eval_df.h=='t+1')][['timestamp', 'actual']]
+ for t in range(1, HORIZON+1):
+ plot_df['t+'+str(t)] = eval_df[(eval_df.h=='t+'+str(t))]['prediction'].values
+
+ fig = plt.figure(figsize=(15, 8))
+ ax = plt.plot(plot_df['timestamp'], plot_df['actual'], color='red', linewidth=4.0)
+ ax = fig.add_subplot(111)
+ for t in range(1, HORIZON+1):
+ x = plot_df['timestamp'][(t-1):]
+ y = plot_df['t+'+str(t)][0:len(x)]
+ ax.plot(x, y, color='blue', linewidth=4*math.pow(.9,t), alpha=math.pow(0.8,t))
+
+ ax.legend(loc='best')
+
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+🏆 Veľmi pekný graf, ktorý ukazuje model s dobrou presnosťou. Skvelá práca!
+
+---
+
+## 🚀Výzva
+
+Preskúmajte spôsoby testovania presnosti modelu časovej rady. V tejto lekcii sa dotýkame MAPE, ale existujú aj iné metódy, ktoré by ste mohli použiť? Preskúmajte ich a pridajte poznámky. Užitočný dokument nájdete [tu](https://otexts.com/fpp2/accuracy.html)
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad & Samoštúdium
+
+Táto lekcia sa dotýka iba základov predpovedania časových radov pomocou ARIMA. Venujte čas prehĺbeniu svojich znalostí preskúmaním [tohto repozitára](https://microsoft.github.io/forecasting/) a jeho rôznych typov modelov, aby ste sa naučili ďalšie spôsoby vytvárania modelov časových radov.
+
+## Zadanie
+
+[Nový ARIMA model](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/2-ARIMA/assignment.md b/translations/sk/7-TimeSeries/2-ARIMA/assignment.md
new file mode 100644
index 00000000..0d5bb4f1
--- /dev/null
+++ b/translations/sk/7-TimeSeries/2-ARIMA/assignment.md
@@ -0,0 +1,25 @@
+
+# Nový model ARIMA
+
+## Pokyny
+
+Teraz, keď ste vytvorili model ARIMA, vytvorte nový model s čerstvými údajmi (vyskúšajte jeden z [týchto datasetov od Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Dokumentujte svoju prácu v notebooku, vizualizujte údaje a váš model, a otestujte jeho presnosť pomocou MAPE.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------- | ----------------------------------- |
+| | Notebook je prezentovaný s novým modelom ARIMA, ktorý je vytvorený, otestovaný a vysvetlený s vizualizáciami a uvedenou presnosťou. | Notebook nie je dokumentovaný alebo obsahuje chyby | Je prezentovaný neúplný notebook |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/2-ARIMA/solution/Julia/README.md b/translations/sk/7-TimeSeries/2-ARIMA/solution/Julia/README.md
new file mode 100644
index 00000000..8046eefa
--- /dev/null
+++ b/translations/sk/7-TimeSeries/2-ARIMA/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/2-ARIMA/solution/R/README.md b/translations/sk/7-TimeSeries/2-ARIMA/solution/R/README.md
new file mode 100644
index 00000000..325767e1
--- /dev/null
+++ b/translations/sk/7-TimeSeries/2-ARIMA/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/3-SVR/README.md b/translations/sk/7-TimeSeries/3-SVR/README.md
new file mode 100644
index 00000000..89e645af
--- /dev/null
+++ b/translations/sk/7-TimeSeries/3-SVR/README.md
@@ -0,0 +1,393 @@
+
+# Predpovedanie časových radov pomocou Support Vector Regressor
+
+V predchádzajúcej lekcii ste sa naučili používať model ARIMA na predpovedanie časových radov. Teraz sa pozrieme na model Support Vector Regressor, ktorý je regresný model používaný na predpovedanie spojitých údajov.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+## Úvod
+
+V tejto lekcii objavíte špecifický spôsob budovania modelov pomocou [**SVM**: **S**upport **V**ector **M**achine](https://en.wikipedia.org/wiki/Support-vector_machine) pre regresiu, alebo **SVR: Support Vector Regressor**.
+
+### SVR v kontexte časových radov [^1]
+
+Predtým, než pochopíte význam SVR pri predpovedaní časových radov, je dôležité poznať nasledujúce koncepty:
+
+- **Regresia:** Technika učenia s učiteľom na predpovedanie spojitých hodnôt z daného súboru vstupov. Ide o prispôsobenie krivky (alebo čiary) v priestore vlastností, ktorá obsahuje maximálny počet dátových bodov. [Kliknite sem](https://en.wikipedia.org/wiki/Regression_analysis) pre viac informácií.
+- **Support Vector Machine (SVM):** Typ modelu strojového učenia s učiteľom používaný na klasifikáciu, regresiu a detekciu odľahlých hodnôt. Model je hyperplocha v priestore vlastností, ktorá v prípade klasifikácie funguje ako hranica a v prípade regresie ako najlepšie prispôsobená čiara. V SVM sa zvyčajne používa funkcia Kernel na transformáciu dátového súboru do priestoru s vyšším počtom dimenzií, aby boli ľahšie oddeliteľné. [Kliknite sem](https://en.wikipedia.org/wiki/Support-vector_machine) pre viac informácií o SVM.
+- **Support Vector Regressor (SVR):** Typ SVM, ktorý hľadá najlepšie prispôsobenú čiaru (ktorá je v prípade SVM hyperplocha) obsahujúcu maximálny počet dátových bodov.
+
+### Prečo SVR? [^1]
+
+V poslednej lekcii ste sa naučili o ARIMA, čo je veľmi úspešná štatistická lineárna metóda na predpovedanie časových radov. Avšak v mnohých prípadoch majú časové rady *nelinearitu*, ktorú lineárne modely nedokážu zachytiť. V takýchto prípadoch schopnosť SVM zohľadniť nelinearitu v údajoch pri regresných úlohách robí SVR úspešným pri predpovedaní časových radov.
+
+## Cvičenie - vytvorenie modelu SVR
+
+Prvé kroky na prípravu údajov sú rovnaké ako v predchádzajúcej lekcii o [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA).
+
+Otvorte priečinok [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/3-SVR/working) v tejto lekcii a nájdite súbor [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/3-SVR/working/notebook.ipynb). [^2]
+
+1. Spustite notebook a importujte potrebné knižnice: [^2]
+
+ ```python
+ import sys
+ sys.path.append('../../')
+ ```
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from sklearn.svm import SVR
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ ```
+
+2. Načítajte údaje zo súboru `/data/energy.csv` do Pandas dataframe a pozrite sa na ne: [^2]
+
+ ```python
+ energy = load_data('../../data')[['load']]
+ ```
+
+3. Vykreslite všetky dostupné údaje o energii od januára 2012 do decembra 2014: [^2]
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Teraz vytvoríme náš model SVR.
+
+### Vytvorenie tréningových a testovacích dátových súborov
+
+Keď sú vaše údaje načítané, môžete ich rozdeliť na tréningovú a testovaciu množinu. Potom údaje upravíte tak, aby vytvorili dataset založený na časových krokoch, ktorý bude potrebný pre SVR. Model budete trénovať na tréningovej množine. Po dokončení tréningu modelu vyhodnotíte jeho presnosť na tréningovej množine, testovacej množine a potom na celom datasete, aby ste videli celkový výkon. Musíte zabezpečiť, že testovacia množina pokrýva neskoršie obdobie v čase oproti tréningovej množine, aby ste zabezpečili, že model nezíska informácie z budúcich časových období [^2] (situácia známa ako *Overfitting*).
+
+1. Priraďte dvojmesačné obdobie od 1. septembra do 31. októbra 2014 tréningovej množine. Testovacia množina bude zahŕňať dvojmesačné obdobie od 1. novembra do 31. decembra 2014: [^2]
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+2. Vizualizujte rozdiely: [^2]
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+### Príprava údajov na tréning
+
+Teraz musíte pripraviť údaje na tréning vykonaním filtrovania a škálovania údajov. Filtrovanie datasetu zahŕňa iba časové obdobia a stĺpce, ktoré potrebujete, a škálovanie zabezpečí, že údaje budú premietnuté do intervalu 0,1.
+
+1. Filtrovanie pôvodného datasetu tak, aby zahŕňal iba uvedené časové obdobia na množinu a iba potrebný stĺpec 'load' plus dátum: [^2]
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+2. Škálovanie tréningových údajov do rozsahu (0, 1): [^2]
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ ```
+
+4. Teraz škálujte testovacie údaje: [^2]
+
+ ```python
+ test['load'] = scaler.transform(test)
+ ```
+
+### Vytvorenie údajov s časovými krokmi [^1]
+
+Pre SVR transformujete vstupné údaje do formy `[batch, timesteps]`. Takže existujúce `train_data` a `test_data` upravíte tak, aby obsahovali nový rozmer, ktorý sa týka časových krokov.
+
+```python
+# Converting to numpy arrays
+train_data = train.values
+test_data = test.values
+```
+
+Pre tento príklad berieme `timesteps = 5`. Takže vstupy do modelu sú údaje za prvé 4 časové kroky a výstup budú údaje za 5. časový krok.
+
+```python
+timesteps=5
+```
+
+Konverzia tréningových údajov na 2D tensor pomocou vnoreného zoznamového porozumenia:
+
+```python
+train_data_timesteps=np.array([[j for j in train_data[i:i+timesteps]] for i in range(0,len(train_data)-timesteps+1)])[:,:,0]
+train_data_timesteps.shape
+```
+
+```output
+(1412, 5)
+```
+
+Konverzia testovacích údajov na 2D tensor:
+
+```python
+test_data_timesteps=np.array([[j for j in test_data[i:i+timesteps]] for i in range(0,len(test_data)-timesteps+1)])[:,:,0]
+test_data_timesteps.shape
+```
+
+```output
+(44, 5)
+```
+
+Výber vstupov a výstupov z tréningových a testovacích údajov:
+
+```python
+x_train, y_train = train_data_timesteps[:,:timesteps-1],train_data_timesteps[:,[timesteps-1]]
+x_test, y_test = test_data_timesteps[:,:timesteps-1],test_data_timesteps[:,[timesteps-1]]
+
+print(x_train.shape, y_train.shape)
+print(x_test.shape, y_test.shape)
+```
+
+```output
+(1412, 4) (1412, 1)
+(44, 4) (44, 1)
+```
+
+### Implementácia SVR [^1]
+
+Teraz je čas implementovať SVR. Prečítajte si viac o tejto implementácii v [dokumentácii](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html). Pre našu implementáciu postupujeme podľa týchto krokov:
+
+ 1. Definujte model volaním `SVR()` a zadaním hyperparametrov modelu: kernel, gamma, c a epsilon
+ 2. Pripravte model na tréningové údaje volaním funkcie `fit()`
+ 3. Vytvorte predpovede volaním funkcie `predict()`
+
+Teraz vytvoríme model SVR. Použijeme [RBF kernel](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel) a nastavíme hyperparametre gamma, C a epsilon na hodnoty 0.5, 10 a 0.05.
+
+```python
+model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05)
+```
+
+#### Tréning modelu na tréningových údajoch [^1]
+
+```python
+model.fit(x_train, y_train[:,0])
+```
+
+```output
+SVR(C=10, cache_size=200, coef0=0.0, degree=3, epsilon=0.05, gamma=0.5,
+ kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)
+```
+
+#### Vytvorenie predpovedí modelu [^1]
+
+```python
+y_train_pred = model.predict(x_train).reshape(-1,1)
+y_test_pred = model.predict(x_test).reshape(-1,1)
+
+print(y_train_pred.shape, y_test_pred.shape)
+```
+
+```output
+(1412, 1) (44, 1)
+```
+
+Postavili ste svoj SVR! Teraz ho musíme vyhodnotiť.
+
+### Vyhodnotenie modelu [^1]
+
+Na vyhodnotenie najskôr škálujeme údaje späť na pôvodnú škálu. Potom, aby sme skontrolovali výkon, vykreslíme pôvodný a predpovedaný časový rad a tiež vytlačíme výsledok MAPE.
+
+Škálovanie predpovedaného a pôvodného výstupu:
+
+```python
+# Scaling the predictions
+y_train_pred = scaler.inverse_transform(y_train_pred)
+y_test_pred = scaler.inverse_transform(y_test_pred)
+
+print(len(y_train_pred), len(y_test_pred))
+```
+
+```python
+# Scaling the original values
+y_train = scaler.inverse_transform(y_train)
+y_test = scaler.inverse_transform(y_test)
+
+print(len(y_train), len(y_test))
+```
+
+#### Kontrola výkonu modelu na tréningových a testovacích údajoch [^1]
+
+Z datasetu extrahujeme časové značky, aby sme ich zobrazili na osi x nášho grafu. Všimnite si, že používame prvých ```timesteps-1``` hodnôt ako vstup pre prvý výstup, takže časové značky pre výstup začnú až po tom.
+
+```python
+train_timestamps = energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)].index[timesteps-1:]
+test_timestamps = energy[test_start_dt:].index[timesteps-1:]
+
+print(len(train_timestamps), len(test_timestamps))
+```
+
+```output
+1412 44
+```
+
+Vykreslenie predpovedí pre tréningové údaje:
+
+```python
+plt.figure(figsize=(25,6))
+plt.plot(train_timestamps, y_train, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(train_timestamps, y_train_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.title("Training data prediction")
+plt.show()
+```
+
+
+
+Tlač MAPE pre tréningové údaje
+
+```python
+print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')
+```
+
+```output
+MAPE for training data: 1.7195710200875551 %
+```
+
+Vykreslenie predpovedí pre testovacie údaje
+
+```python
+plt.figure(figsize=(10,3))
+plt.plot(test_timestamps, y_test, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(test_timestamps, y_test_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+Tlač MAPE pre testovacie údaje
+
+```python
+print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')
+```
+
+```output
+MAPE for testing data: 1.2623790187854018 %
+```
+
+🏆 Dosiahli ste veľmi dobrý výsledok na testovacom datasete!
+
+### Kontrola výkonu modelu na celom datasete [^1]
+
+```python
+# Extracting load values as numpy array
+data = energy.copy().values
+
+# Scaling
+data = scaler.transform(data)
+
+# Transforming to 2D tensor as per model input requirement
+data_timesteps=np.array([[j for j in data[i:i+timesteps]] for i in range(0,len(data)-timesteps+1)])[:,:,0]
+print("Tensor shape: ", data_timesteps.shape)
+
+# Selecting inputs and outputs from data
+X, Y = data_timesteps[:,:timesteps-1],data_timesteps[:,[timesteps-1]]
+print("X shape: ", X.shape,"\nY shape: ", Y.shape)
+```
+
+```output
+Tensor shape: (26300, 5)
+X shape: (26300, 4)
+Y shape: (26300, 1)
+```
+
+```python
+# Make model predictions
+Y_pred = model.predict(X).reshape(-1,1)
+
+# Inverse scale and reshape
+Y_pred = scaler.inverse_transform(Y_pred)
+Y = scaler.inverse_transform(Y)
+```
+
+```python
+plt.figure(figsize=(30,8))
+plt.plot(Y, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(Y_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+```python
+print('MAPE: ', mape(Y_pred, Y)*100, '%')
+```
+
+```output
+MAPE: 2.0572089029888656 %
+```
+
+🏆 Veľmi pekné grafy, ktoré ukazujú model s dobrou presnosťou. Skvelá práca!
+
+---
+
+## 🚀Výzva
+
+- Skúste upraviť hyperparametre (gamma, C, epsilon) pri vytváraní modelu a vyhodnoťte údaje, aby ste zistili, ktorá sada hyperparametrov poskytuje najlepšie výsledky na testovacích údajoch. Viac o týchto hyperparametroch sa dozviete v [dokumente](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel).
+- Skúste použiť rôzne funkcie kernelu pre model a analyzujte ich výkonnosť na datasete. Užitočný dokument nájdete [tu](https://scikit-learn.org/stable/modules/svm.html#kernel-functions).
+- Skúste použiť rôzne hodnoty pre `timesteps`, aby model mohol pozerať späť na predpoveď.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Táto lekcia bola zameraná na predstavenie aplikácie SVR pre predpovedanie časových radov. Viac o SVR si môžete prečítať v [tomto blogu](https://www.analyticsvidhya.com/blog/2020/03/support-vector-regression-tutorial-for-machine-learning/). Táto [dokumentácia na scikit-learn](https://scikit-learn.org/stable/modules/svm.html) poskytuje komplexnejšie vysvetlenie o SVM všeobecne, [SVR](https://scikit-learn.org/stable/modules/svm.html#regression) a tiež ďalšie detaily implementácie, ako sú rôzne [funkcie kernelu](https://scikit-learn.org/stable/modules/svm.html#kernel-functions), ktoré je možné použiť, a ich parametre.
+
+## Zadanie
+
+[Nový model SVR](assignment.md)
+
+## Kredity
+
+[^1]: Text, kód a výstup v tejto sekcii prispel [@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD)
+[^2]: Text, kód a výstup v tejto sekcii bol prevzatý z [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/3-SVR/assignment.md b/translations/sk/7-TimeSeries/3-SVR/assignment.md
new file mode 100644
index 00000000..5b5843c0
--- /dev/null
+++ b/translations/sk/7-TimeSeries/3-SVR/assignment.md
@@ -0,0 +1,29 @@
+
+# Nový model SVR
+
+## Pokyny [^1]
+
+Teraz, keď ste vytvorili model SVR, vytvorte nový model s novými údajmi (vyskúšajte jeden z [týchto datasetov od Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Dokumentujte svoju prácu v notebooku, vizualizujte údaje a váš model, a otestujte jeho presnosť pomocou vhodných grafov a MAPE. Skúste tiež upraviť rôzne hyperparametre a použiť rôzne hodnoty pre časové kroky.
+
+## Hodnotiace kritériá [^1]
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ----------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------- |
+| | Notebook je prezentovaný s vytvoreným, otestovaným a vysvetleným modelom SVR, vrátane vizualizácií a uvedenej presnosti. | Notebook je prezentovaný bez anotácií alebo obsahuje chyby. | Prezentovaný je neúplný notebook. |
+
+
+
+[^1]:Text v tejto sekcii bol založený na [úlohe z ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-TimeSeries/README.md b/translations/sk/7-TimeSeries/README.md
new file mode 100644
index 00000000..4e220626
--- /dev/null
+++ b/translations/sk/7-TimeSeries/README.md
@@ -0,0 +1,37 @@
+
+# Úvod do predikcie časových radov
+
+Čo je predikcia časových radov? Ide o predpovedanie budúcich udalostí na základe analýzy trendov z minulosti.
+
+## Regionálna téma: celosvetová spotreba elektrickej energie ✨
+
+V týchto dvoch lekciách sa zoznámite s predikciou časových radov, čo je síce menej známa oblasť strojového učenia, ale napriek tomu mimoriadne cenná pre priemyselné a obchodné aplikácie, ako aj iné oblasti. Hoci neurónové siete môžu zvýšiť užitočnosť týchto modelov, budeme ich študovať v kontexte klasického strojového učenia, pretože modely pomáhajú predpovedať budúci výkon na základe minulosti.
+
+Našou regionálnou témou je spotreba elektrickej energie vo svete, zaujímavý dataset, ktorý nám umožní naučiť sa predpovedať budúcu spotrebu energie na základe vzorcov z minulých údajov. Môžete vidieť, ako môže byť tento typ predikcie mimoriadne užitočný v obchodnom prostredí.
+
+
+
+Fotografia od [Peddi Sai hrithik](https://unsplash.com/@shutter_log?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) elektrických stožiarov na ceste v Rádžastáne na [Unsplash](https://unsplash.com/s/photos/electric-india?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
+
+## Lekcie
+
+1. [Úvod do predikcie časových radov](1-Introduction/README.md)
+2. [Vytváranie ARIMA modelov časových radov](2-ARIMA/README.md)
+3. [Vytváranie modelu Support Vector Regressor pre predikciu časových radov](3-SVR/README.md)
+
+## Kredity
+
+"Úvod do predikcie časových radov" bol napísaný s ⚡️ [Francescou Lazzeri](https://twitter.com/frlazzeri) a [Jen Looper](https://twitter.com/jenlooper). Notebooky sa prvýkrát objavili online v repozitári [Azure "Deep Learning For Time Series"](https://github.com/Azure/DeepLearningForTimeSeriesForecasting), pôvodne napísanom Francescou Lazzeri. Lekciu o SVR napísal [Anirban Mukherjee](https://github.com/AnirbanMukherjeeXD).
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/1-QLearning/README.md b/translations/sk/8-Reinforcement/1-QLearning/README.md
new file mode 100644
index 00000000..e5dfde30
--- /dev/null
+++ b/translations/sk/8-Reinforcement/1-QLearning/README.md
@@ -0,0 +1,256 @@
+
+# Úvod do posilňovacieho učenia a Q-Learningu
+
+
+> Sketchnote od [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Posilňovacie učenie zahŕňa tri dôležité koncepty: agenta, určité stavy a súbor akcií pre každý stav. Vykonaním akcie v špecifikovanom stave dostane agent odmenu. Predstavte si počítačovú hru Super Mario. Vy ste Mario, nachádzate sa v úrovni hry, stojíte vedľa okraja útesu. Nad vami je minca. Vy ako Mario, v úrovni hry, na konkrétnej pozícii... to je váš stav. Pohyb o jeden krok doprava (akcia) vás zavedie cez okraj, čo by vám prinieslo nízke číselné skóre. Avšak stlačením tlačidla skoku by ste získali bod a zostali nažive. To je pozitívny výsledok, ktorý by vám mal priniesť pozitívne číselné skóre.
+
+Pomocou posilňovacieho učenia a simulátora (hry) sa môžete naučiť, ako hrať hru tak, aby ste maximalizovali odmenu, čo znamená zostať nažive a získať čo najviac bodov.
+
+[](https://www.youtube.com/watch?v=lDq_en8RNOo)
+
+> 🎥 Kliknite na obrázok vyššie a vypočujte si Dmitryho diskusiu o posilňovacom učení
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+## Predpoklady a nastavenie
+
+V tejto lekcii budeme experimentovať s kódom v Pythone. Mali by ste byť schopní spustiť kód Jupyter Notebook z tejto lekcie, buď na svojom počítači alebo niekde v cloude.
+
+Môžete otvoriť [notebook lekcie](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) a prejsť touto lekciou, aby ste si ju osvojili.
+
+> **Poznámka:** Ak otvárate tento kód z cloudu, musíte tiež stiahnuť súbor [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), ktorý sa používa v kóde notebooku. Pridajte ho do rovnakého adresára ako notebook.
+
+## Úvod
+
+V tejto lekcii preskúmame svet **[Peter a vlk](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)**, inšpirovaný hudobnou rozprávkou od ruského skladateľa [Sergeja Prokofieva](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Použijeme **posilňovacie učenie**, aby sme umožnili Petrovi preskúmať jeho prostredie, zbierať chutné jablká a vyhnúť sa stretnutiu s vlkom.
+
+**Posilňovacie učenie** (RL) je technika učenia, ktorá nám umožňuje naučiť sa optimálne správanie **agenta** v určitom **prostredí** vykonávaním mnohých experimentov. Agent v tomto prostredí by mal mať nejaký **cieľ**, definovaný pomocou **funkcie odmeny**.
+
+## Prostredie
+
+Pre jednoduchosť si predstavme Petrov svet ako štvorcovú dosku veľkosti `šírka` x `výška`, ako je táto:
+
+
+
+Každá bunka na tejto doske môže byť:
+
+* **zem**, po ktorej Peter a iné bytosti môžu chodiť.
+* **voda**, po ktorej samozrejme nemôžete chodiť.
+* **strom** alebo **tráva**, miesto, kde si môžete oddýchnuť.
+* **jablko**, ktoré predstavuje niečo, čo by Peter rád našiel, aby sa nakŕmil.
+* **vlk**, ktorý je nebezpečný a treba sa mu vyhnúť.
+
+Existuje samostatný Python modul, [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), ktorý obsahuje kód na prácu s týmto prostredím. Keďže tento kód nie je dôležitý pre pochopenie našich konceptov, importujeme modul a použijeme ho na vytvorenie vzorovej dosky (blok kódu 1):
+
+```python
+from rlboard import *
+
+width, height = 8,8
+m = Board(width,height)
+m.randomize(seed=13)
+m.plot()
+```
+
+Tento kód by mal vytlačiť obrázok prostredia podobný tomu vyššie.
+
+## Akcie a politika
+
+V našom príklade by Petrovým cieľom bolo nájsť jablko, pričom sa vyhne vlkovi a iným prekážkam. Na to môže v podstate chodiť, kým nenájde jablko.
+
+Preto si na akejkoľvek pozícii môže vybrať jednu z nasledujúcich akcií: hore, dole, doľava a doprava.
+
+Tieto akcie definujeme ako slovník a mapujeme ich na dvojice zodpovedajúcich zmien súradníc. Napríklad pohyb doprava (`R`) by zodpovedal dvojici `(1,0)`. (blok kódu 2):
+
+```python
+actions = { "U" : (0,-1), "D" : (0,1), "L" : (-1,0), "R" : (1,0) }
+action_idx = { a : i for i,a in enumerate(actions.keys()) }
+```
+
+Aby sme to zhrnuli, stratégia a cieľ tohto scenára sú nasledovné:
+
+- **Stratégia** nášho agenta (Petra) je definovaná tzv. **politikou**. Politika je funkcia, ktorá vracia akciu v akomkoľvek danom stave. V našom prípade je stav problému reprezentovaný doskou vrátane aktuálnej pozície hráča.
+
+- **Cieľ** posilňovacieho učenia je nakoniec naučiť sa dobrú politiku, ktorá nám umožní efektívne vyriešiť problém. Ako základ však zvážme najjednoduchšiu politiku nazývanú **náhodná chôdza**.
+
+## Náhodná chôdza
+
+Najprv vyriešme náš problém implementáciou stratégie náhodnej chôdze. Pri náhodnej chôdzi budeme náhodne vyberať ďalšiu akciu z povolených akcií, kým nedosiahneme jablko (blok kódu 3).
+
+1. Implementujte náhodnú chôdzu pomocou nižšie uvedeného kódu:
+
+ ```python
+ def random_policy(m):
+ return random.choice(list(actions))
+
+ def walk(m,policy,start_position=None):
+ n = 0 # number of steps
+ # set initial position
+ if start_position:
+ m.human = start_position
+ else:
+ m.random_start()
+ while True:
+ if m.at() == Board.Cell.apple:
+ return n # success!
+ if m.at() in [Board.Cell.wolf, Board.Cell.water]:
+ return -1 # eaten by wolf or drowned
+ while True:
+ a = actions[policy(m)]
+ new_pos = m.move_pos(m.human,a)
+ if m.is_valid(new_pos) and m.at(new_pos)!=Board.Cell.water:
+ m.move(a) # do the actual move
+ break
+ n+=1
+
+ walk(m,random_policy)
+ ```
+
+ Volanie `walk` by malo vrátiť dĺžku zodpovedajúcej cesty, ktorá sa môže líšiť od jedného spustenia k druhému.
+
+1. Spustite experiment chôdze niekoľkokrát (povedzme 100-krát) a vytlačte výsledné štatistiky (blok kódu 4):
+
+ ```python
+ def print_statistics(policy):
+ s,w,n = 0,0,0
+ for _ in range(100):
+ z = walk(m,policy)
+ if z<0:
+ w+=1
+ else:
+ s += z
+ n += 1
+ print(f"Average path length = {s/n}, eaten by wolf: {w} times")
+
+ print_statistics(random_policy)
+ ```
+
+ Všimnite si, že priemerná dĺžka cesty je okolo 30-40 krokov, čo je dosť veľa, vzhľadom na to, že priemerná vzdialenosť k najbližšiemu jablku je okolo 5-6 krokov.
+
+ Môžete tiež vidieť, ako vyzerá Petrov pohyb počas náhodnej chôdze:
+
+ 
+
+## Funkcia odmeny
+
+Aby bola naša politika inteligentnejšia, musíme pochopiť, ktoré pohyby sú "lepšie" ako ostatné. Na to musíme definovať náš cieľ.
+
+Cieľ môže byť definovaný pomocou **funkcie odmeny**, ktorá vráti nejakú hodnotu skóre pre každý stav. Čím vyššie číslo, tým lepšia funkcia odmeny. (blok kódu 5)
+
+```python
+move_reward = -0.1
+goal_reward = 10
+end_reward = -10
+
+def reward(m,pos=None):
+ pos = pos or m.human
+ if not m.is_valid(pos):
+ return end_reward
+ x = m.at(pos)
+ if x==Board.Cell.water or x == Board.Cell.wolf:
+ return end_reward
+ if x==Board.Cell.apple:
+ return goal_reward
+ return move_reward
+```
+
+Zaujímavé na funkciách odmeny je, že vo väčšine prípadov *dostaneme podstatnú odmenu až na konci hry*. To znamená, že náš algoritmus by mal nejako zapamätať "dobré" kroky, ktoré vedú k pozitívnej odmene na konci, a zvýšiť ich dôležitosť. Podobne by mali byť odradené všetky pohyby, ktoré vedú k zlým výsledkom.
+
+## Q-Learning
+
+Algoritmus, ktorý tu budeme diskutovať, sa nazýva **Q-Learning**. V tomto algoritme je politika definovaná funkciou (alebo dátovou štruktúrou) nazývanou **Q-Tabuľka**. Tá zaznamenáva "kvalitu" každej akcie v danom stave.
+
+Nazýva sa Q-Tabuľka, pretože je často výhodné ju reprezentovať ako tabuľku alebo viacrozmerné pole. Keďže naša doska má rozmery `šírka` x `výška`, môžeme Q-Tabuľku reprezentovať pomocou numpy poľa s tvarom `šírka` x `výška` x `len(akcie)`: (blok kódu 6)
+
+```python
+Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)
+```
+
+Všimnite si, že inicializujeme všetky hodnoty Q-Tabuľky rovnakou hodnotou, v našom prípade - 0.25. To zodpovedá politike "náhodnej chôdze", pretože všetky pohyby v každom stave sú rovnako dobré. Q-Tabuľku môžeme odovzdať funkcii `plot`, aby sme tabuľku vizualizovali na doske: `m.plot(Q)`.
+
+
+
+V strede každej bunky je "šípka", ktorá označuje preferovaný smer pohybu. Keďže všetky smery sú rovnaké, zobrazí sa bodka.
+
+Teraz musíme spustiť simuláciu, preskúmať naše prostredie a naučiť sa lepšie rozdelenie hodnôt Q-Tabuľky, ktoré nám umožní oveľa rýchlejšie nájsť cestu k jablku.
+
+## Podstata Q-Learningu: Bellmanova rovnica
+
+Keď sa začneme pohybovať, každá akcia bude mať zodpovedajúcu odmenu, t.j. teoreticky môžeme vybrať ďalšiu akciu na základe najvyššej okamžitej odmeny. Avšak vo väčšine stavov pohyb nedosiahne náš cieľ dosiahnuť jablko, a preto nemôžeme okamžite rozhodnúť, ktorý smer je lepší.
+
+> Pamätajte, že nezáleží na okamžitom výsledku, ale skôr na konečnom výsledku, ktorý dosiahneme na konci simulácie.
+
+Aby sme zohľadnili túto oneskorenú odmenu, musíme použiť princípy **[dynamického programovania](https://en.wikipedia.org/wiki/Dynamic_programming)**, ktoré nám umožňujú premýšľať o našom probléme rekurzívne.
+
+Predpokladajme, že sa teraz nachádzame v stave *s*, a chceme sa presunúť do ďalšieho stavu *s'*. Týmto krokom získame okamžitú odmenu *r(s,a)*, definovanú funkciou odmeny, plus nejakú budúcu odmenu. Ak predpokladáme, že naša Q-Tabuľka správne odráža "atraktivitu" každej akcie, potom v stave *s'* si vyberieme akciu *a*, ktorá zodpovedá maximálnej hodnote *Q(s',a')*. Takže najlepšia možná budúca odmena, ktorú by sme mohli získať v stave *s*, bude definovaná ako `max`
+
+## Kontrola politiky
+
+Keďže Q-Tabuľka uvádza „atraktivitu“ každej akcie v každom stave, je pomerne jednoduché použiť ju na definovanie efektívnej navigácie v našom svete. V najjednoduchšom prípade môžeme vybrať akciu zodpovedajúcu najvyššej hodnote v Q-Tabuľke: (kódový blok 9)
+
+```python
+def qpolicy_strict(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = list(actions)[np.argmax(v)]
+ return a
+
+walk(m,qpolicy_strict)
+```
+
+> Ak vyskúšate vyššie uvedený kód niekoľkokrát, môžete si všimnúť, že sa niekedy „zasekne“ a musíte stlačiť tlačidlo STOP v notebooku, aby ste ho prerušili. K tomu dochádza, pretože môžu existovať situácie, keď si dva stavy „ukazujú“ navzájom z hľadiska optimálnej hodnoty Q, v takom prípade agent skončí pohybom medzi týmito stavmi donekonečna.
+
+## 🚀Výzva
+
+> **Úloha 1:** Upraviť funkciu `walk` tak, aby obmedzila maximálnu dĺžku cesty na určitý počet krokov (napríklad 100) a pozorovať, ako vyššie uvedený kód občas vráti túto hodnotu.
+
+> **Úloha 2:** Upraviť funkciu `walk` tak, aby sa nevracala na miesta, kde už predtým bola. Tým sa zabráni tomu, aby sa `walk` opakoval, avšak agent sa stále môže ocitnúť „uväznený“ na mieste, z ktorého sa nedokáže dostať.
+
+## Navigácia
+
+Lepšia navigačná politika by bola tá, ktorú sme použili počas tréningu, ktorá kombinuje využívanie a skúmanie. V tejto politike vyberieme každú akciu s určitou pravdepodobnosťou, úmernou hodnotám v Q-Tabuľke. Táto stratégia môže stále viesť k tomu, že sa agent vráti na pozíciu, ktorú už preskúmal, ale, ako môžete vidieť z nižšie uvedeného kódu, výsledkom je veľmi krátka priemerná cesta k požadovanému miestu (nezabudnite, že `print_statistics` spúšťa simuláciu 100-krát): (kódový blok 10)
+
+```python
+def qpolicy(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = random.choices(list(actions),weights=v)[0]
+ return a
+
+print_statistics(qpolicy)
+```
+
+Po spustení tohto kódu by ste mali získať oveľa kratšiu priemernú dĺžku cesty ako predtým, v rozmedzí 3-6.
+
+## Skúmanie procesu učenia
+
+Ako sme spomenuli, proces učenia je rovnováhou medzi skúmaním a využívaním získaných znalostí o štruktúre problémového priestoru. Videli sme, že výsledky učenia (schopnosť pomôcť agentovi nájsť krátku cestu k cieľu) sa zlepšili, ale je tiež zaujímavé pozorovať, ako sa priemerná dĺžka cesty správa počas procesu učenia:
+
+## Zhrnutie poznatkov:
+
+- **Priemerná dĺžka cesty sa zvyšuje**. Na začiatku vidíme, že priemerná dĺžka cesty sa zvyšuje. Pravdepodobne je to spôsobené tým, že keď o prostredí nič nevieme, máme tendenciu uviaznuť v zlých stavoch, ako je voda alebo vlk. Keď sa dozvieme viac a začneme tieto znalosti využívať, môžeme prostredie skúmať dlhšie, ale stále nevieme presne, kde sú jablká.
+
+- **Dĺžka cesty sa znižuje, ako sa učíme viac**. Keď sa naučíme dosť, agentovi sa ľahšie dosahuje cieľ a dĺžka cesty sa začne znižovať. Stále však skúmame nové možnosti, takže sa často odkloníme od najlepšej cesty a skúmame nové možnosti, čo predlžuje cestu nad optimálnu hodnotu.
+
+- **Dĺžka sa náhle zvýši**. Na grafe tiež vidíme, že v určitom bode sa dĺžka náhle zvýšila. To poukazuje na stochastickú povahu procesu a na to, že môžeme v určitom bode „pokaziť“ koeficienty Q-Tabuľky tým, že ich prepíšeme novými hodnotami. Ideálne by sa tomu malo predísť znížením rýchlosti učenia (napríklad ku koncu tréningu upravujeme hodnoty Q-Tabuľky len o malú hodnotu).
+
+Celkovo je dôležité pamätať na to, že úspech a kvalita procesu učenia významne závisí od parametrov, ako je rýchlosť učenia, pokles rýchlosti učenia a diskontný faktor. Tieto sa často nazývajú **hyperparametre**, aby sa odlíšili od **parametrov**, ktoré optimalizujeme počas tréningu (napríklad koeficienty Q-Tabuľky). Proces hľadania najlepších hodnôt hyperparametrov sa nazýva **optimalizácia hyperparametrov** a zaslúži si samostatnú tému.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Zadanie
+[Realistickejší svet](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/1-QLearning/assignment.md b/translations/sk/8-Reinforcement/1-QLearning/assignment.md
new file mode 100644
index 00000000..8690be18
--- /dev/null
+++ b/translations/sk/8-Reinforcement/1-QLearning/assignment.md
@@ -0,0 +1,41 @@
+
+# Realistickejší svet
+
+V našej situácii sa Peter mohol pohybovať takmer bez toho, aby sa unavil alebo vyhladol. V realistickejšom svete si musí občas sadnúť a oddýchnuť si, a tiež sa najesť. Urobme náš svet realistickejším zavedením nasledujúcich pravidiel:
+
+1. Pri presune z jedného miesta na druhé Peter stráca **energiu** a získava **únavu**.
+2. Peter môže získať viac energie jedením jabĺk.
+3. Peter sa môže zbaviť únavy odpočinkom pod stromom alebo na tráve (t.j. vstúpením na políčko s umiestneným stromom alebo trávou - zelené pole).
+4. Peter musí nájsť a zabiť vlka.
+5. Aby Peter dokázal zabiť vlka, musí mať určité úrovne energie a únavy, inak prehrá boj.
+
+## Pokyny
+
+Použite pôvodný [notebook.ipynb](../../../../8-Reinforcement/1-QLearning/notebook.ipynb) ako východiskový bod pre vaše riešenie.
+
+Upravte funkciu odmeny podľa pravidiel hry, spustite algoritmus posilneného učenia na naučenie najlepšej stratégie na výhru v hre a porovnajte výsledky náhodného pohybu s vaším algoritmom z hľadiska počtu vyhraných a prehratých hier.
+
+> **Note**: Vo vašom novom svete je stav zložitejší a okrem pozície človeka zahŕňa aj úrovne únavy a energie. Môžete sa rozhodnúť reprezentovať stav ako n-ticu (Board, energy, fatigue), alebo definovať triedu pre stav (môžete ju tiež odvodiť z `Board`), alebo dokonca upraviť pôvodnú triedu `Board` v súbore [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py).
+
+Vo vašom riešení prosím ponechajte kód zodpovedný za stratégiu náhodného pohybu a na konci porovnajte výsledky vášho algoritmu s náhodným pohybom.
+
+> **Note**: Možno budete musieť upraviť hyperparametre, aby to fungovalo, najmä počet epoch. Keďže úspech v hre (boj s vlkom) je zriedkavá udalosť, môžete očakávať oveľa dlhší čas trénovania.
+
+## Hodnotenie
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| | Notebook obsahuje definíciu nových pravidiel sveta, algoritmus Q-Learning a niektoré textové vysvetlenia. Q-Learning dokáže výrazne zlepšiť výsledky v porovnaní s náhodným pohybom. | Notebook je prezentovaný, Q-Learning je implementovaný a zlepšuje výsledky v porovnaní s náhodným pohybom, ale nie výrazne; alebo notebook je slabo zdokumentovaný a kód nie je dobre štruktúrovaný | Urobil sa pokus o redefinovanie pravidiel sveta, ale algoritmus Q-Learning nefunguje, alebo funkcia odmeny nie je úplne definovaná. |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/1-QLearning/solution/Julia/README.md b/translations/sk/8-Reinforcement/1-QLearning/solution/Julia/README.md
new file mode 100644
index 00000000..a469aebb
--- /dev/null
+++ b/translations/sk/8-Reinforcement/1-QLearning/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/1-QLearning/solution/R/README.md b/translations/sk/8-Reinforcement/1-QLearning/solution/R/README.md
new file mode 100644
index 00000000..1e172ddc
--- /dev/null
+++ b/translations/sk/8-Reinforcement/1-QLearning/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/2-Gym/README.md b/translations/sk/8-Reinforcement/2-Gym/README.md
new file mode 100644
index 00000000..d0e5762c
--- /dev/null
+++ b/translations/sk/8-Reinforcement/2-Gym/README.md
@@ -0,0 +1,333 @@
+
+## Predpoklady
+
+V tejto lekcii budeme používať knižnicu **OpenAI Gym** na simuláciu rôznych **prostredí**. Kód z tejto lekcie môžete spustiť lokálne (napr. vo Visual Studio Code), v takom prípade sa simulácia otvorí v novom okne. Pri spúšťaní kódu online môže byť potrebné upraviť kód, ako je popísané [tu](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7).
+
+## OpenAI Gym
+
+V predchádzajúcej lekcii boli pravidlá hry a stav definované triedou `Board`, ktorú sme si sami vytvorili. Tu použijeme špeciálne **simulačné prostredie**, ktoré bude simulovať fyziku za balansujúcou tyčou. Jedným z najpopulárnejších simulačných prostredí na trénovanie algoritmov posilneného učenia je [Gym](https://gym.openai.com/), ktorý spravuje [OpenAI](https://openai.com/). Pomocou Gym môžeme vytvárať rôzne **prostredia**, od simulácie CartPole až po hry Atari.
+
+> **Poznámka**: Ďalšie prostredia dostupné v OpenAI Gym si môžete pozrieť [tu](https://gym.openai.com/envs/#classic_control).
+
+Najskôr nainštalujme Gym a importujme potrebné knižnice (kódový blok 1):
+
+```python
+import sys
+!{sys.executable} -m pip install gym
+
+import gym
+import matplotlib.pyplot as plt
+import numpy as np
+import random
+```
+
+## Cvičenie - inicializácia prostredia CartPole
+
+Aby sme mohli pracovať s problémom balansovania CartPole, musíme inicializovať príslušné prostredie. Každé prostredie je spojené s:
+
+- **Priestorom pozorovaní**, ktorý definuje štruktúru informácií, ktoré dostávame z prostredia. Pri probléme CartPole dostávame polohu tyče, rýchlosť a ďalšie hodnoty.
+
+- **Priestorom akcií**, ktorý definuje možné akcie. V našom prípade je priestor akcií diskrétny a pozostáva z dvoch akcií - **vľavo** a **vpravo**. (kódový blok 2)
+
+1. Na inicializáciu zadajte nasledujúci kód:
+
+ ```python
+ env = gym.make("CartPole-v1")
+ print(env.action_space)
+ print(env.observation_space)
+ print(env.action_space.sample())
+ ```
+
+Aby sme videli, ako prostredie funguje, spustime krátku simuláciu na 100 krokov. Pri každom kroku poskytneme jednu z akcií, ktoré sa majú vykonať - v tejto simulácii náhodne vyberáme akciu z `action_space`.
+
+1. Spustite nasledujúci kód a pozrite sa, čo sa stane.
+
+ ✅ Pamätajte, že je preferované spustiť tento kód na lokálnej inštalácii Pythonu! (kódový blok 3)
+
+ ```python
+ env.reset()
+
+ for i in range(100):
+ env.render()
+ env.step(env.action_space.sample())
+ env.close()
+ ```
+
+ Mali by ste vidieť niečo podobné ako na tomto obrázku:
+
+ 
+
+1. Počas simulácie musíme získavať pozorovania, aby sme sa rozhodli, ako konať. V skutočnosti funkcia `step` vracia aktuálne pozorovania, funkciu odmeny a príznak `done`, ktorý indikuje, či má zmysel pokračovať v simulácii alebo nie: (kódový blok 4)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ print(f"{obs} -> {rew}")
+ env.close()
+ ```
+
+ V notebooku by ste mali vidieť niečo podobné ako toto:
+
+ ```text
+ [ 0.03403272 -0.24301182 0.02669811 0.2895829 ] -> 1.0
+ [ 0.02917248 -0.04828055 0.03248977 0.00543839] -> 1.0
+ [ 0.02820687 0.14636075 0.03259854 -0.27681916] -> 1.0
+ [ 0.03113408 0.34100283 0.02706215 -0.55904489] -> 1.0
+ [ 0.03795414 0.53573468 0.01588125 -0.84308041] -> 1.0
+ ...
+ [ 0.17299878 0.15868546 -0.20754175 -0.55975453] -> 1.0
+ [ 0.17617249 0.35602306 -0.21873684 -0.90998894] -> 1.0
+ ```
+
+ Vektor pozorovaní, ktorý sa vracia pri každom kroku simulácie, obsahuje nasledujúce hodnoty:
+ - Poloha vozíka
+ - Rýchlosť vozíka
+ - Uhol tyče
+ - Rýchlosť rotácie tyče
+
+1. Získajte minimálnu a maximálnu hodnotu týchto čísel: (kódový blok 5)
+
+ ```python
+ print(env.observation_space.low)
+ print(env.observation_space.high)
+ ```
+
+ Môžete si tiež všimnúť, že hodnota odmeny pri každom kroku simulácie je vždy 1. Je to preto, že naším cieľom je prežiť čo najdlhšie, t. j. udržať tyč v primerane vertikálnej polohe čo najdlhšie.
+
+ ✅ V skutočnosti sa simulácia CartPole považuje za vyriešenú, ak sa nám podarí dosiahnuť priemernú odmenu 195 počas 100 po sebe nasledujúcich pokusov.
+
+## Diskretizácia stavu
+
+Pri Q-Learningu musíme vytvoriť Q-Tabuľku, ktorá definuje, čo robiť v každom stave. Aby sme to mohli urobiť, potrebujeme, aby bol stav **diskrétny**, presnejšie, aby obsahoval konečný počet diskrétnych hodnôt. Preto musíme nejako **diskretizovať** naše pozorovania, mapovať ich na konečnú množinu stavov.
+
+Existuje niekoľko spôsobov, ako to urobiť:
+
+- **Rozdelenie na intervaly**. Ak poznáme interval určitej hodnoty, môžeme tento interval rozdeliť na niekoľko **intervalov** a potom nahradiť hodnotu číslom intervalu, do ktorého patrí. To sa dá urobiť pomocou metódy numpy [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html). V tomto prípade budeme presne vedieť veľkosť stavu, pretože bude závisieť od počtu intervalov, ktoré vyberieme na digitalizáciu.
+
+✅ Môžeme použiť lineárnu interpoláciu na privedenie hodnôt do určitého konečného intervalu (napríklad od -20 do 20) a potom previesť čísla na celé čísla zaokrúhlením. To nám dáva o niečo menšiu kontrolu nad veľkosťou stavu, najmä ak nepoznáme presné rozsahy vstupných hodnôt. Napríklad v našom prípade 2 zo 4 hodnôt nemajú horné/dolné hranice svojich hodnôt, čo môže viesť k nekonečnému počtu stavov.
+
+V našom príklade použijeme druhý prístup. Ako si neskôr všimnete, napriek nedefinovaným horným/dolným hraniciam tieto hodnoty zriedka nadobúdajú hodnoty mimo určitých konečných intervalov, takže stavy s extrémnymi hodnotami budú veľmi zriedkavé.
+
+1. Tu je funkcia, ktorá vezme pozorovanie z nášho modelu a vytvorí z neho štvoricu 4 celých čísel: (kódový blok 6)
+
+ ```python
+ def discretize(x):
+ return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int))
+ ```
+
+1. Preskúmajme aj ďalšiu metódu diskretizácie pomocou intervalov: (kódový blok 7)
+
+ ```python
+ def create_bins(i,num):
+ return np.arange(num+1)*(i[1]-i[0])/num+i[0]
+
+ print("Sample bins for interval (-5,5) with 10 bins\n",create_bins((-5,5),10))
+
+ ints = [(-5,5),(-2,2),(-0.5,0.5),(-2,2)] # intervals of values for each parameter
+ nbins = [20,20,10,10] # number of bins for each parameter
+ bins = [create_bins(ints[i],nbins[i]) for i in range(4)]
+
+ def discretize_bins(x):
+ return tuple(np.digitize(x[i],bins[i]) for i in range(4))
+ ```
+
+1. Teraz spustime krátku simuláciu a pozorujme tieto diskrétne hodnoty prostredia. Skúste použiť `discretize` aj `discretize_bins` a zistite, či je medzi nimi rozdiel.
+
+ ✅ `discretize_bins` vracia číslo intervalu, ktoré je 0-based. Takže pre hodnoty vstupnej premennej okolo 0 vracia číslo zo stredu intervalu (10). Pri `discretize` sme sa nestarali o rozsah výstupných hodnôt, umožnili sme im byť záporné, takže hodnoty stavu nie sú posunuté a 0 zodpovedá 0. (kódový blok 8)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ #env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ #print(discretize_bins(obs))
+ print(discretize(obs))
+ env.close()
+ ```
+
+ ✅ Odkomentujte riadok začínajúci `env.render`, ak chcete vidieť, ako sa prostredie vykonáva. Inak ho môžete spustiť na pozadí, čo je rýchlejšie. Tento "neviditeľný" spôsob vykonávania použijeme počas procesu Q-Learningu.
+
+## Štruktúra Q-Tabuľky
+
+V našej predchádzajúcej lekcii bol stav jednoduchou dvojicou čísel od 0 do 8, a preto bolo pohodlné reprezentovať Q-Tabuľku pomocou numpy tenzora s tvarom 8x8x2. Ak použijeme diskretizáciu pomocou intervalov, veľkosť nášho stavového vektora je tiež známa, takže môžeme použiť rovnaký prístup a reprezentovať stav pomocou poľa s tvarom 20x20x10x10x2 (tu 2 je dimenzia priestoru akcií a prvé dimenzie zodpovedajú počtu intervalov, ktoré sme vybrali na použitie pre každú z parametrov v priestore pozorovaní).
+
+Avšak niekedy presné dimenzie priestoru pozorovaní nie sú známe. V prípade funkcie `discretize` si nikdy nemôžeme byť istí, že náš stav zostane v určitých hraniciach, pretože niektoré z pôvodných hodnôt nie sú ohraničené. Preto použijeme trochu iný prístup a reprezentujeme Q-Tabuľku pomocou slovníka.
+
+1. Použite dvojicu *(state,action)* ako kľúč slovníka a hodnota by zodpovedala hodnote záznamu Q-Tabuľky. (kódový blok 9)
+
+ ```python
+ Q = {}
+ actions = (0,1)
+
+ def qvalues(state):
+ return [Q.get((state,a),0) for a in actions]
+ ```
+
+ Tu tiež definujeme funkciu `qvalues()`, ktorá vracia zoznam hodnôt Q-Tabuľky pre daný stav, ktorý zodpovedá všetkým možným akciám. Ak záznam nie je prítomný v Q-Tabuľke, vrátime 0 ako predvolenú hodnotu.
+
+## Začnime Q-Learning
+
+Teraz sme pripravení naučiť Petra balansovať!
+
+1. Najskôr nastavme niektoré hyperparametre: (kódový blok 10)
+
+ ```python
+ # hyperparameters
+ alpha = 0.3
+ gamma = 0.9
+ epsilon = 0.90
+ ```
+
+ Tu `alpha` je **rýchlosť učenia**, ktorá určuje, do akej miery by sme mali upraviť aktuálne hodnoty Q-Tabuľky pri každom kroku. V predchádzajúcej lekcii sme začali s hodnotou 1 a potom sme znižovali `alpha` na nižšie hodnoty počas tréningu. V tomto príklade ju ponecháme konštantnú len pre jednoduchosť a môžete experimentovať s úpravou hodnôt `alpha` neskôr.
+
+ `gamma` je **faktor diskontovania**, ktorý ukazuje, do akej miery by sme mali uprednostniť budúcu odmenu pred aktuálnou odmenou.
+
+ `epsilon` je **faktor prieskumu/využitia**, ktorý určuje, či by sme mali uprednostniť prieskum pred využitím alebo naopak. V našom algoritme v `epsilon` percentách prípadov vyberieme ďalšiu akciu podľa hodnôt Q-Tabuľky a v zostávajúcom počte prípadov vykonáme náhodnú akciu. To nám umožní preskúmať oblasti vyhľadávacieho priestoru, ktoré sme nikdy predtým nevideli.
+
+ ✅ Z hľadiska balansovania - výber náhodnej akcie (prieskum) by pôsobil ako náhodný úder nesprávnym smerom a tyč by sa musela naučiť, ako obnoviť rovnováhu z týchto "chýb".
+
+### Zlepšenie algoritmu
+
+Môžeme tiež urobiť dve vylepšenia nášho algoritmu z predchádzajúcej lekcie:
+
+- **Vypočítať priemernú kumulatívnu odmenu** počas niekoľkých simulácií. Pokrok budeme tlačiť každých 5000 iterácií a priemernú kumulatívnu odmenu vypočítame za toto obdobie. To znamená, že ak získame viac ako 195 bodov, môžeme problém považovať za vyriešený, dokonca s vyššou kvalitou, než je požadovaná.
+
+- **Vypočítať maximálny priemerný kumulatívny výsledok**, `Qmax`, a uložíme Q-Tabuľku zodpovedajúcu tomuto výsledku. Keď spustíte tréning, všimnete si, že niekedy priemerný kumulatívny výsledok začne klesať, a chceme si ponechať hodnoty Q-Tabuľky, ktoré zodpovedajú najlepšiemu modelu pozorovanému počas tréningu.
+
+1. Zbierajte všetky kumulatívne odmeny pri každej simulácii do vektora `rewards` na ďalšie vykreslenie. (kódový blok 11)
+
+ ```python
+ def probs(v,eps=1e-4):
+ v = v-v.min()+eps
+ v = v/v.sum()
+ return v
+
+ Qmax = 0
+ cum_rewards = []
+ rewards = []
+ for epoch in range(100000):
+ obs = env.reset()
+ done = False
+ cum_reward=0
+ # == do the simulation ==
+ while not done:
+ s = discretize(obs)
+ if random.random() Qmax:
+ Qmax = np.average(cum_rewards)
+ Qbest = Q
+ cum_rewards=[]
+ ```
+
+Čo si môžete všimnúť z týchto výsledkov:
+
+- **Blízko nášho cieľa**. Sme veľmi blízko k dosiahnutiu cieľa získania 195 kumulatívnych odmien počas 100+ po sebe nasledujúcich simulácií, alebo sme ho možno už dosiahli! Aj keď získame menšie čísla, stále to nevieme, pretože priemerujeme cez 5000 pokusov a formálne kritérium vyžaduje iba 100 pokusov.
+
+- **Odmena začína klesať**. Niekedy odmena začne klesať, čo znamená, že môžeme "zničiť" už naučené hodnoty v Q-Tabuľke tými, ktoré situáciu zhoršujú.
+
+Toto pozorovanie je jasnejšie viditeľné, ak vykreslíme pokrok tréningu.
+
+## Vykreslenie pokroku tréningu
+
+Počas tréningu sme zbierali hodnotu kumulatívnej odmeny pri každej iterácii do vektora `rewards`. Takto to vyzerá, keď to vykreslíme proti číslu iterácie:
+
+```python
+plt.plot(rewards)
+```
+
+
+
+Z tohto grafu nie je možné nič povedať, pretože kvôli povahe stochastického tréningového procesu sa dĺžka tréningových relácií veľmi líši. Aby sme tento graf urobili zrozumiteľnejším, môžeme vypočítať **bežiaci priemer** cez sériu experimentov, povedzme 100. To sa dá pohodlne urobiť pomocou `np.convolve`: (kódový blok 12)
+
+```python
+def running_average(x,window):
+ return np.convolve(x,np.ones(window)/window,mode='valid')
+
+plt.plot(running_average(rewards,100))
+```
+
+
+
+## Zmena hyperparametrov
+
+Aby bolo učenie stabilnejšie, má zmysel upraviť niektoré z našich hyperparametrov počas tréningu. Konkrétne:
+
+- **Pre rýchlosť učenia**, `alpha`, môžeme začať s hodnotami blízkymi 1 a potom postupne znižovať parameter. S časom budeme získavať dobré pravdepodobnostné hodnoty v Q-Tabuľke, a preto by sme ich mali upravovať mierne, a nie úplne prepisovať novými hodnotami.
+
+- **Zvýšiť epsilon**. Môžeme chcieť pomaly zvyšovať `epsilon`, aby sme menej skúmali a viac využívali. Pravdepodobne má zmysel začať s nižšou hodnotou `epsilon` a postupne ju zvýšiť takmer na 1.
+> **Úloha 1**: Skúste experimentovať s hodnotami hyperparametrov a zistite, či dokážete dosiahnuť vyššiu kumulatívnu odmenu. Dosahujete viac ako 195?
+> **Úloha 2**: Na formálne vyriešenie problému je potrebné dosiahnuť priemernú odmenu 195 počas 100 po sebe idúcich spustení. Merajte to počas tréningu a uistite sa, že ste problém formálne vyriešili!
+
+## Vidieť výsledok v akcii
+
+Bolo by zaujímavé vidieť, ako sa vyškolený model správa. Spustime simuláciu a použime rovnakú stratégiu výberu akcií ako počas tréningu, pričom vzorkujeme podľa pravdepodobnostného rozdelenia v Q-Tabuľke: (blok kódu 13)
+
+```python
+obs = env.reset()
+done = False
+while not done:
+ s = discretize(obs)
+ env.render()
+ v = probs(np.array(qvalues(s)))
+ a = random.choices(actions,weights=v)[0]
+ obs,_,done,_ = env.step(a)
+env.close()
+```
+
+Mali by ste vidieť niečo takéto:
+
+
+
+---
+
+## 🚀Výzva
+
+> **Úloha 3**: Tu sme používali finálnu verziu Q-Tabuľky, ktorá nemusí byť najlepšia. Pamätajte, že sme uložili najlepšie fungujúcu Q-Tabuľku do premennej `Qbest`! Skúste ten istý príklad s najlepšie fungujúcou Q-Tabuľkou tak, že skopírujete `Qbest` do `Q` a sledujte, či si všimnete rozdiel.
+
+> **Úloha 4**: Tu sme nevyberali najlepšiu akciu v každom kroku, ale namiesto toho vzorkovali podľa zodpovedajúceho pravdepodobnostného rozdelenia. Malo by väčší zmysel vždy vybrať najlepšiu akciu s najvyššou hodnotou v Q-Tabuľke? To sa dá urobiť pomocou funkcie `np.argmax`, ktorá nájde číslo akcie zodpovedajúce najvyššej hodnote v Q-Tabuľke. Implementujte túto stratégiu a sledujte, či zlepší balansovanie.
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Zadanie
+[Vytrénujte Mountain Car](assignment.md)
+
+## Záver
+
+Teraz sme sa naučili, ako trénovať agentov na dosiahnutie dobrých výsledkov len tým, že im poskytneme funkciu odmeny, ktorá definuje požadovaný stav hry, a dáme im príležitosť inteligentne preskúmať priestor možností. Úspešne sme aplikovali algoritmus Q-Learning v prípadoch diskrétnych a spojitých prostredí, ale s diskrétnymi akciami.
+
+Je dôležité študovať aj situácie, kde je stav akcií spojitý a kde je priestor pozorovaní oveľa zložitejší, napríklad obrazovka z hry Atari. Pri takýchto problémoch často potrebujeme použiť výkonnejšie techniky strojového učenia, ako sú neurónové siete, aby sme dosiahli dobré výsledky. Tieto pokročilejšie témy sú predmetom nášho nadchádzajúceho pokročilého kurzu AI.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/2-Gym/assignment.md b/translations/sk/8-Reinforcement/2-Gym/assignment.md
new file mode 100644
index 00000000..ee6c2f5e
--- /dev/null
+++ b/translations/sk/8-Reinforcement/2-Gym/assignment.md
@@ -0,0 +1,55 @@
+
+# Trénovanie Mountain Car
+
+[OpenAI Gym](http://gym.openai.com) je navrhnutý tak, že všetky prostredia poskytujú rovnaké API - teda rovnaké metódy `reset`, `step` a `render`, a rovnaké abstrakcie **akčného priestoru** a **pozorovacieho priestoru**. Preto by malo byť možné prispôsobiť rovnaké algoritmy posilneného učenia rôznym prostrediam s minimálnymi zmenami kódu.
+
+## Prostredie Mountain Car
+
+[Prostredie Mountain Car](https://gym.openai.com/envs/MountainCar-v0/) obsahuje auto uviaznuté v údolí:
+
+Cieľom je dostať sa z údolia a zachytiť vlajku, pričom na každom kroku vykonáte jednu z nasledujúcich akcií:
+
+| Hodnota | Význam |
+|---|---|
+| 0 | Zrýchliť doľava |
+| 1 | Nezrýchľovať |
+| 2 | Zrýchliť doprava |
+
+Hlavný trik tohto problému však spočíva v tom, že motor auta nie je dostatočne silný na to, aby vyšiel na horu na jeden pokus. Jediný spôsob, ako uspieť, je jazdiť tam a späť, aby sa získala hybnosť.
+
+Pozorovací priestor pozostáva len z dvoch hodnôt:
+
+| Číslo | Pozorovanie | Min | Max |
+|-----|--------------|-----|-----|
+| 0 | Poloha auta | -1.2| 0.6 |
+| 1 | Rýchlosť auta | -0.07 | 0.07 |
+
+Systém odmien pre Mountain Car je pomerne zložitý:
+
+ * Odmena 0 sa udeľuje, ak agent dosiahne vlajku (poloha = 0.5) na vrchole hory.
+ * Odmena -1 sa udeľuje, ak je poloha agenta menšia ako 0.5.
+
+Epizóda sa ukončí, ak je poloha auta väčšia ako 0.5, alebo ak dĺžka epizódy presiahne 200.
+## Pokyny
+
+Prispôsobte náš algoritmus posilneného učenia na riešenie problému Mountain Car. Začnite s existujúcim kódom [notebook.ipynb](../../../../8-Reinforcement/2-Gym/notebook.ipynb), nahraďte nové prostredie, zmeňte funkcie na diskretizáciu stavu a pokúste sa upraviť existujúci algoritmus tak, aby sa trénoval s minimálnymi úpravami kódu. Optimalizujte výsledok úpravou hyperparametrov.
+
+> **Poznámka**: Úprava hyperparametrov bude pravdepodobne potrebná na dosiahnutie konvergencie algoritmu.
+## Hodnotenie
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ---------- | ---------- | ------------------- |
+| | Algoritmus Q-Learning je úspešne prispôsobený z príkladu CartPole s minimálnymi úpravami kódu, ktorý dokáže vyriešiť problém zachytenia vlajky do 200 krokov. | Bol prijatý nový algoritmus Q-Learning z internetu, ale je dobre zdokumentovaný; alebo bol prijatý existujúci algoritmus, ale nedosahuje požadované výsledky. | Študent nebol schopný úspešne prijať žiadny algoritmus, ale urobil podstatné kroky k riešeniu (implementoval diskretizáciu stavu, dátovú štruktúru Q-Table, atď.) |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/2-Gym/solution/Julia/README.md b/translations/sk/8-Reinforcement/2-Gym/solution/Julia/README.md
new file mode 100644
index 00000000..a5826600
--- /dev/null
+++ b/translations/sk/8-Reinforcement/2-Gym/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/2-Gym/solution/R/README.md b/translations/sk/8-Reinforcement/2-Gym/solution/R/README.md
new file mode 100644
index 00000000..1c732511
--- /dev/null
+++ b/translations/sk/8-Reinforcement/2-Gym/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/8-Reinforcement/README.md b/translations/sk/8-Reinforcement/README.md
new file mode 100644
index 00000000..eb73eeb3
--- /dev/null
+++ b/translations/sk/8-Reinforcement/README.md
@@ -0,0 +1,67 @@
+
+# Úvod do posilňovacieho učenia
+
+Posilňovacie učenie, RL, je považované za jeden zo základných paradigmatov strojového učenia, vedľa učenia s učiteľom a učenia bez učiteľa. RL je o rozhodnutiach: robiť správne rozhodnutia alebo sa aspoň z nich učiť.
+
+Predstavte si, že máte simulované prostredie, napríklad akciový trh. Čo sa stane, ak zavediete určitú reguláciu? Má to pozitívny alebo negatívny efekt? Ak sa stane niečo negatívne, musíte prijať toto _negatívne posilnenie_, poučiť sa z neho a zmeniť smer. Ak je výsledok pozitívny, musíte na tom _pozitívnom posilnení_ stavať.
+
+
+
+> Peter a jeho priatelia musia uniknúť hladnému vlkovi! Obrázok od [Jen Looper](https://twitter.com/jenlooper)
+
+## Regionálna téma: Peter a vlk (Rusko)
+
+[Peter a vlk](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) je hudobná rozprávka napísaná ruským skladateľom [Sergejom Prokofievom](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Je to príbeh o mladom pionierovi Petrovi, ktorý odvážne vyjde z domu na lesnú čistinu, aby prenasledoval vlka. V tejto sekcii budeme trénovať algoritmy strojového učenia, ktoré pomôžu Petrovi:
+
+- **Preskúmať** okolitú oblasť a vytvoriť optimálnu navigačnú mapu
+- **Naučiť sa** používať skateboard a udržiavať rovnováhu, aby sa mohol pohybovať rýchlejšie.
+
+[](https://www.youtube.com/watch?v=Fmi5zHg4QSM)
+
+> 🎥 Kliknite na obrázok vyššie a vypočujte si Peter a vlk od Prokofieva
+
+## Posilňovacie učenie
+
+V predchádzajúcich sekciách ste videli dva príklady problémov strojového učenia:
+
+- **S učiteľom**, kde máme datasety, ktoré naznačujú vzorové riešenia problému, ktorý chceme vyriešiť. [Klasifikácia](../4-Classification/README.md) a [regresia](../2-Regression/README.md) sú úlohy učenia s učiteľom.
+- **Bez učiteľa**, kde nemáme označené tréningové dáta. Hlavným príkladom učenia bez učiteľa je [Zhlukovanie](../5-Clustering/README.md).
+
+V tejto sekcii vás zoznámime s novým typom problému učenia, ktorý nevyžaduje označené tréningové dáta. Existuje niekoľko typov takýchto problémov:
+
+- **[Poloučenie s učiteľom](https://wikipedia.org/wiki/Semi-supervised_learning)**, kde máme veľa neoznačených dát, ktoré môžeme použiť na predtréning modelu.
+- **[Posilňovacie učenie](https://wikipedia.org/wiki/Reinforcement_learning)**, v ktorom sa agent učí, ako sa správať, vykonávaním experimentov v nejakom simulovanom prostredí.
+
+### Príklad - počítačová hra
+
+Predstavte si, že chcete naučiť počítač hrať hru, napríklad šach alebo [Super Mario](https://wikipedia.org/wiki/Super_Mario). Aby počítač hral hru, potrebujeme, aby predpovedal, aký ťah urobiť v každom stave hry. Aj keď sa to môže zdať ako problém klasifikácie, nie je to tak - pretože nemáme dataset so stavmi a zodpovedajúcimi akciami. Aj keď môžeme mať nejaké dáta, ako existujúce šachové partie alebo záznamy hráčov hrajúcich Super Mario, je pravdepodobné, že tieto dáta nebudú dostatočne pokrývať veľké množstvo možných stavov.
+
+Namiesto hľadania existujúcich herných dát je **Posilňovacie učenie** (RL) založené na myšlienke *nechať počítač hrať* mnohokrát a pozorovať výsledok. Na aplikáciu posilňovacieho učenia potrebujeme dve veci:
+
+- **Prostredie** a **simulátor**, ktoré nám umožnia hrať hru mnohokrát. Tento simulátor by definoval všetky pravidlá hry, ako aj možné stavy a akcie.
+
+- **Funkciu odmeny**, ktorá nám povie, ako dobre sme si počínali počas každého ťahu alebo hry.
+
+Hlavný rozdiel medzi inými typmi strojového učenia a RL je ten, že v RL zvyčajne nevieme, či vyhráme alebo prehráme, kým nedokončíme hru. Preto nemôžeme povedať, či je určitý ťah sám o sebe dobrý alebo nie - odmenu dostaneme až na konci hry. Naším cieľom je navrhnúť algoritmy, ktoré nám umožnia trénovať model za neistých podmienok. Naučíme sa o jednom RL algoritme nazývanom **Q-learning**.
+
+## Lekcie
+
+1. [Úvod do posilňovacieho učenia a Q-Learningu](1-QLearning/README.md)
+2. [Používanie simulačného prostredia Gym](2-Gym/README.md)
+
+## Kredity
+
+"Úvod do posilňovacieho učenia" napísal s ♥️ [Dmitry Soshnikov](http://soshnikov.com)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/9-Real-World/1-Applications/README.md b/translations/sk/9-Real-World/1-Applications/README.md
new file mode 100644
index 00000000..5cc88486
--- /dev/null
+++ b/translations/sk/9-Real-World/1-Applications/README.md
@@ -0,0 +1,154 @@
+
+# Postscript: Strojové učenie v reálnom svete
+
+
+> Sketchnote od [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+V tomto kurze ste sa naučili mnoho spôsobov, ako pripraviť dáta na tréning a vytvárať modely strojového učenia. Vytvorili ste sériu klasických modelov regresie, zhlukovania, klasifikácie, spracovania prirodzeného jazyka a časových radov. Gratulujeme! Teraz sa možno pýtate, na čo to všetko je... aké sú reálne aplikácie týchto modelov?
+
+Aj keď veľký záujem v priemysle vzbudzuje AI, ktorá zvyčajne využíva hlboké učenie, stále existujú hodnotné aplikácie pre klasické modely strojového učenia. Niektoré z týchto aplikácií možno používate už dnes! V tejto lekcii preskúmate, ako osem rôznych odvetví a odborných oblastí využíva tieto typy modelov na zlepšenie výkonu, spoľahlivosti, inteligencie a hodnoty pre používateľov.
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+## 💰 Financie
+
+Finančný sektor ponúka mnoho príležitostí pre strojové učenie. Mnohé problémy v tejto oblasti sa dajú modelovať a riešiť pomocou ML.
+
+### Detekcia podvodov s kreditnými kartami
+
+V priebehu kurzu sme sa naučili o [k-means zhlukovaní](../../5-Clustering/2-K-Means/README.md), ale ako ho možno použiť na riešenie problémov súvisiacich s podvodmi s kreditnými kartami?
+
+K-means zhlukovanie je užitočné pri technike detekcie podvodov s kreditnými kartami nazývanej **detekcia odľahlých hodnôt**. Odľahlé hodnoty, alebo odchýlky v pozorovaniach o súbore dát, nám môžu povedať, či je kreditná karta používaná normálne alebo či sa deje niečo neobvyklé. Ako je uvedené v nižšie uvedenom článku, môžete triediť dáta o kreditných kartách pomocou algoritmu k-means zhlukovania a priradiť každú transakciu do zhluku na základe toho, ako veľmi sa javí ako odľahlá hodnota. Potom môžete vyhodnotiť najrizikovejšie zhluky na podvodné verzus legitímne transakcie.
+[Referencie](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.680.1195&rep=rep1&type=pdf)
+
+### Správa majetku
+
+V správe majetku jednotlivec alebo firma spravuje investície v mene svojich klientov. Ich úlohou je dlhodobo udržiavať a zvyšovať bohatstvo, takže je nevyhnutné vybrať investície, ktoré budú dobre fungovať.
+
+Jedným zo spôsobov, ako vyhodnotiť, ako konkrétna investícia funguje, je štatistická regresia. [Lineárna regresia](../../2-Regression/1-Tools/README.md) je cenný nástroj na pochopenie toho, ako fond funguje v porovnaní s nejakým benchmarkom. Môžeme tiež zistiť, či sú výsledky regresie štatisticky významné, alebo ako veľmi by ovplyvnili investície klienta. Analýzu môžete ešte rozšíriť pomocou viacnásobnej regresie, kde sa môžu zohľadniť ďalšie rizikové faktory. Pre príklad, ako by to fungovalo pre konkrétny fond, si pozrite nižšie uvedený článok o hodnotení výkonnosti fondu pomocou regresie.
+[Referencie](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/)
+
+## 🎓 Vzdelávanie
+
+Vzdelávací sektor je tiež veľmi zaujímavou oblasťou, kde sa dá aplikovať ML. Existujú zaujímavé problémy, ktoré je možné riešiť, ako napríklad detekcia podvádzania na testoch alebo esejách, alebo zvládanie zaujatosti, či už neúmyselnej alebo nie, v procese hodnotenia.
+
+### Predpovedanie správania študentov
+
+[Coursera](https://coursera.com), poskytovateľ online kurzov, má skvelý technologický blog, kde diskutujú o mnohých inžinierskych rozhodnutiach. V tejto prípadovej štúdii vykreslili regresnú líniu, aby preskúmali akúkoľvek koreláciu medzi nízkym NPS (Net Promoter Score) hodnotením a udržaním alebo odchodom z kurzu.
+[Referencie](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a)
+
+### Zmierňovanie zaujatosti
+
+[Grammarly](https://grammarly.com), asistent písania, ktorý kontroluje pravopisné a gramatické chyby, používa sofistikované [systémy spracovania prirodzeného jazyka](../../6-NLP/README.md) vo svojich produktoch. Na svojom technologickom blogu publikovali zaujímavú prípadovú štúdiu o tom, ako sa vysporiadali s rodovou zaujatostou v strojovom učení, o ktorej ste sa učili v našej [úvodnej lekcii o spravodlivosti](../../1-Introduction/3-fairness/README.md).
+[Referencie](https://www.grammarly.com/blog/engineering/mitigating-gender-bias-in-autocorrect/)
+
+## 👜 Maloobchod
+
+Maloobchodný sektor môže určite profitovať z využitia ML, od vytvárania lepšej zákazníckej cesty až po optimálne skladovanie zásob.
+
+### Personalizácia zákazníckej cesty
+
+V spoločnosti Wayfair, ktorá predáva domáce potreby ako nábytok, je pomoc zákazníkom pri hľadaní správnych produktov pre ich vkus a potreby kľúčová. V tomto článku inžinieri zo spoločnosti popisujú, ako používajú ML a NLP na "zobrazenie správnych výsledkov pre zákazníkov". Ich Query Intent Engine bol postavený na využití extrakcie entít, tréningu klasifikátorov, extrakcie aktív a názorov a označovania sentimentu v zákazníckych recenziách. Toto je klasický príklad toho, ako NLP funguje v online maloobchode.
+[Referencie](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search)
+
+### Správa zásob
+
+Inovatívne, flexibilné spoločnosti ako [StitchFix](https://stitchfix.com), služba boxov, ktorá posiela oblečenie spotrebiteľom, sa silno spoliehajú na ML pri odporúčaniach a správe zásob. Ich stylingové tímy spolupracujú s tímami pre merchandising: "jeden z našich dátových vedcov experimentoval s genetickým algoritmom a aplikoval ho na oblečenie, aby predpovedal, čo by mohlo byť úspešným kúskom oblečenia, ktorý dnes neexistuje. Predložili sme to tímu pre merchandising a teraz to môžu používať ako nástroj."
+[Referencie](https://www.zdnet.com/article/how-stitch-fix-uses-machine-learning-to-master-the-science-of-styling/)
+
+## 🏥 Zdravotná starostlivosť
+
+Sektor zdravotnej starostlivosti môže využívať ML na optimalizáciu výskumných úloh a logistických problémov, ako je opätovné prijímanie pacientov alebo zastavenie šírenia chorôb.
+
+### Správa klinických štúdií
+
+Toxicita v klinických štúdiách je veľkým problémom pre výrobcov liekov. Koľko toxicity je tolerovateľné? V tejto štúdii analýza rôznych metód klinických štúdií viedla k vývoju nového prístupu na predpovedanie pravdepodobnosti výsledkov klinických štúdií. Konkrétne boli schopní použiť random forest na vytvorenie [klasifikátora](../../4-Classification/README.md), ktorý dokáže rozlíšiť medzi skupinami liekov.
+[Referencie](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
+
+### Správa opätovného prijímania pacientov
+
+Nemocničná starostlivosť je nákladná, najmä keď musia byť pacienti opätovne prijatí. Tento článok diskutuje o spoločnosti, ktorá používa ML na predpovedanie potenciálu opätovného prijímania pomocou [zhlukovania](../../5-Clustering/README.md) algoritmov. Tieto zhluky pomáhajú analytikom "objaviť skupiny opätovných prijatí, ktoré môžu mať spoločnú príčinu".
+[Referencie](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning)
+
+### Správa chorôb
+
+Nedávna pandémia osvetlila spôsoby, akými môže strojové učenie pomôcť zastaviť šírenie chorôb. V tomto článku rozpoznáte použitie ARIMA, logistických kriviek, lineárnej regresie a SARIMA. "Táto práca je pokusom vypočítať mieru šírenia tohto vírusu a tým predpovedať úmrtia, zotavenia a potvrdené prípady, aby nám pomohla lepšie sa pripraviť a prežiť."
+[Referencie](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/)
+
+## 🌲 Ekológia a zelené technológie
+
+Príroda a ekológia pozostávajú z mnohých citlivých systémov, kde sa do popredia dostáva interakcia medzi zvieratami a prírodou. Je dôležité byť schopný presne merať tieto systémy a primerane konať, ak sa niečo stane, ako napríklad lesný požiar alebo pokles populácie zvierat.
+
+### Správa lesov
+
+V predchádzajúcich lekciách ste sa naučili o [Reinforcement Learning](../../8-Reinforcement/README.md). Môže byť veľmi užitočné pri predpovedaní vzorcov v prírode. Najmä môže byť použité na sledovanie ekologických problémov, ako sú lesné požiare a šírenie invazívnych druhov. V Kanade skupina výskumníkov použila Reinforcement Learning na vytvorenie modelov dynamiky lesných požiarov zo satelitných snímok. Použitím inovatívneho "procesu šírenia v priestore (SSP)" si predstavili lesný požiar ako "agenta na akejkoľvek bunke v krajine." "Súbor akcií, ktoré môže požiar vykonať z miesta v akomkoľvek čase, zahŕňa šírenie na sever, juh, východ alebo západ alebo nešírenie.
+
+Tento prístup invertuje obvyklé nastavenie RL, pretože dynamika zodpovedajúceho Markov Decision Process (MDP) je známa funkcia pre okamžité šírenie požiaru." Viac o klasických algoritmoch použité touto skupinou si prečítajte na nižšie uvedenom odkaze.
+[Referencie](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full)
+
+### Sledovanie pohybu zvierat
+
+Aj keď hlboké učenie vytvorilo revolúciu vo vizuálnom sledovaní pohybov zvierat (môžete si vytvoriť vlastný [sledovač polárnych medveďov](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) tu), klasické ML má stále svoje miesto v tejto úlohe.
+
+Senzory na sledovanie pohybov hospodárskych zvierat a IoT využívajú tento typ vizuálneho spracovania, ale základnejšie techniky ML sú užitočné na predspracovanie dát. Napríklad v tomto článku boli monitorované a analyzované postoje oviec pomocou rôznych klasifikačných algoritmov. Na strane 335 môžete rozpoznať ROC krivku.
+[Referencie](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf)
+
+### ⚡️ Správa energie
+
+V našich lekciách o [predpovedaní časových radov](../../7-TimeSeries/README.md) sme spomenuli koncept inteligentných parkovacích meračov na generovanie príjmov pre mesto na základe pochopenia ponuky a dopytu. Tento článok podrobne diskutuje, ako kombinácia zhlukovania, regresie a predpovedania časových radov pomohla predpovedať budúce využitie energie v Írsku na základe inteligentného merania.
+[Referencie](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf)
+
+## 💼 Poistenie
+
+Sektor poistenia je ďalším sektorom, ktorý využíva ML na konštrukciu a optimalizáciu životaschopných finančných a aktuárskych modelov.
+
+### Správa volatility
+
+MetLife, poskytovateľ životného poistenia, je otvorený vo svojom prístupe k analýze a zmierňovaniu volatility vo svojich finančných modeloch. V tomto článku si všimnete vizualizácie binárnej a ordinálnej klasifikácie. Objavíte tiež vizualizácie predpovedí.
+[Referencie](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf)
+
+## 🎨 Umenie, kultúra a literatúra
+
+V umení, napríklad v žurnalistike, existuje mnoho zaujímavých problémov. Detekcia falošných správ je obrovským problémom, pretože sa ukázalo, že ovplyvňuje názory ľudí a dokonca môže ohroziť demokracie. Múzeá môžu tiež profitovať z využitia ML vo všetkom od hľadania spojení medzi artefaktmi až po plánovanie zdrojov.
+
+### Detekcia falošných správ
+
+Detekcia falošných správ sa stala hrou mačky a myši v dnešných médiách. V tomto článku výskumníci navrhujú systém kombinujúci niekoľko techník ML, ktoré sme študovali, a testovanie najlepšieho modelu: "Tento systém je založený na spracovaní prirodzeného jazyka na extrakciu vlastností z dát a potom sú tieto vlastnosti použité na tréning klasifikátorov strojového učenia, ako sú Naive Bayes, Support Vector Machine (SVM), Random Forest (RF), Stochastic Gradient Descent (SGD) a Logistic Regression (LR)."
+[Referencie](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf)
+
+Tento článok ukazuje, ako kombinácia rôznych oblastí ML môže priniesť zaujímavé výsledky, ktoré môžu pomôcť zastaviť šírenie falošných správ a vytvárať skutočné škody; v tomto prípade bol impulzom šírenie fám o liečbe COVID, ktoré podnietilo násilné správanie davu.
+
+### Múzeá a ML
+
+Múzeá sú na prahu AI revolúcie, v ktorej sa katalogizácia a digitalizácia zbierok a hľadanie spojení medzi artefaktmi stáva jednoduchším, ako technológia napreduje. Projekty ako [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources.) pomáhajú odomknúť tajomstvá neprístupných zbierok, ako sú Vatikánske archívy. Ale obchodný aspekt múzeí tiež profituje z modelov ML.
+
+Napríklad Art Institute of Chicago vytvoril modely na predpovedanie toho, čo publikum zaujíma a kedy navštívi expozície. Cieľom je vytvoriť individuálne a optimalizované zážitky návštevníkov pri každej návšteve múzea. "Počas fiškálneho roku 2017 model predpovedal návštevnosť a príjmy s presnosťou do 1 percenta, hovorí Andrew Simnick, senior viceprezident v Art Institute."
+[Referencie](https://www.chicagobusiness.com/article/20180518/ISSUE01/180519840/art-institute-of-chicago-uses-data-to-make-exhibit-choices)
+
+## 🏷 Marketing
+
+### Segmentácia zákazníkov
+
+Najefektívnejšie marketingové stratégie oslovujú zákazníkov rôznymi spôsobmi na základe rôznych skupín. V tomto článku sa diskutuje o využití algoritmov zhlukovania na podporu diferencovaného marketingu. Diferencovaný marketing pomáha spoločnost
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prehľad a samostatné štúdium
+
+Tím dátovej vedy spoločnosti Wayfair má niekoľko zaujímavých videí o tom, ako využívajú strojové učenie vo svojej firme. Stojí za to [pozrieť si ich](https://www.youtube.com/channel/UCe2PjkQXqOuwkW1gw6Ameuw/videos)!
+
+## Zadanie
+
+[Lov na strojové učenie](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/9-Real-World/1-Applications/assignment.md b/translations/sk/9-Real-World/1-Applications/assignment.md
new file mode 100644
index 00000000..88212dec
--- /dev/null
+++ b/translations/sk/9-Real-World/1-Applications/assignment.md
@@ -0,0 +1,27 @@
+
+# Lov na poklady ML
+
+## Pokyny
+
+V tejto lekcii ste sa dozvedeli o mnohých reálnych prípadoch použitia, ktoré boli vyriešené pomocou klasického strojového učenia (ML). Hoci použitie hlbokého učenia, nových techník a nástrojov v AI a využívanie neurónových sietí pomohlo urýchliť vývoj nástrojov v týchto oblastiach, klasické ML využívajúce techniky z tohto kurzu má stále veľkú hodnotu.
+
+V tejto úlohe si predstavte, že sa zúčastňujete hackathonu. Použite to, čo ste sa naučili v kurze, na navrhnutie riešenia pomocou klasického ML na vyriešenie problému v jednej z oblastí diskutovaných v tejto lekcii. Vytvorte prezentáciu, v ktorej budete diskutovať o tom, ako plánujete implementovať svoj nápad. Bonusové body získate, ak dokážete zhromaždiť vzorové údaje a vytvoriť ML model na podporu svojho konceptu!
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Potrebuje zlepšenie |
+| --------- | ----------------------------------------------------------------- | ----------------------------------------------- | ---------------------- |
+| | Predložená je prezentácia v PowerPointe - bonus za vytvorenie modelu | Predložená je neinovatívna, základná prezentácia | Práca je neúplná |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/9-Real-World/2-Debugging-ML-Models/README.md b/translations/sk/9-Real-World/2-Debugging-ML-Models/README.md
new file mode 100644
index 00000000..2f103599
--- /dev/null
+++ b/translations/sk/9-Real-World/2-Debugging-ML-Models/README.md
@@ -0,0 +1,164 @@
+
+# Postscript: Ladenie modelov v strojovom učení pomocou komponentov zodpovedného AI dashboardu
+
+## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
+
+## Úvod
+
+Strojové učenie ovplyvňuje naše každodenné životy. AI si nachádza cestu do niektorých z najdôležitejších systémov, ktoré ovplyvňujú nás ako jednotlivcov aj našu spoločnosť, od zdravotníctva, financií, vzdelávania až po zamestnanie. Napríklad systémy a modely sa podieľajú na každodenných rozhodovacích úlohách, ako sú diagnostiky v zdravotníctve alebo odhaľovanie podvodov. V dôsledku toho sú pokroky v AI spolu s zrýchleným prijímaním sprevádzané vyvíjajúcimi sa spoločenskými očakávaniami a rastúcou reguláciou. Neustále vidíme oblasti, kde systémy AI nesplňujú očakávania; odhaľujú nové výzvy; a vlády začínajú regulovať AI riešenia. Preto je dôležité, aby boli tieto modely analyzované s cieľom poskytovať spravodlivé, spoľahlivé, inkluzívne, transparentné a zodpovedné výsledky pre všetkých.
+
+V tomto kurze sa pozrieme na praktické nástroje, ktoré môžu byť použité na posúdenie, či má model problémy so zodpovedným AI. Tradičné techniky ladenia strojového učenia majú tendenciu byť založené na kvantitatívnych výpočtoch, ako je agregovaná presnosť alebo priemerná strata chýb. Predstavte si, čo sa môže stať, keď údaje, ktoré používate na vytvorenie týchto modelov, postrádajú určité demografické skupiny, ako sú rasa, pohlavie, politické názory, náboženstvo, alebo neprimerane zastupujú takéto demografické skupiny. Čo ak je výstup modelu interpretovaný tak, že uprednostňuje určitú demografickú skupinu? To môže viesť k nadmernej alebo nedostatočnej reprezentácii týchto citlivých skupín, čo spôsobuje problémy so spravodlivosťou, inkluzívnosťou alebo spoľahlivosťou modelu. Ďalším faktorom je, že modely strojového učenia sú považované za čierne skrinky, čo sťažuje pochopenie a vysvetlenie toho, čo ovplyvňuje predikciu modelu. Toto sú výzvy, ktorým čelia dátoví vedci a vývojári AI, keď nemajú dostatočné nástroje na ladenie a posúdenie spravodlivosti alebo dôveryhodnosti modelu.
+
+V tejto lekcii sa naučíte, ako ladiť svoje modely pomocou:
+
+- **Analýzy chýb**: identifikácia oblastí v distribúcii údajov, kde má model vysoké miery chýb.
+- **Prehľadu modelu**: vykonanie porovnávacej analýzy medzi rôznymi kohortami údajov na odhalenie rozdielov vo výkonnostných metrikách modelu.
+- **Analýzy údajov**: skúmanie, kde môže byť nadmerná alebo nedostatočná reprezentácia údajov, ktorá môže skresliť model tak, aby uprednostňoval jednu demografickú skupinu pred druhou.
+- **Dôležitosti vlastností**: pochopenie, ktoré vlastnosti ovplyvňujú predikcie modelu na globálnej alebo lokálnej úrovni.
+
+## Predpoklady
+
+Ako predpoklad si prosím preštudujte [Nástroje zodpovedného AI pre vývojárov](https://www.microsoft.com/ai/ai-lab-responsible-ai-dashboard)
+
+> 
+
+## Analýza chýb
+
+Tradičné metriky výkonnosti modelu používané na meranie presnosti sú väčšinou výpočty založené na správnych vs nesprávnych predikciách. Napríklad určenie, že model je presný na 89 % s chybovou stratou 0,001, môže byť považované za dobrý výkon. Chyby však nie sú rovnomerne rozložené v podkladovom súbore údajov. Môžete dosiahnuť skóre presnosti modelu 89 %, ale zistiť, že existujú rôzne oblasti vašich údajov, v ktorých model zlyháva na 42 %. Dôsledky týchto vzorcov zlyhania s určitými skupinami údajov môžu viesť k problémom so spravodlivosťou alebo spoľahlivosťou. Je nevyhnutné pochopiť oblasti, kde model funguje dobre alebo nie. Oblasti údajov, kde má váš model vysoký počet nepresností, sa môžu ukázať ako dôležitá demografická skupina údajov.
+
+
+
+Komponent Analýza chýb na RAI dashboarde ilustruje, ako sú zlyhania modelu rozložené medzi rôznymi kohortami pomocou vizualizácie stromu. To je užitočné pri identifikácii vlastností alebo oblastí, kde je vysoká miera chýb vo vašom súbore údajov. Tým, že vidíte, odkiaľ pochádza väčšina nepresností modelu, môžete začať skúmať príčinu. Môžete tiež vytvárať kohorty údajov na vykonanie analýzy. Tieto kohorty údajov pomáhajú v procese ladenia určiť, prečo je výkon modelu dobrý v jednej kohorte, ale chybný v inej.
+
+
+
+Vizualizačné indikátory na mape stromu pomáhajú rýchlejšie lokalizovať problémové oblasti. Napríklad tmavší odtieň červenej farby na uzle stromu znamená vyššiu mieru chýb.
+
+Heatmapa je ďalšou vizualizačnou funkciou, ktorú môžu používatelia použiť na skúmanie miery chýb pomocou jednej alebo dvoch vlastností na nájdenie prispievateľa k chybám modelu v celom súbore údajov alebo kohortách.
+
+
+
+Použite analýzu chýb, keď potrebujete:
+
+* Získať hlboké pochopenie toho, ako sú zlyhania modelu rozložené v súbore údajov a medzi viacerými vstupnými a vlastnostnými dimenziami.
+* Rozložiť agregované metriky výkonnosti na automatické objavenie chybných kohort na informovanie o vašich cielených krokoch na zmiernenie problémov.
+
+## Prehľad modelu
+
+Hodnotenie výkonnosti modelu strojového učenia si vyžaduje získanie holistického pochopenia jeho správania. To možno dosiahnuť preskúmaním viacerých metrík, ako sú miera chýb, presnosť, recall, precision alebo MAE (Mean Absolute Error), na odhalenie rozdielov medzi výkonnostnými metrikami. Jedna metrika výkonnosti môže vyzerať skvele, ale nepresnosti môžu byť odhalené v inej metrike. Okrem toho porovnávanie metrík na odhalenie rozdielov v celom súbore údajov alebo kohortách pomáha objasniť, kde model funguje dobre alebo nie. To je obzvlášť dôležité pri sledovaní výkonu modelu medzi citlivými vs necitlivými vlastnosťami (napr. rasa pacienta, pohlavie alebo vek), aby sa odhalila potenciálna nespravodlivosť modelu. Napríklad zistenie, že model je viac chybný v kohorte, ktorá má citlivé vlastnosti, môže odhaliť potenciálnu nespravodlivosť modelu.
+
+Komponent Prehľad modelu na RAI dashboarde pomáha nielen pri analýze výkonnostných metrík reprezentácie údajov v kohorte, ale dáva používateľom možnosť porovnávať správanie modelu medzi rôznymi kohortami.
+
+
+
+Funkcia analýzy založená na vlastnostiach komponentu umožňuje používateľom zúžiť podskupiny údajov v rámci konkrétnej vlastnosti na identifikáciu anomálií na granulárnej úrovni. Napríklad dashboard má zabudovanú inteligenciu na automatické generovanie kohort pre používateľom vybranú vlastnosť (napr. *"time_in_hospital < 3"* alebo *"time_in_hospital >= 7"*). To umožňuje používateľovi izolovať konkrétnu vlastnosť z väčšej skupiny údajov, aby zistil, či je kľúčovým ovplyvňovateľom chybných výsledkov modelu.
+
+
+
+Komponent Prehľad modelu podporuje dve triedy metrík rozdielov:
+
+**Rozdiely vo výkonnosti modelu**: Tieto sady metrík vypočítavajú rozdiely (disparity) v hodnotách vybranej metriky výkonnosti medzi podskupinami údajov. Tu je niekoľko príkladov:
+
+* Rozdiely v miere presnosti
+* Rozdiely v miere chýb
+* Rozdiely v precision
+* Rozdiely v recall
+* Rozdiely v Mean Absolute Error (MAE)
+
+**Rozdiely v miere výberu**: Táto metrika obsahuje rozdiely v miere výberu (priaznivá predikcia) medzi podskupinami. Príkladom je rozdiel v miere schvaľovania úverov. Miera výberu znamená podiel dátových bodov v každej triede klasifikovaných ako 1 (v binárnej klasifikácii) alebo distribúciu predikčných hodnôt (v regresii).
+
+## Analýza údajov
+
+> "Ak budete údaje mučiť dostatočne dlho, priznajú sa k čomukoľvek" - Ronald Coase
+
+Toto tvrdenie znie extrémne, ale je pravda, že údaje môžu byť manipulované na podporu akéhokoľvek záveru. Takáto manipulácia sa niekedy môže stať neúmyselne. Ako ľudia máme všetci predsudky a často je ťažké vedome vedieť, kedy zavádzame predsudky do údajov. Zaručenie spravodlivosti v AI a strojovom učení zostáva komplexnou výzvou.
+
+Údaje sú veľkým slepým miestom pre tradičné metriky výkonnosti modelu. Môžete mať vysoké skóre presnosti, ale to nemusí vždy odrážať podkladové predsudky v údajoch, ktoré by mohli byť vo vašom súbore údajov. Napríklad, ak má súbor údajov zamestnancov 27 % žien na výkonných pozíciách v spoločnosti a 73 % mužov na rovnakej úrovni, model AI na inzerciu pracovných miest trénovaný na týchto údajoch môže cieliť prevažne na mužské publikum pre seniorné pracovné pozície. Táto nerovnováha v údajoch skreslila predikciu modelu tak, aby uprednostňovala jedno pohlavie. To odhaľuje problém spravodlivosti, kde je v AI modeli predsudok voči pohlaviu.
+
+Komponent Analýza údajov na RAI dashboarde pomáha identifikovať oblasti, kde je nadmerná alebo nedostatočná reprezentácia v súbore údajov. Pomáha používateľom diagnostikovať príčinu chýb a problémov so spravodlivosťou, ktoré sú spôsobené nerovnováhou údajov alebo nedostatkom reprezentácie určitej skupiny údajov. To dáva používateľom možnosť vizualizovať súbory údajov na základe predikovaných a skutočných výsledkov, skupín chýb a konkrétnych vlastností. Niekedy objavenie nedostatočne zastúpenej skupiny údajov môže tiež odhaliť, že model sa neučí dobre, a preto má vysoké nepresnosti. Model s predsudkami v údajoch nie je len problémom spravodlivosti, ale ukazuje, že model nie je inkluzívny ani spoľahlivý.
+
+
+
+Použite analýzu údajov, keď potrebujete:
+
+* Preskúmať štatistiky vášho súboru údajov výberom rôznych filtrov na rozdelenie údajov do rôznych dimenzií (známych ako kohorty).
+* Pochopiť distribúciu vášho súboru údajov medzi rôznymi kohortami a skupinami vlastností.
+* Určiť, či vaše zistenia týkajúce sa spravodlivosti, analýzy chýb a kauzality (odvodené z iných komponentov dashboardu) sú výsledkom distribúcie vášho súboru údajov.
+* Rozhodnúť, v ktorých oblastiach zbierať viac údajov na zmiernenie chýb spôsobených problémami s reprezentáciou, šumom v označení, šumom vo vlastnostiach, predsudkami v označení a podobnými faktormi.
+
+## Interpretácia modelu
+
+Modely strojového učenia majú tendenciu byť čiernymi skrinkami. Pochopenie, ktoré kľúčové vlastnosti údajov ovplyvňujú predikciu modelu, môže byť náročné. Je dôležité poskytnúť transparentnosť, prečo model robí určitú predikciu. Napríklad, ak AI systém predikuje, že diabetický pacient je ohrozený opätovným prijatím do nemocnice do 30 dní, mal by byť schopný poskytnúť podporné údaje, ktoré viedli k jeho predikcii. Mať podporné indikátory údajov prináša transparentnosť, ktorá pomáha klinikám alebo nemocniciam robiť dobre informované rozhodnutia. Okrem toho schopnosť vysvetliť, prečo model urobil predikciu pre konkrétneho pacienta, umožňuje zodpovednosť voči zdravotným reguláciám. Keď používate modely strojového učenia spôsobmi, ktoré ovplyvňujú životy ľudí, je nevyhnutné pochopiť a vysvetliť, čo ovplyvňuje správanie modelu. Vysvetliteľnosť a interpretácia modelu pomáha odpovedať na otázky v scenároch, ako sú:
+
+* Ladenie modelu: Prečo môj model urobil túto chybu? Ako môžem zlepšiť svoj model?
+* Spolupráca človek-AI: Ako môžem pochopiť a dôverovať rozhodnutiam modelu?
+* Regulácia: Spĺňa môj model právne požiadavky?
+
+Komponent Dôležitosť vlastností na RAI dashboarde vám pomáha ladiť a získať komplexné pochopenie toho, ako model robí predikcie. Je to tiež užitočný nástroj pre profesionálov v oblasti strojového učenia a rozhodovacích činiteľov na vysvetlenie a ukázanie dôkazov vlastností ovplyvňujúcich správanie modelu pre reguláciu. Používatelia môžu ďalej skúmať globálne aj lokálne vysvetlenia na validáciu, ktoré vlastnosti ovplyvňujú predikciu modelu. Globálne vysvetlenia uvádzajú najdôležitejšie vlastnosti, ktoré ovplyvnili celkovú predikciu modelu. Lokálne vysvetlenia zobrazujú, ktoré vlastnosti viedli k predikcii modelu pre konkrétny prípad. Schopnosť hodnotiť lokálne vysvetlenia je tiež užitočná pri ladení alebo audite konkrétneho prípadu na lepšie pochopenie a interpretáciu, prečo model urobil presnú alebo nepresnú predikciu.
+
+
+
+* Globálne vysvetlenia: Napríklad, ktoré vlastnosti ovplyvňujú celkové správanie modelu na opätovné prijatie diabetických pacientov do nemocnice?
+* Lokálne vysvetlenia: Napríklad, prečo bol diabetický pacient nad 60 rokov s predchádzajúcimi hospitalizáciami predikovaný na opätovné prijatie alebo neprijatie do nemocnice do 30 dní?
+
+V procese ladenia výkonu modelu medzi rôznymi kohortami Dôležitosť vlastností ukazuje, aký vplyv má vlastnosť na kohorty. Pomáha odhaliť anomálie pri porovnávaní úrovne vplyvu vlastnosti na chybnú predikciu modelu. Komponent Dôležitosť vlastností môže ukázať, ktoré
+- **Nadmerné alebo nedostatočné zastúpenie**. Ide o to, že určitá skupina nie je viditeľná v určitej profesii, a akákoľvek služba alebo funkcia, ktorá to naďalej podporuje, prispieva k škodám.
+
+### Azure RAI dashboard
+
+[Azure RAI dashboard](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) je postavený na open-source nástrojoch vyvinutých poprednými akademickými inštitúciami a organizáciami vrátane Microsoftu, ktoré sú nevyhnutné pre dátových vedcov a vývojárov AI na lepšie pochopenie správania modelov, objavovanie a zmierňovanie nežiaducich problémov z AI modelov.
+
+- Naučte sa, ako používať rôzne komponenty, prečítaním dokumentácie k RAI dashboardu [docs.](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu)
+
+- Pozrite si niektoré [ukážkové notebooky RAI dashboardu](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) na ladenie zodpovednejších AI scenárov v Azure Machine Learning.
+
+---
+## 🚀 Výzva
+
+Aby sme zabránili zavádzaniu štatistických alebo dátových predsudkov už na začiatku, mali by sme:
+
+- zabezpečiť rozmanitosť pozadí a perspektív medzi ľuďmi pracujúcimi na systémoch
+- investovať do datasetov, ktoré odrážajú rozmanitosť našej spoločnosti
+- vyvíjať lepšie metódy na detekciu a opravu predsudkov, keď sa objavia
+
+Premýšľajte o reálnych situáciách, kde je nespravodlivosť evidentná pri budovaní a používaní modelov. Čo ďalšie by sme mali zvážiť?
+
+## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
+## Prehľad a samostatné štúdium
+
+V tejto lekcii ste sa naučili niektoré praktické nástroje na začlenenie zodpovednej AI do strojového učenia.
+
+Pozrite si tento workshop, aby ste sa hlbšie ponorili do tém:
+
+- Responsible AI Dashboard: Jednotné miesto na operacionalizáciu RAI v praxi od Besmiry Nushi a Mehrnoosh Sameki
+
+[](https://www.youtube.com/watch?v=f1oaDNl3djg "Responsible AI Dashboard: Jednotné miesto na operacionalizáciu RAI v praxi")
+
+> 🎥 Kliknite na obrázok vyššie pre video: Responsible AI Dashboard: Jednotné miesto na operacionalizáciu RAI v praxi od Besmiry Nushi a Mehrnoosh Sameki
+
+Odkážte na nasledujúce materiály, aby ste sa dozvedeli viac o zodpovednej AI a o tom, ako budovať dôveryhodnejšie modely:
+
+- Microsoftove nástroje RAI dashboardu na ladenie ML modelov: [Responsible AI tools resources](https://aka.ms/rai-dashboard)
+
+- Preskúmajte Responsible AI toolkit: [Github](https://github.com/microsoft/responsible-ai-toolbox)
+
+- Microsoftove centrum zdrojov RAI: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Microsoftova výskumná skupina FATE: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+## Zadanie
+
+[Preskúmajte RAI dashboard](assignment.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/9-Real-World/2-Debugging-ML-Models/assignment.md b/translations/sk/9-Real-World/2-Debugging-ML-Models/assignment.md
new file mode 100644
index 00000000..f56949cd
--- /dev/null
+++ b/translations/sk/9-Real-World/2-Debugging-ML-Models/assignment.md
@@ -0,0 +1,25 @@
+
+# Preskúmajte dashboard Responsible AI (RAI)
+
+## Pokyny
+
+V tejto lekcii ste sa dozvedeli o dashboarde RAI, súbore komponentov postavených na "open-source" nástrojoch, ktoré pomáhajú dátovým vedcom vykonávať analýzu chýb, prieskum dát, hodnotenie spravodlivosti, interpretáciu modelov, posúdenie kontrafaktuálnych scenárov/čo-ak analýz a kauzálnu analýzu v AI systémoch. Pre túto úlohu preskúmajte niektoré ukážkové [notebooky](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) dashboardu RAI a svoje zistenia prezentujte v práci alebo prezentácii.
+
+## Hodnotiace kritériá
+
+| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
+| --------- | ---------- | ---------- | ------------------ |
+| | Práca alebo powerpointová prezentácia diskutuje o komponentoch dashboardu RAI, notebooku, ktorý bol spustený, a záveroch vyvodených z jeho spustenia | Práca je prezentovaná bez záverov | Práca nie je prezentovaná |
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/9-Real-World/README.md b/translations/sk/9-Real-World/README.md
new file mode 100644
index 00000000..d1829e22
--- /dev/null
+++ b/translations/sk/9-Real-World/README.md
@@ -0,0 +1,32 @@
+
+# Postscript: Skutočné aplikácie klasického strojového učenia
+
+V tejto časti kurzu sa zoznámite s niektorými reálnymi aplikáciami klasického strojového učenia. Prehľadali sme internet, aby sme našli odborné články a štúdie o aplikáciách, ktoré využívajú tieto stratégie, pričom sme sa čo najviac vyhýbali neurónovým sieťam, hlbokému učeniu a umelej inteligencii. Zistite, ako sa strojové učenie používa v obchodných systémoch, ekologických aplikáciách, financiách, umení a kultúre a ďalších oblastiach.
+
+
+
+> Foto od Alexis Fauvet na Unsplash
+
+## Lekcia
+
+1. [Reálne aplikácie strojového učenia](1-Applications/README.md)
+2. [Ladenie modelov strojového učenia pomocou komponentov Responsible AI dashboardu](2-Debugging-ML-Models/README.md)
+
+## Kredity
+
+"Reálne aplikácie" napísal tím ľudí vrátane [Jen Looper](https://twitter.com/jenlooper) a [Ornella Altunyan](https://twitter.com/ornelladotcom).
+
+"Ladenie modelov strojového učenia pomocou komponentov Responsible AI dashboardu" napísala [Ruth Yakubu](https://twitter.com/ruthieyakubu).
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/CODE_OF_CONDUCT.md b/translations/sk/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..30a1f11d
--- /dev/null
+++ b/translations/sk/CODE_OF_CONDUCT.md
@@ -0,0 +1,23 @@
+
+# Kódex správania pre otvorený zdroj od Microsoftu
+
+Tento projekt prijal [Kódex správania pre otvorený zdroj od Microsoftu](https://opensource.microsoft.com/codeofconduct/).
+
+Zdroje:
+
+- [Kódex správania pre otvorený zdroj od Microsoftu](https://opensource.microsoft.com/codeofconduct/)
+- [Často kladené otázky k Kódexu správania](https://opensource.microsoft.com/codeofconduct/faq/)
+- Kontaktujte [opencode@microsoft.com](mailto:opencode@microsoft.com) s otázkami alebo obavami
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/CONTRIBUTING.md b/translations/sk/CONTRIBUTING.md
new file mode 100644
index 00000000..7e2fad64
--- /dev/null
+++ b/translations/sk/CONTRIBUTING.md
@@ -0,0 +1,25 @@
+
+# Prispievanie
+
+Tento projekt víta príspevky a návrhy. Väčšina príspevkov vyžaduje, aby ste súhlasili s Licenčnou zmluvou prispievateľa (CLA), ktorá potvrdzuje, že máte právo a skutočne udeľujete práva na použitie vášho príspevku. Podrobnosti nájdete na https://cla.microsoft.com.
+
+> Dôležité: pri preklade textu v tomto repozitári sa uistite, že nepoužívate strojový preklad. Preklady budú overené komunitou, preto sa dobrovoľne zapojte len do prekladov v jazykoch, v ktorých ste zdatní.
+
+Keď odošlete pull request, CLA-bot automaticky určí, či musíte poskytnúť CLA, a primerane označí PR (napr. štítok, komentár). Jednoducho postupujte podľa pokynov poskytnutých botom. Toto budete musieť urobiť iba raz vo všetkých repozitároch, ktoré používajú našu CLA.
+
+Tento projekt prijal [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+Viac informácií nájdete v [Často kladených otázkach o kódexe správania](https://opensource.microsoft.com/codeofconduct/faq/)
+alebo kontaktujte [opencode@microsoft.com](mailto:opencode@microsoft.com) s akýmikoľvek ďalšími otázkami alebo pripomienkami.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/README.md b/translations/sk/README.md
new file mode 100644
index 00000000..8025863e
--- /dev/null
+++ b/translations/sk/README.md
@@ -0,0 +1,178 @@
+
+[](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
+[](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
+[](http://makeapullrequest.com)
+
+[](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/network/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
+
+### 🌐 Podpora viacerých jazykov
+
+#### Podporované cez GitHub Action (automatizované a vždy aktuálne)
+
+[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](./README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
+
+#### Pripojte sa ku komunite
+
+[](https://discord.gg/kzRShWzttr)
+
+# Strojové učenie pre začiatočníkov - učebný plán
+
+> 🌍 Cestujte po svete a objavujte strojové učenie prostredníctvom kultúr 🌍
+
+Cloud Advocates v spoločnosti Microsoft s radosťou ponúkajú 12-týždňový, 26-lekciový učebný plán o **strojovom učení**. V tomto učebnom pláne sa naučíte o tom, čo sa niekedy nazýva **klasické strojové učenie**, pričom sa primárne používa knižnica Scikit-learn a vyhýba sa hlbokému učeniu, ktoré je pokryté v našom [učebnom pláne AI pre začiatočníkov](https://aka.ms/ai4beginners). Spojte tieto lekcie s naším [učebným plánom Data Science pre začiatočníkov](https://aka.ms/ds4beginners)!
+
+Cestujte s nami po svete, keď aplikujeme tieto klasické techniky na údaje z rôznych oblastí sveta. Každá lekcia obsahuje kvízy pred a po lekcii, písomné pokyny na dokončenie lekcie, riešenie, úlohu a ďalšie. Náš projektovo orientovaný prístup vám umožní učiť sa prostredníctvom tvorby, čo je osvedčený spôsob, ako si nové zručnosti lepšie zapamätať.
+
+**✍️ Srdečné poďakovanie našim autorom** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu a Amy Boyd
+
+**🎨 Poďakovanie patrí aj našim ilustrátorom** Tomomi Imura, Dasani Madipalli a Jen Looper
+
+**🙏 Špeciálne poďakovanie 🙏 našim autorom, recenzentom a prispievateľom obsahu z radov Microsoft Student Ambassador**, najmä Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal
+
+**🤩 Extra vďaka Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi a Vidushi Gupta za naše lekcie v R!**
+
+# Začíname
+
+Postupujte podľa týchto krokov:
+1. **Forknite repozitár**: Kliknite na tlačidlo "Fork" v pravom hornom rohu tejto stránky.
+2. **Klonujte repozitár**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
+
+> [nájdite všetky ďalšie zdroje pre tento kurz v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+**[Študenti](https://aka.ms/student-page)**, na použitie tohto učebného plánu si forknite celý repozitár do svojho vlastného GitHub účtu a dokončite cvičenia sami alebo v skupine:
+
+- Začnite kvízom pred lekciou.
+- Prečítajte si lekciu a dokončite aktivity, pričom sa zastavte a zamyslite pri každej kontrole vedomostí.
+- Pokúste sa vytvoriť projekty pochopením lekcií namiesto spúšťania riešenia kódu; tento kód je však dostupný v priečinkoch `/solution` v každej projektovo orientovanej lekcii.
+- Urobte kvíz po lekcii.
+- Dokončite výzvu.
+- Dokončite úlohu.
+- Po dokončení skupiny lekcií navštívte [Diskusnú tabuľu](https://github.com/microsoft/ML-For-Beginners/discussions) a "učte sa nahlas" vyplnením príslušného PAT rubrika. PAT je nástroj na hodnotenie pokroku, ktorý je rubrikou, ktorú vyplníte na ďalšie prehĺbenie svojho učenia. Môžete tiež reagovať na iné PAT, aby sme sa učili spoločne.
+
+> Na ďalšie štúdium odporúčame sledovať tieto [moduly a učebné cesty Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
+
+**Učitelia**, [pridali sme niekoľko návrhov](for-teachers.md), ako používať tento učebný plán.
+
+---
+
+## Video prehliadky
+
+Niektoré lekcie sú dostupné ako krátke videá. Všetky nájdete priamo v lekciách alebo na [playlistu ML pre začiatočníkov na YouTube kanáli Microsoft Developer](https://aka.ms/ml-beginners-videos) kliknutím na obrázok nižšie.
+
+[](https://aka.ms/ml-beginners-videos)
+
+---
+
+## Spoznajte tím
+
+[](https://youtu.be/Tj1XWrDSYJU)
+
+**Gif od** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
+
+> 🎥 Kliknite na obrázok vyššie pre video o projekte a ľuďoch, ktorí ho vytvorili!
+
+---
+
+## Pedagogika
+
+Pri tvorbe tohto učebného plánu sme si zvolili dve pedagogické zásady: zabezpečiť, aby bol praktický **projektovo orientovaný** a aby obsahoval **časté kvízy**. Okrem toho má tento učebný plán spoločnú **tému**, ktorá mu dodáva súdržnosť.
+
+Zabezpečením, že obsah je v súlade s projektmi, je proces pre študentov pútavejší a zlepšuje sa zapamätanie konceptov. Okrem toho nízko-stresový kvíz pred hodinou nastavuje úmysel študenta na učenie sa témy, zatiaľ čo druhý kvíz po hodine zabezpečuje ďalšie zapamätanie. Tento učebný plán bol navrhnutý tak, aby bol flexibilný a zábavný a mohol byť absolvovaný celý alebo čiastočne. Projekty začínajú malé a postupne sa stávajú zložitejšími na konci 12-týždňového cyklu. Tento učebný plán tiež obsahuje dodatok o reálnych aplikáciách strojového učenia, ktorý môže byť použitý ako extra kredit alebo ako základ pre diskusiu.
+
+> Nájdite náš [Kódex správania](CODE_OF_CONDUCT.md), [Prispievanie](CONTRIBUTING.md) a [Prekladové](TRANSLATIONS.md) pokyny. Vaša konštruktívna spätná väzba je vítaná!
+
+## Každá lekcia obsahuje
+
+- voliteľný sketchnote
+- voliteľné doplnkové video
+- video prehliadku (len niektoré lekcie)
+- [kvíz na zahriatie pred lekciou](https://ff-quizzes.netlify.app/en/ml/)
+- písomnú lekciu
+- pre projektovo orientované lekcie, podrobné návody na vytvorenie projektu
+- kontroly vedomostí
+- výzvu
+- doplnkové čítanie
+- úlohu
+- [kvíz po lekcii](https://ff-quizzes.netlify.app/en/ml/)
+
+> **Poznámka o jazykoch**: Tieto lekcie sú primárne napísané v Pythone, ale mnohé sú dostupné aj v R. Na dokončenie lekcie v R prejdite do priečinka `/solution` a hľadajte lekcie v R. Obsahujú príponu .rmd, ktorá predstavuje **R Markdown** súbor, ktorý možno jednoducho definovať ako vloženie `code chunks` (R alebo iných jazykov) a `YAML header` (ktorý určuje, ako formátovať výstupy ako PDF) do `Markdown dokumentu`. Ako taký slúži ako príkladný autorovací rámec pre dátovú vedu, pretože vám umožňuje kombinovať váš kód, jeho výstup a vaše myšlienky tým, že ich zapíšete do Markdown. Navyše, R Markdown dokumenty môžu byť vykreslené do výstupných formátov ako PDF, HTML alebo Word.
+
+> **Poznámka o kvízoch**: Všetky kvízy sú obsiahnuté v [priečinku Quiz App](../../quiz-app), celkovo 52 kvízov po tri otázky. Sú prepojené priamo z lekcií, ale aplikáciu kvízov je možné spustiť lokálne; postupujte podľa pokynov v priečinku `quiz-app` na lokálne hosťovanie alebo nasadenie na Azure.
+
+| Číslo lekcie | Téma | Skupina lekcií | Ciele učenia | Prepojená lekcia | Autor |
+| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
+| 01 | Úvod do strojového učenia | [Úvod](1-Introduction/README.md) | Naučte sa základné koncepty strojového učenia | [Lekcia](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
+| 02 | História strojového učenia | [Úvod](1-Introduction/README.md) | Naučte sa históriu tohto odboru | [Lekcia](1-Introduction/2-history-of-ML/README.md) | Jen a Amy |
+| 03 | Spravodlivosť a strojové učenie | [Úvod](1-Introduction/README.md) | Aké sú dôležité filozofické otázky týkajúce sa spravodlivosti, ktoré by študenti mali zvážiť pri vytváraní a aplikácii ML modelov? | [Lekcia](1-Introduction/3-fairness/README.md) | Tomomi |
+| 04 | Techniky strojového učenia | [Introduction](1-Introduction/README.md) | Aké techniky používajú výskumníci strojového učenia na vytváranie modelov strojového učenia? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen |
+| 05 | Úvod do regresie | [Regression](2-Regression/README.md) | Začnite s Pythonom a Scikit-learn pre regresné modely |
+
|
+| 16 | Úvod do spracovania prirodzeného jazyka ☕️ | [Natural language processing](6-NLP/README.md) | Naučte sa základy NLP vytvorením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
+| 17 | Bežné úlohy NLP ☕️ | [Natural language processing](6-NLP/README.md) | Prehĺbte svoje znalosti NLP pochopením bežných úloh pri práci s jazykovými štruktúrami | [Python](6-NLP/2-Tasks/README.md) | Stephen |
+| 18 | Preklad a analýza sentimentu ♥️ | [Natural language processing](6-NLP/README.md) | Preklad a analýza sentimentu s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
+| 19 | Romantické hotely v Európe ♥️ | [Natural language processing](6-NLP/README.md) | Analýza sentimentu s recenziami hotelov 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
+| 20 | Romantické hotely v Európe ♥️ | [Natural language processing](6-NLP/README.md) | Analýza sentimentu s recenziami hotelov 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
+| 21 | Úvod do predikcie časových radov | [Time series](7-TimeSeries/README.md) | Úvod do predikcie časových radov | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
+| 22 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov s ARIMA | [Time series](7-TimeSeries/README.md) | Predikcia časových radov s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
+| 23 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov s SVR | [Time series](7-TimeSeries/README.md) | Predikcia časových radov s Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
+| 24 | Úvod do posilneného učenia | [Reinforcement learning](8-Reinforcement/README.md) | Úvod do posilneného učenia s Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
+| 25 | Pomôžte Petrovi vyhnúť sa vlkovi! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Posilnené učenie Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
+| Postscript | Scenáre a aplikácie strojového učenia v reálnom svete | [ML in the Wild](9-Real-World/README.md) | Zaujímavé a odhaľujúce aplikácie klasického strojového učenia v reálnom svete | [Lesson](9-Real-World/1-Applications/README.md) | Tím |
+| Postscript | Ladenie modelov v strojovom učení pomocou RAI dashboardu | [ML in the Wild](9-Real-World/README.md) | Ladenie modelov v strojovom učení pomocou komponentov Responsible AI dashboardu | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
+
+> [nájdite všetky ďalšie zdroje pre tento kurz v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+## Offline prístup
+
+Túto dokumentáciu môžete spustiť offline pomocou [Docsify](https://docsify.js.org/#/). Forknite tento repozitár, [nainštalujte Docsify](https://docsify.js.org/#/quickstart) na svojom lokálnom počítači a potom v koreňovom priečinku tohto repozitára zadajte `docsify serve`. Webová stránka bude spustená na porte 3000 na vašom localhoste: `localhost:3000`.
+
+## PDF
+
+Nájdite PDF verziu učebných osnov s odkazmi [tu](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
+
+
+## 🎒 Ďalšie kurzy
+
+Náš tím vytvára ďalšie kurzy! Pozrite si:
+
+- [Generatívna AI pre začiatočníkov](https://aka.ms/genai-beginners)
+- [Generatívna AI pre začiatočníkov .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
+- [Generatívna AI s JavaScriptom](https://github.com/microsoft/generative-ai-with-javascript)
+- [Generatívna AI s Javou](https://github.com/microsoft/Generative-AI-for-beginners-java)
+- [AI pre začiatočníkov](https://aka.ms/ai-beginners)
+- [Data Science pre začiatočníkov](https://aka.ms/datascience-beginners)
+- [ML pre začiatočníkov](https://aka.ms/ml-beginners)
+- [Kybernetická bezpečnosť pre začiatočníkov](https://github.com/microsoft/Security-101)
+- [Webový vývoj pre začiatočníkov](https://aka.ms/webdev-beginners)
+- [IoT pre začiatočníkov](https://aka.ms/iot-beginners)
+- [XR vývoj pre začiatočníkov](https://github.com/microsoft/xr-development-for-beginners)
+- [Ovládnutie GitHub Copilot pre párové programovanie](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
+- [Ovládnutie GitHub Copilot pre vývojárov C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
+- [Vyberte si vlastné dobrodružstvo s Copilotom](https://github.com/microsoft/CopilotAdventures)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/SECURITY.md b/translations/sk/SECURITY.md
new file mode 100644
index 00000000..2b16217f
--- /dev/null
+++ b/translations/sk/SECURITY.md
@@ -0,0 +1,51 @@
+
+## Bezpečnosť
+
+Microsoft berie bezpečnosť svojich softvérových produktov a služieb vážne, čo zahŕňa všetky repozitáre zdrojového kódu spravované prostredníctvom našich organizácií na GitHube, medzi ktoré patria [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin) a [naše GitHub organizácie](https://opensource.microsoft.com/).
+
+Ak si myslíte, že ste našli bezpečnostnú zraniteľnosť v akomkoľvek repozitári vlastnenom spoločnosťou Microsoft, ktorá spĺňa [definíciu bezpečnostnej zraniteľnosti podľa Microsoftu](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)?WT.mc_id=academic-77952-leestott), nahláste ju nám podľa nižšie uvedených pokynov.
+
+## Nahlasovanie bezpečnostných problémov
+
+**Prosím, nenahlasujte bezpečnostné zraniteľnosti prostredníctvom verejných GitHub issues.**
+
+Namiesto toho ich nahláste Microsoft Security Response Center (MSRC) na [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
+
+Ak uprednostňujete nahlásenie bez prihlásenia, pošlite e-mail na [secure@microsoft.com](mailto:secure@microsoft.com). Ak je to možné, zašifrujte svoju správu pomocou nášho PGP kľúča; stiahnite si ho zo stránky [Microsoft Security Response Center PGP Key](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
+
+Odpoveď by ste mali dostať do 24 hodín. Ak ju z nejakého dôvodu nedostanete, prosím, kontaktujte nás e-mailom, aby ste sa uistili, že sme dostali vašu pôvodnú správu. Ďalšie informácie nájdete na [microsoft.com/msrc](https://www.microsoft.com/msrc).
+
+Prosím, zahrňte požadované informácie uvedené nižšie (v čo najväčšej miere), aby sme lepšie pochopili povahu a rozsah možného problému:
+
+ * Typ problému (napr. pretečenie vyrovnávacej pamäte, SQL injekcia, cross-site scripting, atď.)
+ * Úplné cesty k súborom zdrojového kódu súvisiacim s prejavom problému
+ * Miesto ovplyvneného zdrojového kódu (tag/vetva/commit alebo priamy URL)
+ * Akákoľvek špeciálna konfigurácia potrebná na reprodukciu problému
+ * Krok za krokom inštrukcie na reprodukciu problému
+ * Proof-of-concept alebo exploit kód (ak je to možné)
+ * Dopad problému, vrátane toho, ako by ho mohol útočník využiť
+
+Tieto informácie nám pomôžu rýchlejšie spracovať váš report.
+
+Ak nahlasujete v rámci programu odmien za chyby, podrobnejšie reporty môžu prispieť k vyššej odmene. Prosím, navštívte stránku [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) pre viac informácií o našich aktívnych programoch.
+
+## Preferované jazyky
+
+Preferujeme, aby všetka komunikácia prebiehala v angličtine.
+
+## Politika
+
+Microsoft dodržiava princíp [Koordinovaného zverejňovania zraniteľností](https://www.microsoft.com/en-us/msrc/cvd).
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/SUPPORT.md b/translations/sk/SUPPORT.md
new file mode 100644
index 00000000..74eb2a1c
--- /dev/null
+++ b/translations/sk/SUPPORT.md
@@ -0,0 +1,24 @@
+
+# Podpora
+## Ako nahlásiť problémy a získať pomoc
+
+Tento projekt používa GitHub Issues na sledovanie chýb a požiadaviek na funkcie. Predtým, než nahlásite nový problém, vyhľadajte existujúce problémy, aby ste sa vyhli duplicite. Pre nové problémy nahláste svoju chybu alebo požiadavku na funkciu ako nový problém.
+
+Ak potrebujete pomoc alebo máte otázky týkajúce sa používania tohto projektu, nahláste problém.
+
+## Politika podpory spoločnosti Microsoft
+
+Podpora pre toto úložisko je obmedzená na zdroje uvedené vyššie.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/docs/_sidebar.md b/translations/sk/docs/_sidebar.md
new file mode 100644
index 00000000..f75282ba
--- /dev/null
+++ b/translations/sk/docs/_sidebar.md
@@ -0,0 +1,57 @@
+
+- Úvod
+ - [Úvod do strojového učenia](../1-Introduction/1-intro-to-ML/README.md)
+ - [História strojového učenia](../1-Introduction/2-history-of-ML/README.md)
+ - [Strojové učenie a spravodlivosť](../1-Introduction/3-fairness/README.md)
+ - [Techniky strojového učenia](../1-Introduction/4-techniques-of-ML/README.md)
+
+- Regresia
+ - [Nástroje v praxi](../2-Regression/1-Tools/README.md)
+ - [Dáta](../2-Regression/2-Data/README.md)
+ - [Lineárna regresia](../2-Regression/3-Linear/README.md)
+ - [Logistická regresia](../2-Regression/4-Logistic/README.md)
+
+- Vytvorenie webovej aplikácie
+ - [Webová aplikácia](../3-Web-App/1-Web-App/README.md)
+
+- Klasifikácia
+ - [Úvod do klasifikácie](../4-Classification/1-Introduction/README.md)
+ - [Klasifikátory 1](../4-Classification/2-Classifiers-1/README.md)
+ - [Klasifikátory 2](../4-Classification/3-Classifiers-2/README.md)
+ - [Aplikované strojové učenie](../4-Classification/4-Applied/README.md)
+
+- Zhlukovanie
+ - [Vizualizácia dát](../5-Clustering/1-Visualize/README.md)
+ - [K-Means](../5-Clustering/2-K-Means/README.md)
+
+- NLP
+ - [Úvod do NLP](../6-NLP/1-Introduction-to-NLP/README.md)
+ - [Úlohy NLP](../6-NLP/2-Tasks/README.md)
+ - [Preklad a sentiment](../6-NLP/3-Translation-Sentiment/README.md)
+ - [Recenzie hotelov 1](../6-NLP/4-Hotel-Reviews-1/README.md)
+ - [Recenzie hotelov 2](../6-NLP/5-Hotel-Reviews-2/README.md)
+
+- Predikcia časových radov
+ - [Úvod do predikcie časových radov](../7-TimeSeries/1-Introduction/README.md)
+ - [ARIMA](../7-TimeSeries/2-ARIMA/README.md)
+ - [SVR](../7-TimeSeries/3-SVR/README.md)
+
+- Posilňovacie učenie
+ - [Q-Learning](../8-Reinforcement/1-QLearning/README.md)
+ - [Gym](../8-Reinforcement/2-Gym/README.md)
+
+- Strojové učenie v reálnom svete
+ - [Aplikácie](../9-Real-World/1-Applications/README.md)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/for-teachers.md b/translations/sk/for-teachers.md
new file mode 100644
index 00000000..f31536e1
--- /dev/null
+++ b/translations/sk/for-teachers.md
@@ -0,0 +1,37 @@
+
+## Pre pedagógov
+
+Chceli by ste použiť tento učebný plán vo svojej triede? Neváhajte!
+
+V skutočnosti ho môžete použiť priamo na GitHube pomocou GitHub Classroom.
+
+Na to si musíte vytvoriť fork tohto repozitára. Budete potrebovať vytvoriť repozitár pre každú lekciu, takže budete musieť extrahovať každý priečinok do samostatného repozitára. Týmto spôsobom môže [GitHub Classroom](https://classroom.github.com/classrooms) spracovať každú lekciu samostatne.
+
+Tieto [podrobné pokyny](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) vám poskytnú predstavu, ako nastaviť svoju triedu.
+
+## Použitie repozitára tak, ako je
+
+Ak by ste chceli použiť tento repozitár v jeho aktuálnej podobe, bez použitia GitHub Classroom, je to tiež možné. Budete musieť komunikovať so svojimi študentmi, ktorú lekciu majú spolu prejsť.
+
+V online formáte (Zoom, Teams alebo iné) môžete vytvoriť breakout miestnosti na kvízy a mentorovať študentov, aby sa pripravili na učenie. Potom pozvite študentov na kvízy a nechajte ich odoslať svoje odpovede ako 'issues' v určitom čase. To isté môžete urobiť s úlohami, ak chcete, aby študenti pracovali spolu verejne.
+
+Ak preferujete súkromnejší formát, požiadajte svojich študentov, aby si forkli učebný plán, lekciu po lekcii, do svojich vlastných GitHub repozitárov ako súkromné repozitáre, a dajte vám prístup. Potom môžu dokončiť kvízy a úlohy súkromne a odoslať ich vám prostredníctvom issues vo vašom triednom repozitári.
+
+Existuje mnoho spôsobov, ako to môže fungovať v online triede. Dajte nám prosím vedieť, čo vám najviac vyhovuje!
+
+## Prosím, dajte nám vedieť vaše názory!
+
+Chceme, aby tento učebný plán fungoval pre vás a vašich študentov. Prosím, poskytnite nám [spätnú väzbu](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u).
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/quiz-app/README.md b/translations/sk/quiz-app/README.md
new file mode 100644
index 00000000..27a4057f
--- /dev/null
+++ b/translations/sk/quiz-app/README.md
@@ -0,0 +1,127 @@
+
+# Kvízy
+
+Tieto kvízy sú prednáškové a po prednáškové kvízy pre ML kurikulum na https://aka.ms/ml-beginners
+
+## Nastavenie projektu
+
+```
+npm install
+```
+
+### Kompilácia a automatické načítanie pre vývoj
+
+```
+npm run serve
+```
+
+### Kompilácia a minimalizácia pre produkciu
+
+```
+npm run build
+```
+
+### Kontrola a oprava súborov
+
+```
+npm run lint
+```
+
+### Prispôsobenie konfigurácie
+
+Pozrite si [Referenciu konfigurácie](https://cli.vuejs.org/config/).
+
+Kredity: Vďaka pôvodnej verzii tejto aplikácie na kvízy: https://github.com/arpan45/simple-quiz-vue
+
+## Nasadenie na Azure
+
+Tu je krok-za-krokom návod, ktorý vám pomôže začať:
+
+1. Forknite GitHub repozitár
+Uistite sa, že váš kód statickej webovej aplikácie je vo vašom GitHub repozitári. Forknite tento repozitár.
+
+2. Vytvorte Azure Static Web App
+- Vytvorte si [Azure účet](http://azure.microsoft.com)
+- Prejdite na [Azure portál](https://portal.azure.com)
+- Kliknite na „Create a resource“ a vyhľadajte „Static Web App“.
+- Kliknite na „Create“.
+
+3. Konfigurácia statickej webovej aplikácie
+- Základy:
+ - Subscription: Vyberte vaše Azure predplatné.
+ - Resource Group: Vytvorte novú skupinu zdrojov alebo použite existujúcu.
+ - Name: Zadajte názov pre vašu statickú webovú aplikáciu.
+ - Region: Vyberte región najbližší vašim používateľom.
+
+- #### Detaily nasadenia:
+ - Source: Vyberte „GitHub“.
+ - GitHub Account: Autorizujte Azure na prístup k vášmu GitHub účtu.
+ - Organization: Vyberte vašu GitHub organizáciu.
+ - Repository: Vyberte repozitár obsahujúci vašu statickú webovú aplikáciu.
+ - Branch: Vyberte vetvu, z ktorej chcete nasadzovať.
+
+- #### Detaily zostavenia:
+ - Build Presets: Vyberte framework, na ktorom je vaša aplikácia postavená (napr. React, Angular, Vue, atď.).
+ - App Location: Zadajte priečinok obsahujúci kód vašej aplikácie (napr. / ak je v koreňovom adresári).
+ - API Location: Ak máte API, zadajte jeho umiestnenie (voliteľné).
+ - Output Location: Zadajte priečinok, kde sa generuje výstup zostavenia (napr. build alebo dist).
+
+4. Skontrolujte a vytvorte
+Skontrolujte svoje nastavenia a kliknite na „Create“. Azure nastaví potrebné zdroje a vytvorí GitHub Actions workflow vo vašom repozitári.
+
+5. GitHub Actions Workflow
+Azure automaticky vytvorí GitHub Actions workflow súbor vo vašom repozitári (.github/workflows/azure-static-web-apps-.yml). Tento workflow bude spracovávať proces zostavenia a nasadenia.
+
+6. Monitorovanie nasadenia
+Prejdite na kartu „Actions“ vo vašom GitHub repozitári.
+Mali by ste vidieť bežiaci workflow. Tento workflow zostaví a nasadí vašu statickú webovú aplikáciu na Azure.
+Po dokončení workflowu bude vaša aplikácia dostupná na poskytnutej Azure URL.
+
+### Príklad workflow súboru
+
+Tu je príklad, ako môže vyzerať GitHub Actions workflow súbor:
+name: Azure Static Web Apps CI/CD
+```
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ types: [opened, synchronize, reopened, closed]
+ branches:
+ - main
+
+jobs:
+ build_and_deploy_job:
+ runs-on: ubuntu-latest
+ name: Build and Deploy Job
+ steps:
+ - uses: actions/checkout@v2
+ - name: Build And Deploy
+ id: builddeploy
+ uses: Azure/static-web-apps-deploy@v1
+ with:
+ azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ action: "upload"
+ app_location: "/quiz-app" # App source code path
+ api_location: ""API source code path optional
+ output_location: "dist" #Built app content directory - optional
+```
+
+### Ďalšie zdroje
+- [Dokumentácia Azure Static Web Apps](https://learn.microsoft.com/azure/static-web-apps/getting-started)
+- [Dokumentácia GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/sketchnotes/LICENSE.md b/translations/sk/sketchnotes/LICENSE.md
new file mode 100644
index 00000000..5e0ce9b1
--- /dev/null
+++ b/translations/sk/sketchnotes/LICENSE.md
@@ -0,0 +1,122 @@
+
+Attribution-ShareAlike 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation („Creative Commons“) nie je advokátska kancelária a neposkytuje právne služby ani právne poradenstvo. Distribúcia verejných licencií Creative Commons nevytvára vzťah medzi advokátom a klientom ani iný vzťah. Creative Commons sprístupňuje svoje licencie a súvisiace informácie „tak, ako sú“. Creative Commons neposkytuje žiadne záruky týkajúce sa svojich licencií, akéhokoľvek materiálu licencovaného podľa ich podmienok, ani súvisiacich informácií. Creative Commons sa v maximálnej možnej miere zrieka akejkoľvek zodpovednosti za škody vyplývajúce z ich použitia.
+
+Používanie verejných licencií Creative Commons
+
+Verejné licencie Creative Commons poskytujú štandardný súbor podmienok, ktoré môžu autori a ďalší držitelia práv použiť na zdieľanie pôvodných autorských diel a iného materiálu podliehajúceho autorským právam a určitým ďalším právam uvedeným v licencii nižšie. Nasledujúce úvahy slúžia len na informačné účely, nie sú vyčerpávajúce a nie sú súčasťou našich licencií.
+
+ Úvahy pre poskytovateľov licencií: Naše verejné licencie sú určené na použitie osobami, ktoré sú oprávnené poskytnúť verejnosti povolenie na používanie materiálu spôsobmi, ktoré by inak boli obmedzené autorským právom a určitými ďalšími právami. Naše licencie sú neodvolateľné. Poskytovatelia licencií by si mali prečítať a porozumieť podmienkam licencie, ktorú si vyberú, pred jej použitím. Poskytovatelia licencií by si mali zabezpečiť všetky potrebné práva pred použitím našich licencií, aby verejnosť mohla materiál používať podľa očakávaní. Poskytovatelia licencií by mali jasne označiť akýkoľvek materiál, ktorý nie je predmetom licencie. To zahŕňa iný materiál licencovaný pod CC alebo materiál používaný na základe výnimky alebo obmedzenia autorských práv. Viac úvah pre poskytovateľov licencií: wiki.creativecommons.org/Considerations_for_licensors
+
+ Úvahy pre verejnosť: Použitím jednej z našich verejných licencií poskytovateľ licencie udeľuje verejnosti povolenie používať licencovaný materiál podľa stanovených podmienok. Ak povolenie poskytovateľa licencie nie je potrebné z akéhokoľvek dôvodu – napríklad kvôli výnimke alebo obmedzeniu autorských práv – potom sa takéto použitie neriadi licenciou. Naše licencie udeľujú len povolenia podľa autorských práv a určitých ďalších práv, ktoré je poskytovateľ licencie oprávnený udeliť. Používanie licencovaného materiálu môže byť stále obmedzené z iných dôvodov, vrátane toho, že iní majú autorské práva alebo iné práva k materiálu. Poskytovateľ licencie môže mať špeciálne požiadavky, napríklad žiadosť, aby boli všetky zmeny označené alebo popísané. Hoci to nie je vyžadované našimi licenciami, odporúča sa rešpektovať tieto požiadavky, ak sú rozumné. Viac úvah pre verejnosť: wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution-ShareAlike 4.0 International Public License
+
+Použitím Licencovaných práv (definovaných nižšie) prijímate a súhlasíte s tým, že budete viazaní podmienkami tejto verejnej licencie Creative Commons Attribution-ShareAlike 4.0 International Public License („Verejná licencia“). V rozsahu, v akom môže byť táto Verejná licencia interpretovaná ako zmluva, Vám sú Licencované práva udelené na základe Vášho prijatia týchto podmienok, a Poskytovateľ licencie Vám udeľuje tieto práva na základe výhod, ktoré Poskytovateľ licencie získava sprístupnením Licencovaného materiálu podľa týchto podmienok.
+
+Sekcia 1 – Definície.
+
+ a. Upravený materiál znamená materiál podliehajúci autorským právam a podobným právam, ktorý je odvodený od alebo založený na Licencovanom materiáli a v ktorom je Licencovaný materiál preložený, upravený, usporiadaný, transformovaný alebo inak modifikovaný spôsobom vyžadujúcim povolenie podľa autorských práv a podobných práv držaných Poskytovateľom licencie. Na účely tejto Verejnej licencie, ak je Licencovaný materiál hudobné dielo, výkon alebo zvuková nahrávka, Upravený materiál je vždy vytvorený, keď je Licencovaný materiál synchronizovaný v časovom vzťahu s pohyblivým obrazom.
+
+ b. Licencia adaptéra znamená licenciu, ktorú uplatňujete na svoje autorské práva a podobné práva vo svojich príspevkoch k Upravenému materiálu v súlade s podmienkami tejto Verejnej licencie.
+
+ c. Kompatibilná licencia BY-SA znamená licenciu uvedenú na creativecommons.org/compatiblelicenses, schválenú Creative Commons ako podstatne ekvivalentnú tejto Verejnej licencii.
+
+ d. Autorské práva a podobné práva znamenajú autorské práva a/alebo podobné práva úzko súvisiace s autorskými právami vrátane, bez obmedzenia, výkonu, vysielania, zvukovej nahrávky a práv na ochranu databáz Sui Generis, bez ohľadu na to, ako sú práva označené alebo kategorizované. Na účely tejto Verejnej licencie práva uvedené v Sekcii 2(b)(1)-(2) nie sú autorské práva a podobné práva.
+
+ e. Účinné technologické opatrenia znamenajú opatrenia, ktoré, ak nie sú riadne autorizované, nemôžu byť obídené podľa zákonov plniacich povinnosti podľa článku 11 Zmluvy WIPO o autorských právach prijatej 20. decembra 1996 a/alebo podobných medzinárodných dohôd.
+
+ f. Výnimky a obmedzenia znamenajú spravodlivé použitie, spravodlivé zaobchádzanie a/alebo akúkoľvek inú výnimku alebo obmedzenie autorských práv a podobných práv, ktoré sa vzťahujú na Vaše použitie Licencovaného materiálu.
+
+ g. Prvky licencie znamenajú atribúty licencie uvedené v názve Verejnej licencie Creative Commons. Prvky licencie tejto Verejnej licencie sú Atribúcia a Zdieľanie za rovnakých podmienok.
+
+ h. Licencovaný materiál znamená umelecké alebo literárne dielo, databázu alebo iný materiál, na ktorý Poskytovateľ licencie uplatnil túto Verejnú licenciu.
+
+ i. Licencované práva znamenajú práva udelené Vám podľa podmienok tejto Verejnej licencie, ktoré sú obmedzené na všetky autorské práva a podobné práva, ktoré sa vzťahujú na Vaše použitie Licencovaného materiálu a ktoré má Poskytovateľ licencie oprávnenie licencovať.
+
+ j. Poskytovateľ licencie znamená jednotlivca alebo subjekt udeľujúci práva podľa tejto Verejnej licencie.
+
+ k. Zdieľať znamená sprístupniť materiál verejnosti akýmkoľvek spôsobom alebo procesom, ktorý vyžaduje povolenie podľa Licencovaných práv, ako je reprodukcia, verejné zobrazenie, verejný výkon, distribúcia, šírenie, komunikácia alebo import, a sprístupniť materiál verejnosti vrátane spôsobov, ktoré umožňujú členom verejnosti prístup k materiálu z miesta a v čase, ktorý si individuálne zvolia.
+
+ l. Práva na ochranu databáz Sui Generis znamenajú práva iné ako autorské práva vyplývajúce zo smernice 96/9/ES Európskeho parlamentu a Rady z 11. marca 1996 o právnej ochrane databáz, v znení zmien a/alebo nástupcov, ako aj iné podstatne ekvivalentné práva kdekoľvek na svete.
+
+ m. Vy znamená jednotlivca alebo subjekt uplatňujúci Licencované práva podľa tejto Verejnej licencie. Vaše má zodpovedajúci význam.
+Práva, potom databáza, v ktorej máte práva Sui Generis Database Rights (ale nie jej jednotlivé obsahy), je Adaptovaný materiál,
+
+vrátane na účely oddielu 3(b); a
+c. Musíte dodržiavať podmienky uvedené v oddiele 3(a), ak zdieľate celý alebo podstatnú časť obsahu databázy.
+
+Pre vyhnutie sa pochybnostiam, tento oddiel 4 dopĺňa a nenahrádza vaše povinnosti podľa tejto verejnej licencie, ak licencované práva zahŕňajú iné autorské práva a podobné práva.
+
+---
+
+Oddiel 5 -- Zrieknutie sa záruk a obmedzenie zodpovednosti.
+
+a. POKIAĽ NIE JE LICENCOR SAMOSTATNE INAK ZAVIAZANÝ, V MAXIMÁLNOM MOŽNOM ROZSAHU LICENCOR PONÚKA LICENCOVANÝ MATERIÁL TAK, AKO JE, A TAK, AKO JE DOSTUPNÝ, A NEPOSKYTUJE ŽIADNE VYHLÁSENIA ANI ZÁRUKY AKÉHOKOĽVEK DRUHU TÝKAJÚCE SA LICENCOVANÉHO MATERIÁLU, ČI UŽ VÝSLOVNÉ, IMPLICITNÉ, ZÁKONNÉ ALEBO INÉ. TO ZAHŔŇA, BEZ OBMEDZENIA, ZÁRUKY VLASTNÍCTVA, OBCHODOVATEĽNOSTI, VHODNOSTI NA KONKRÉTNY ÚČEL, NEPORUŠENIA, ABSENCIE SKRYTÝCH ALEBO INÝCH VÁD, PRESNOSTI ALEBO PRÍTOMNOSTI ČI NEPRÍTOMNOSTI CHÝB, ČI UŽ ZNÁMYCH ALEBO OBJAVITEĽNÝCH. TAM, KDE ZRIEKNUTIE SA ZÁRUK NIE JE POVOLENÉ V PLNOM ROZSAHU ALEBO ČIASTOČNE, TOTO ZRIEKNUTIE SA NA VÁS NEMUSÍ VZŤAHOVAŤ.
+
+b. V MAXIMÁLNOM MOŽNOM ROZSAHU LICENCOR V ŽIADNOM PRÍPADE NEBUDE ZODPOVEDNÝ VOČI VÁM NA ZÁKLADE ŽIADNEJ PRÁVNEJ TEÓRIE (VRÁTANE, BEZ OBMEDZENIA, NEDBALOSTI) ALEBO INAK ZA AKÉKOĽVEK PRIAME, ŠPECIÁLNE, NEPRIAME, NÁHODNÉ, NÁSLEDNÉ, TRESTNÉ, EXEMPLÁRNE ALEBO INÉ STRATY, NÁKLADY, VÝDAVKY ALEBO ŠKODY VYPLÝVAJÚCE Z TEJTO VEREJNEJ LICENCIE ALEBO POUŽÍVANIA LICENCOVANÉHO MATERIÁLU, AJ KEĎ BOL LICENCOR UPOZORNENÝ NA MOŽNOSŤ TAKÝCHTO STRÁT, NÁKLADOV, VÝDAVKOV ALEBO ŠKÔD. TAM, KDE OBMEDZENIE ZODPOVEDNOSTI NIE JE POVOLENÉ V PLNOM ROZSAHU ALEBO ČIASTOČNE, TOTO OBMEDZENIE SA NA VÁS NEMUSÍ VZŤAHOVAŤ.
+
+c. Zrieknutie sa záruk a obmedzenie zodpovednosti uvedené vyššie sa má interpretovať spôsobom, ktorý, v maximálnom možnom rozsahu, najviac pripomína absolútne zrieknutie sa a vzdanie sa všetkej zodpovednosti.
+
+---
+
+Oddiel 6 -- Trvanie a ukončenie.
+
+a. Táto verejná licencia platí počas trvania autorských práv a podobných práv licencovaných tu. Ak však nedodržíte túto verejnú licenciu, vaše práva podľa tejto verejnej licencie sa automaticky ukončia.
+
+b. Ak vaše právo používať licencovaný materiál bolo ukončené podľa oddielu 6(a), obnoví sa:
+
+1. automaticky k dátumu, keď bola porušenie napravené, za predpokladu, že bolo napravené do 30 dní od vášho zistenia porušenia; alebo
+2. na základe výslovného obnovenia zo strany Licencora.
+
+Pre vyhnutie sa pochybnostiam, tento oddiel 6(b) neovplyvňuje žiadne právo Licencora hľadať nápravu za vaše porušenia tejto verejnej licencie.
+
+c. Pre vyhnutie sa pochybnostiam, Licencor môže tiež ponúknuť licencovaný materiál za samostatných podmienok alebo zastaviť distribúciu licencovaného materiálu kedykoľvek; avšak, týmto sa táto verejná licencia neukončí.
+
+d. Oddiely 1, 5, 6, 7 a 8 zostávajú v platnosti po ukončení tejto verejnej licencie.
+
+---
+
+Oddiel 7 -- Ďalšie podmienky.
+
+a. Licencor nie je viazaný žiadnymi dodatočnými alebo odlišnými podmienkami komunikovanými vami, pokiaľ nie sú výslovne odsúhlasené.
+
+b. Akékoľvek dohody, porozumenia alebo zmluvy týkajúce sa licencovaného materiálu, ktoré nie sú uvedené tu, sú oddelené od a nezávislé od podmienok tejto verejnej licencie.
+
+---
+
+Oddiel 8 -- Interpretácia.
+
+a. Pre vyhnutie sa pochybnostiam, táto verejná licencia neznižuje, neobmedzuje, neobmedzuje ani neukladá podmienky na akékoľvek použitie licencovaného materiálu, ktoré by mohlo byť zákonne vykonané bez povolenia podľa tejto verejnej licencie.
+
+b. V maximálnom možnom rozsahu, ak je akékoľvek ustanovenie tejto verejnej licencie považované za nevynútiteľné, bude automaticky upravené na minimálny rozsah potrebný na jeho vynútiteľnosť. Ak ustanovenie nemôže byť upravené, bude oddelené od tejto verejnej licencie bez ovplyvnenia vynútiteľnosti zostávajúcich podmienok.
+
+c. Žiadna podmienka tejto verejnej licencie nebude zrušená a žiadne nedodržanie nebude odsúhlasené, pokiaľ to výslovne neodsúhlasí Licencor.
+
+d. Nič v tejto verejnej licencii nepredstavuje ani nemôže byť interpretované ako obmedzenie alebo vzdanie sa akýchkoľvek výsad a imunít, ktoré sa vzťahujú na Licencora alebo vás, vrátane právnych procesov akejkoľvek jurisdikcie alebo autority.
+
+---
+
+=======================================================================
+
+Creative Commons nie je stranou svojich verejných licencií. Napriek tomu, Creative Commons môže zvoliť uplatnenie jednej zo svojich verejných licencií na materiál, ktorý publikuje, a v týchto prípadoch bude považovaný za „Licencora“. Text verejných licencií Creative Commons je venovaný verejnej doméne pod CC0 Public Domain Dedication. Okrem obmedzeného účelu označenia, že materiál je zdieľaný pod verejnou licenciou Creative Commons alebo ako inak povolené politikami Creative Commons publikovanými na creativecommons.org/policies, Creative Commons neautorizuje používanie ochrannej známky „Creative Commons“ alebo akejkoľvek inej ochrannej známky alebo loga Creative Commons bez predchádzajúceho písomného súhlasu, vrátane, bez obmedzenia, v súvislosti s akýmikoľvek neoprávnenými úpravami akýchkoľvek jeho verejných licencií alebo akýchkoľvek iných dohôd, porozumení alebo zmlúv týkajúcich sa používania licencovaného materiálu. Pre vyhnutie sa pochybnostiam, tento odsek nie je súčasťou verejných licencií.
+
+Creative Commons môžete kontaktovať na creativecommons.org.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/sketchnotes/README.md b/translations/sk/sketchnotes/README.md
new file mode 100644
index 00000000..5e46a17e
--- /dev/null
+++ b/translations/sk/sketchnotes/README.md
@@ -0,0 +1,21 @@
+
+Všetky sketchnoty z učebných osnov si môžete stiahnuť tu.
+
+🖨 Pre tlač vo vysokom rozlíšení sú TIFF verzie dostupné v [tomto repozitári](https://github.com/girliemac/a-picture-is-worth-a-1000-words/tree/main/ml/tiff).
+
+🎨 Vytvoril: [Tomomi Imura](https://github.com/girliemac) (Twitter: [@girlie_mac](https://twitter.com/girlie_mac))
+
+[](https://creativecommons.org/licenses/by-sa/4.0/)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sw/1-Introduction/1-intro-to-ML/README.md b/translations/sw/1-Introduction/1-intro-to-ML/README.md
new file mode 100644
index 00000000..d5fcfcde
--- /dev/null
+++ b/translations/sw/1-Introduction/1-intro-to-ML/README.md
@@ -0,0 +1,159 @@
+
+# Utangulizi wa kujifunza kwa mashine
+
+## [Jaribio la awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/6mSx_KJxcHI "ML kwa wanaoanza - Utangulizi wa Kujifunza kwa Mashine kwa Wanaoanza")
+
+> 🎥 Bonyeza picha hapo juu kwa video fupi inayopitia somo hili.
+
+Karibu kwenye kozi hii ya kujifunza kwa mashine ya kawaida kwa wanaoanza! Ikiwa wewe ni mgeni kabisa kwenye mada hii, au mtaalamu wa ML unayetafuta kuimarisha ujuzi wako, tunafurahi kukuona hapa! Tunataka kuunda mahali rafiki pa kuanzia masomo yako ya ML na tungefurahi kutathmini, kujibu, na kuingiza [maoni yako](https://github.com/microsoft/ML-For-Beginners/discussions).
+
+[](https://youtu.be/h0e2HAPTGF4 "Utangulizi wa ML")
+
+> 🎥 Bonyeza picha hapo juu kwa video: John Guttag wa MIT anatambulisha kujifunza kwa mashine
+
+---
+## Kuanza na kujifunza kwa mashine
+
+Kabla ya kuanza na mtaala huu, unahitaji kuwa na kompyuta yako tayari kuendesha daftari za kazi (notebooks) kwa ndani.
+
+- **Sanidi kompyuta yako kwa video hizi**. Tumia viungo vifuatavyo kujifunza [jinsi ya kusakinisha Python](https://youtu.be/CXZYvNRIAKM) kwenye mfumo wako na [kuweka mhariri wa maandishi](https://youtu.be/EU8eayHWoZg) kwa maendeleo.
+- **Jifunze Python**. Inapendekezwa pia kuwa na uelewa wa msingi wa [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), lugha ya programu inayofaa kwa wanasayansi wa data ambayo tunatumia katika kozi hii.
+- **Jifunze Node.js na JavaScript**. Tunatumia JavaScript mara chache katika kozi hii tunapojenga programu za wavuti, kwa hivyo utahitaji kuwa na [node](https://nodejs.org) na [npm](https://www.npmjs.com/) vilivyowekwa, pamoja na [Visual Studio Code](https://code.visualstudio.com/) kwa maendeleo ya Python na JavaScript.
+- **Unda akaunti ya GitHub**. Kwa kuwa umetuona hapa kwenye [GitHub](https://github.com), huenda tayari una akaunti, lakini ikiwa huna, unda moja kisha nakili mtaala huu ili utumie mwenyewe. (Usisite kutupa nyota, pia 😊)
+- **Gundua Scikit-learn**. Jifunze kuhusu [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), seti ya maktaba za ML tunazorejelea katika masomo haya.
+
+---
+## Kujifunza kwa mashine ni nini?
+
+Neno 'kujifunza kwa mashine' ni mojawapo ya maneno maarufu na yanayotumika sana leo. Kuna uwezekano mkubwa kwamba umesikia neno hili angalau mara moja ikiwa una aina fulani ya ufahamu wa teknolojia, bila kujali unafanya kazi katika nyanja gani. Hata hivyo, mitambo ya kujifunza kwa mashine ni fumbo kwa watu wengi. Kwa mwanzilishi wa kujifunza kwa mashine, somo linaweza kuhisi kuwa gumu. Kwa hivyo, ni muhimu kuelewa kujifunza kwa mashine ni nini hasa, na kujifunza kuhusu hilo hatua kwa hatua, kupitia mifano ya vitendo.
+
+---
+## Mzunguko wa umaarufu
+
+
+
+> Google Trends inaonyesha 'mzunguko wa umaarufu' wa hivi karibuni wa neno 'kujifunza kwa mashine'
+
+---
+## Ulimwengu wa fumbo
+
+Tunaishi katika ulimwengu uliojaa mafumbo ya kuvutia. Wanasayansi wakuu kama Stephen Hawking, Albert Einstein, na wengine wengi wamejitolea maisha yao kutafuta taarifa muhimu zinazofichua mafumbo ya dunia inayotuzunguka. Hii ni hali ya binadamu ya kujifunza: mtoto wa binadamu hujifunza mambo mapya na kufichua muundo wa dunia yao mwaka baada ya mwaka wanapokua hadi utu uzima.
+
+---
+## Ubongo wa mtoto
+
+Ubongo wa mtoto na hisia zake hutambua ukweli wa mazingira yao na polepole hujifunza mifumo iliyofichwa ya maisha ambayo husaidia mtoto kuunda sheria za kimantiki za kutambua mifumo iliyojifunza. Mchakato wa kujifunza wa ubongo wa binadamu huwafanya binadamu kuwa kiumbe wa hali ya juu zaidi duniani. Kujifunza kwa kuendelea kwa kugundua mifumo iliyofichwa na kisha kubuni mifumo hiyo hutuwezesha kujiboresha zaidi na zaidi katika maisha yetu yote. Uwezo huu wa kujifunza na kubadilika unahusiana na dhana inayoitwa [ubadilishaji wa ubongo](https://www.simplypsychology.org/brain-plasticity.html). Kwa juu juu, tunaweza kuchora mfanano wa motisha kati ya mchakato wa kujifunza wa ubongo wa binadamu na dhana za kujifunza kwa mashine.
+
+---
+## Ubongo wa binadamu
+
+[Ubongo wa binadamu](https://www.livescience.com/29365-human-brain.html) hutambua mambo kutoka ulimwengu halisi, huchakata taarifa iliyotambuliwa, hufanya maamuzi ya kimantiki, na hufanya vitendo fulani kulingana na hali. Hii ndiyo tunaita tabia ya akili. Tunapopanga mfano wa mchakato wa tabia ya akili kwa mashine, inaitwa akili bandia (AI).
+
+---
+## Baadhi ya istilahi
+
+Ingawa maneno yanaweza kuchanganya, kujifunza kwa mashine (ML) ni sehemu muhimu ya akili bandia. **ML inahusika na kutumia algoriti maalum kufichua taarifa muhimu na kupata mifumo iliyofichwa kutoka kwa data iliyotambuliwa ili kuthibitisha mchakato wa kufanya maamuzi ya kimantiki**.
+
+---
+## AI, ML, Kujifunza kwa Kina
+
+
+
+> Mchoro unaonyesha uhusiano kati ya AI, ML, kujifunza kwa kina, na sayansi ya data. Infografiki na [Jen Looper](https://twitter.com/jenlooper) iliyoongozwa na [mchoro huu](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
+
+---
+## Dhana za kufunika
+
+Katika mtaala huu, tutafunika tu dhana za msingi za kujifunza kwa mashine ambazo mwanzilishi lazima ajue. Tunafunika kile tunachokiita 'kujifunza kwa mashine ya kawaida' hasa kwa kutumia Scikit-learn, maktaba bora ambayo wanafunzi wengi hutumia kujifunza misingi. Ili kuelewa dhana pana za akili bandia au kujifunza kwa kina, maarifa ya msingi ya kujifunza kwa mashine ni muhimu, na kwa hivyo tungependa kuyatoa hapa.
+
+---
+## Katika kozi hii utajifunza:
+
+- dhana za msingi za kujifunza kwa mashine
+- historia ya ML
+- ML na usawa
+- mbinu za ML za regression
+- mbinu za ML za uainishaji
+- mbinu za ML za clustering
+- mbinu za ML za usindikaji wa lugha asilia
+- mbinu za ML za utabiri wa mfululizo wa muda
+- kujifunza kwa kuimarisha
+- matumizi ya ML katika maisha halisi
+
+---
+## Kile ambacho hatutafunika
+
+- kujifunza kwa kina
+- mitandao ya neva
+- AI
+
+Ili kuboresha uzoefu wa kujifunza, tutakwepa ugumu wa mitandao ya neva, 'kujifunza kwa kina' - ujenzi wa mifano yenye tabaka nyingi kwa kutumia mitandao ya neva - na AI, ambayo tutajadili katika mtaala tofauti. Pia tutatoa mtaala wa sayansi ya data unaokuja ili kuzingatia kipengele hicho cha uwanja huu mkubwa.
+
+---
+## Kwa nini ujifunze kujifunza kwa mashine?
+
+Kujifunza kwa mashine, kutoka mtazamo wa mifumo, hufafanuliwa kama uundaji wa mifumo ya kiotomatiki inayoweza kujifunza mifumo iliyofichwa kutoka kwa data ili kusaidia kufanya maamuzi ya akili.
+
+Motisha hii imeongozwa kwa kiasi fulani na jinsi ubongo wa binadamu hujifunza mambo fulani kulingana na data inayotambuliwa kutoka ulimwengu wa nje.
+
+✅ Fikiria kwa dakika moja kwa nini biashara ingependa kujaribu kutumia mikakati ya kujifunza kwa mashine badala ya kuunda injini ya sheria iliyosimbwa moja kwa moja.
+
+---
+## Matumizi ya kujifunza kwa mashine
+
+Matumizi ya kujifunza kwa mashine sasa yako karibu kila mahali, na ni ya kawaida kama data inayozunguka jamii zetu, inayozalishwa na simu zetu za kisasa, vifaa vilivyounganishwa, na mifumo mingine. Kwa kuzingatia uwezo mkubwa wa algoriti za kisasa za kujifunza kwa mashine, watafiti wamekuwa wakichunguza uwezo wake wa kutatua matatizo ya maisha halisi ya pande nyingi na ya taaluma nyingi kwa matokeo mazuri.
+
+---
+## Mifano ya ML inayotumika
+
+**Unaweza kutumia kujifunza kwa mashine kwa njia nyingi**:
+
+- Kutabiri uwezekano wa ugonjwa kutoka historia ya matibabu ya mgonjwa au ripoti.
+- Kutumia data ya hali ya hewa kutabiri matukio ya hali ya hewa.
+- Kuelewa hisia za maandishi.
+- Kugundua habari za uongo ili kuzuia kuenea kwa propaganda.
+
+Fedha, uchumi, sayansi ya dunia, uchunguzi wa anga, uhandisi wa biomedikali, sayansi ya utambuzi, na hata nyanja za binadamu zimechukua kujifunza kwa mashine kutatua matatizo magumu, yanayohitaji uchakataji wa data katika nyanja zao.
+
+---
+## Hitimisho
+
+Kujifunza kwa mashine kunafanya mchakato wa kugundua mifumo kuwa wa kiotomatiki kwa kupata maarifa muhimu kutoka kwa data halisi au iliyotengenezwa. Imethibitisha kuwa yenye thamani kubwa katika biashara, afya, na matumizi ya kifedha, miongoni mwa mengine.
+
+Katika siku za usoni, kuelewa misingi ya kujifunza kwa mashine kutakuwa jambo la lazima kwa watu kutoka nyanja yoyote kutokana na matumizi yake yaliyoenea.
+
+---
+# 🚀 Changamoto
+
+Chora, kwenye karatasi au kwa kutumia programu ya mtandaoni kama [Excalidraw](https://excalidraw.com/), uelewa wako wa tofauti kati ya AI, ML, kujifunza kwa kina, na sayansi ya data. Ongeza mawazo ya matatizo ambayo kila moja ya mbinu hizi ni nzuri katika kutatua.
+
+# [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+# Mapitio na Kujisomea
+
+Ili kujifunza zaidi kuhusu jinsi unavyoweza kufanya kazi na algoriti za ML kwenye wingu, fuata [Njia ya Kujifunza](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
+
+Chukua [Njia ya Kujifunza](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) kuhusu misingi ya ML.
+
+---
+# Kazi
+
+[Pata na uanze](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
diff --git a/translations/sw/1-Introduction/1-intro-to-ML/assignment.md b/translations/sw/1-Introduction/1-intro-to-ML/assignment.md
new file mode 100644
index 00000000..1e1e2701
--- /dev/null
+++ b/translations/sw/1-Introduction/1-intro-to-ML/assignment.md
@@ -0,0 +1,23 @@
+
+# Anza na Kuendelea
+
+## Maelekezo
+
+Katika kazi hii isiyo na alama, unapaswa kuimarisha ujuzi wako wa Python na kuandaa mazingira yako ili yaweze kuendesha daftari za kazi.
+
+Chukua [Njia ya Kujifunza Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), kisha andaa mifumo yako kwa kupitia video hizi za utangulizi:
+
+https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/1-Introduction/2-history-of-ML/README.md b/translations/sw/1-Introduction/2-history-of-ML/README.md
new file mode 100644
index 00000000..30643889
--- /dev/null
+++ b/translations/sw/1-Introduction/2-history-of-ML/README.md
@@ -0,0 +1,164 @@
+
+# Historia ya ujifunzaji wa mashine
+
+
+> Sketchnote na [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/N6wxM4wZ7V0 "ML kwa wanaoanza - Historia ya Ujifunzaji wa Mashine")
+
+> 🎥 Bonyeza picha hapo juu kwa video fupi inayopitia somo hili.
+
+Katika somo hili, tutapitia hatua kuu katika historia ya ujifunzaji wa mashine na akili bandia.
+
+Historia ya akili bandia (AI) kama uwanja inahusiana sana na historia ya ujifunzaji wa mashine, kwani algoriti na maendeleo ya kompyuta yanayosaidia ML yamechangia maendeleo ya AI. Ni muhimu kukumbuka kwamba, ingawa maeneo haya kama nyanja tofauti za uchunguzi yalianza kuimarika katika miaka ya 1950, [ugunduzi wa algoriti, takwimu, hesabu, kompyuta na kiufundi](https://wikipedia.org/wiki/Timeline_of_machine_learning) ulitangulia na kuingiliana na enzi hii. Kwa kweli, watu wamekuwa wakifikiria maswali haya kwa [mamia ya miaka](https://wikipedia.org/wiki/History_of_artificial_intelligence): makala hii inajadili misingi ya kihistoria ya wazo la 'mashine inayofikiria.'
+
+---
+## Ugunduzi maarufu
+
+- 1763, 1812 [Bayes Theorem](https://wikipedia.org/wiki/Bayes%27_theorem) na watangulizi wake. Theoremu hii na matumizi yake yanasaidia katika uamuzi, ikielezea uwezekano wa tukio kutokea kulingana na maarifa ya awali.
+- 1805 [Least Square Theory](https://wikipedia.org/wiki/Least_squares) na mwanahisabati wa Kifaransa Adrien-Marie Legendre. Nadharia hii, ambayo utajifunza katika kitengo chetu cha Regression, husaidia katika kufaa data.
+- 1913 [Markov Chains](https://wikipedia.org/wiki/Markov_chain), iliyopewa jina la mwanahisabati wa Kirusi Andrey Markov, hutumika kuelezea mfululizo wa matukio yanayowezekana kulingana na hali ya awali.
+- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) ni aina ya kiongeza mstari kilichovumbuliwa na mwanasaikolojia wa Marekani Frank Rosenblatt ambacho kimechangia maendeleo ya ujifunzaji wa kina.
+
+---
+
+- 1967 [Nearest Neighbor](https://wikipedia.org/wiki/Nearest_neighbor) ni algoriti iliyoundwa awali kwa ramani ya njia. Katika muktadha wa ML hutumika kutambua mifumo.
+- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) hutumika kufundisha [mitandao ya neva ya feedforward](https://wikipedia.org/wiki/Feedforward_neural_network).
+- 1982 [Recurrent Neural Networks](https://wikipedia.org/wiki/Recurrent_neural_network) ni mitandao ya neva ya bandia inayotokana na mitandao ya neva ya feedforward ambayo huunda grafu za muda.
+
+✅ Fanya utafiti kidogo. Ni tarehe gani nyingine zinazojitokeza kama muhimu katika historia ya ML na AI?
+
+---
+## 1950: Mashine zinazofikiria
+
+Alan Turing, mtu wa kipekee ambaye alichaguliwa [na umma mwaka 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) kama mwanasayansi bora wa karne ya 20, anasifiwa kwa kusaidia kuweka msingi wa wazo la 'mashine inayoweza kufikiria.' Alikabiliana na wakosoaji na hitaji lake mwenyewe la ushahidi wa dhana hii kwa sehemu kwa kuunda [Mtihani wa Turing](https://www.bbc.com/news/technology-18475646), ambao utachunguza katika masomo yetu ya NLP.
+
+---
+## 1956: Mradi wa Utafiti wa Majira ya Joto wa Dartmouth
+
+"Mradi wa Utafiti wa Majira ya Joto wa Dartmouth kuhusu akili bandia ulikuwa tukio muhimu kwa akili bandia kama uwanja," na hapa ndipo neno 'akili bandia' lilianzishwa ([chanzo](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
+
+> Kila kipengele cha ujifunzaji au kipengele kingine chochote cha akili kinaweza kuelezewa kwa usahihi kiasi kwamba mashine inaweza kutengenezwa kuiga.
+
+---
+
+Mtafiti mkuu, profesa wa hisabati John McCarthy, alitarajia "kuendelea kwa msingi wa dhana kwamba kila kipengele cha ujifunzaji au kipengele kingine chochote cha akili kinaweza kuelezewa kwa usahihi kiasi kwamba mashine inaweza kutengenezwa kuiga." Washiriki walijumuisha mtu mwingine maarufu katika uwanja huo, Marvin Minsky.
+
+Warsha hiyo inasifiwa kwa kuanzisha na kuhimiza mijadala kadhaa ikiwa ni pamoja na "kuibuka kwa mbinu za alama, mifumo inayolenga maeneo yaliyopunguzwa (mifumo ya wataalamu wa awali), na mifumo ya kuamua dhidi ya mifumo ya kuiga." ([chanzo](https://wikipedia.org/wiki/Dartmouth_workshop)).
+
+---
+## 1956 - 1974: "Miaka ya dhahabu"
+
+Kuanzia miaka ya 1950 hadi katikati ya miaka ya '70, matumaini yalikuwa makubwa kwamba AI inaweza kutatua matatizo mengi. Mnamo 1967, Marvin Minsky alitangaza kwa kujiamini kwamba "Ndani ya kizazi ... tatizo la kuunda 'akili bandia' litakuwa limetatuliwa kikamilifu." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
+
+Utafiti wa usindikaji wa lugha asilia ulifanikiwa, utafutaji ulirekebishwa na kufanywa kuwa na nguvu zaidi, na dhana ya 'micro-worlds' iliundwa, ambapo kazi rahisi zilifanywa kwa kutumia maagizo ya lugha rahisi.
+
+---
+
+Utafiti ulifadhiliwa vizuri na mashirika ya serikali, maendeleo yalifanywa katika kompyuta na algoriti, na prototypes za mashine za akili zilijengwa. Baadhi ya mashine hizi ni pamoja na:
+
+* [Shakey the robot](https://wikipedia.org/wiki/Shakey_the_robot), ambaye angeweza kujiendesha na kuamua jinsi ya kutekeleza majukumu 'kwa akili'.
+
+ 
+ > Shakey mwaka 1972
+
+---
+
+* Eliza, 'chatterbot' wa awali, angeweza kuzungumza na watu na kutenda kama 'mshauri' wa msingi. Utajifunza zaidi kuhusu Eliza katika masomo ya NLP.
+
+ 
+ > Toleo la Eliza, chatbot
+
+---
+
+* "Blocks world" ilikuwa mfano wa micro-world ambapo vizuizi vinaweza kupangwa na kupangwa, na majaribio ya kufundisha mashine kufanya maamuzi yanaweza kufanyiwa majaribio. Maendeleo yaliyotengenezwa na maktaba kama [SHRDLU](https://wikipedia.org/wiki/SHRDLU) yalisaidia kusukuma usindikaji wa lugha mbele.
+
+ [](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world na SHRDLU")
+
+ > 🎥 Bonyeza picha hapo juu kwa video: Blocks world na SHRDLU
+
+---
+## 1974 - 1980: "Majira ya baridi ya AI"
+
+Kufikia katikati ya miaka ya 1970, ilionekana wazi kwamba ugumu wa kutengeneza 'mashine za akili' ulikuwa umepuuzwa na kwamba ahadi yake, ikizingatiwa nguvu ya kompyuta iliyopo, ilikuwa imezidishwa. Ufadhili ulipungua na imani katika uwanja ilipungua. Baadhi ya masuala yaliyopunguza imani ni pamoja na:
+---
+- **Vikwazo**. Nguvu ya kompyuta ilikuwa ndogo sana.
+- **Mlupuko wa mchanganyiko**. Idadi ya vigezo vilivyohitajika kufundishwa ilikua kwa kasi kadri zaidi ilivyotakiwa kutoka kwa kompyuta, bila mabadiliko sambamba ya nguvu na uwezo wa kompyuta.
+- **Upungufu wa data**. Kulikuwa na upungufu wa data uliokwamisha mchakato wa kupima, kuendeleza, na kuboresha algoriti.
+- **Je, tunauliza maswali sahihi?**. Maswali yenyewe yaliyokuwa yakiulizwa yalianza kuhojiwa. Watafiti walianza kukosolewa kuhusu mbinu zao:
+ - Mitihani ya Turing ilianza kuhojiwa kwa njia, miongoni mwa mawazo mengine, ya 'nadharia ya chumba cha Kichina' ambayo ilidai kwamba, "kuandika programu ya kompyuta ya kidijitali kunaweza kufanya ionekane kuelewa lugha lakini haiwezi kutoa uelewa wa kweli." ([chanzo](https://plato.stanford.edu/entries/chinese-room/))
+ - Maadili ya kuanzisha akili bandia kama "mshauri" ELIZA katika jamii yalipingwa.
+
+---
+
+Wakati huo huo, shule mbalimbali za mawazo ya AI zilianza kuunda. Mgawanyiko ulianzishwa kati ya mazoea ya ["scruffy" vs. "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies). Maabara _scruffy_ zilirekebisha programu kwa masaa hadi zilipata matokeo yanayotakiwa. Maabara _neat_ "zililenga mantiki na utatuzi rasmi wa matatizo". ELIZA na SHRDLU zilikuwa mifumo maarufu ya _scruffy_. Katika miaka ya 1980, wakati mahitaji yalipoibuka ya kufanya mifumo ya ML iweze kurudiwa, mbinu ya _neat_ ilianza kuchukua nafasi ya mbele kwani matokeo yake yanaelezeka zaidi.
+
+---
+## Mifumo ya wataalamu ya miaka ya 1980
+
+Kadri uwanja ulivyokua, manufaa yake kwa biashara yalionekana wazi, na katika miaka ya 1980 ndivyo ilivyokuwa kwa kuenea kwa 'mifumo ya wataalamu'. "Mifumo ya wataalamu ilikuwa miongoni mwa aina za kwanza za mafanikio ya kweli za programu ya akili bandia (AI)." ([chanzo](https://wikipedia.org/wiki/Expert_system)).
+
+Aina hii ya mfumo ni _mseto_, ikijumuisha sehemu ya injini ya sheria inayofafanua mahitaji ya biashara, na injini ya uamuzi inayotumia mfumo wa sheria kutoa ukweli mpya.
+
+Enzi hii pia iliona kuongezeka kwa umakini kwa mitandao ya neva.
+
+---
+## 1987 - 1993: 'Baridi' ya AI
+
+Kuenea kwa vifaa maalum vya mifumo ya wataalamu kulikuwa na athari mbaya ya kuwa maalum sana. Kuibuka kwa kompyuta binafsi pia kulishindana na mifumo hii kubwa, maalum, ya kati. Udemokrasia wa kompyuta ulikuwa umeanza, na hatimaye ulifungua njia kwa mlipuko wa kisasa wa data kubwa.
+
+---
+## 1993 - 2011
+
+Enzi hii iliona zama mpya kwa ML na AI kuwa na uwezo wa kutatua baadhi ya matatizo yaliyosababishwa awali na ukosefu wa data na nguvu ya kompyuta. Kiasi cha data kilianza kuongezeka kwa kasi na kupatikana zaidi, kwa bora na kwa mbaya, hasa na ujio wa simu mahiri karibu mwaka 2007. Nguvu ya kompyuta iliongezeka kwa kasi, na algoriti zilibadilika sambamba. Uwanja ulianza kupata ukomavu kadri siku za zamani za uhuru zilipoanza kuimarika kuwa nidhamu ya kweli.
+
+---
+## Sasa
+
+Leo ujifunzaji wa mashine na AI vinagusa karibu kila sehemu ya maisha yetu. Enzi hii inahitaji uelewa makini wa hatari na athari zinazowezekana za algoriti hizi kwa maisha ya binadamu. Kama Brad Smith wa Microsoft amesema, "Teknolojia ya habari inazua masuala yanayogusa msingi wa ulinzi wa haki za binadamu kama faragha na uhuru wa kujieleza. Masuala haya yanaongeza jukumu kwa kampuni za teknolojia zinazounda bidhaa hizi. Kwa mtazamo wetu, pia yanahitaji udhibiti wa serikali wenye mawazo na maendeleo ya kanuni kuhusu matumizi yanayokubalika" ([chanzo](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
+
+---
+
+Bado haijulikani nini siku zijazo zitakuwa, lakini ni muhimu kuelewa mifumo hii ya kompyuta na programu na algoriti wanazoendesha. Tunatumaini kwamba mtaala huu utakusaidia kupata uelewa bora ili uweze kuamua mwenyewe.
+
+[](https://www.youtube.com/watch?v=mTtDfKgLm54 "Historia ya ujifunzaji wa kina")
+> 🎥 Bonyeza picha hapo juu kwa video: Yann LeCun anajadili historia ya ujifunzaji wa kina katika mhadhara huu
+
+---
+## 🚀Changamoto
+
+Chunguza moja ya matukio haya ya kihistoria na ujifunze zaidi kuhusu watu waliohusika. Kuna wahusika wa kuvutia, na hakuna ugunduzi wa kisayansi uliowahi kuundwa katika utupu wa kitamaduni. Unagundua nini?
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+## Mapitio na Kujisomea
+
+Hapa kuna vitu vya kutazama na kusikiliza:
+
+[Podcast hii ambapo Amy Boyd anajadili mageuzi ya AI](http://runasradio.com/Shows/Show/739)
+
+[](https://www.youtube.com/watch?v=EJt3_bFYKss "Historia ya AI na Amy Boyd")
+
+---
+
+## Kazi
+
+[Unda ratiba ya matukio](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
diff --git a/translations/sw/1-Introduction/2-history-of-ML/assignment.md b/translations/sw/1-Introduction/2-history-of-ML/assignment.md
new file mode 100644
index 00000000..82daf7f6
--- /dev/null
+++ b/translations/sw/1-Introduction/2-history-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Unda ratiba ya matukio
+
+## Maelekezo
+
+Kwa kutumia [repo hii](https://github.com/Digital-Humanities-Toolkit/timeline-builder), unda ratiba ya matukio kuhusu kipengele fulani cha historia ya algorithimu, hisabati, takwimu, AI, au ML, au mchanganyiko wa haya. Unaweza kuzingatia mtu mmoja, wazo moja, au kipindi kirefu cha mawazo. Hakikisha unaongeza vipengele vya multimedia.
+
+## Rubric
+
+| Vigezo | Bora kabisa | Inayokubalika | Inayohitaji Uboreshaji |
+| -------- | --------------------------------------------- | --------------------------------------- | ------------------------------------------------------------- |
+| | Ratiba iliyotolewa imewasilishwa kama ukurasa wa GitHub | Msimbo haujakamilika na haujapelekwa | Ratiba haijakamilika, haijafanyiwa utafiti wa kutosha na haijapelekwa |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/1-Introduction/3-fairness/README.md b/translations/sw/1-Introduction/3-fairness/README.md
new file mode 100644
index 00000000..a65bd42b
--- /dev/null
+++ b/translations/sw/1-Introduction/3-fairness/README.md
@@ -0,0 +1,168 @@
+
+# Kujenga Suluhisho za Kujifunza kwa Mashine kwa AI Inayowajibika
+
+
+> Sketchnote na [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Utangulizi
+
+Katika mtaala huu, utaanza kugundua jinsi kujifunza kwa mashine kunavyoathiri maisha yetu ya kila siku. Hata sasa, mifumo na modeli zinahusika katika kazi za maamuzi ya kila siku, kama vile utambuzi wa afya, idhini ya mikopo, au kugundua udanganyifu. Kwa hivyo, ni muhimu kwamba modeli hizi zifanye kazi vizuri ili kutoa matokeo yanayoweza kuaminika. Kama programu yoyote, mifumo ya AI inaweza kukosa matarajio au kuwa na matokeo yasiyofaa. Ndiyo maana ni muhimu kuelewa na kuelezea tabia ya modeli ya AI.
+
+Fikiria kinachoweza kutokea wakati data unayotumia kujenga modeli hizi inakosa baadhi ya demografia, kama vile rangi, jinsia, mtazamo wa kisiasa, dini, au inawakilisha demografia hizo kwa uwiano usio sawa. Je, kuhusu pale ambapo matokeo ya modeli yanatafsiriwa kupendelea demografia fulani? Matokeo yake ni nini kwa programu? Zaidi ya hayo, nini kinatokea pale ambapo modeli ina matokeo mabaya na inadhuru watu? Nani anawajibika kwa tabia ya mifumo ya AI? Haya ni baadhi ya maswali tutakayochunguza katika mtaala huu.
+
+Katika somo hili, utaweza:
+
+- Kuongeza ufahamu wako kuhusu umuhimu wa haki katika kujifunza kwa mashine na madhara yanayohusiana na haki.
+- Kujifunza kuhusu mazoezi ya kuchunguza hali zisizo za kawaida ili kuhakikisha uaminifu na usalama.
+- Kupata uelewa wa hitaji la kuwawezesha watu wote kwa kubuni mifumo jumuishi.
+- Kuchunguza umuhimu wa kulinda faragha na usalama wa data na watu.
+- Kuelewa umuhimu wa mbinu ya "sanduku la kioo" kuelezea tabia ya modeli za AI.
+- Kuwa makini kuhusu jinsi uwajibikaji ni muhimu katika kujenga uaminifu kwa mifumo ya AI.
+
+## Mahitaji ya awali
+
+Kama mahitaji ya awali, tafadhali chukua Njia ya Kujifunza ya "Kanuni za AI Inayowajibika" na tazama video hapa chini kuhusu mada hii:
+
+Jifunze zaidi kuhusu AI Inayowajibika kwa kufuata [Njia ya Kujifunza](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott)
+
+[](https://youtu.be/dnC8-uUZXSc "Mbinu ya Microsoft kwa AI Inayowajibika")
+
+> 🎥 Bofya picha hapo juu kwa video: Mbinu ya Microsoft kwa AI Inayowajibika
+
+## Haki
+
+Mifumo ya AI inapaswa kuwachukulia watu wote kwa usawa na kuepuka kuathiri makundi yanayofanana kwa njia tofauti. Kwa mfano, mifumo ya AI inapotoa mwongozo kuhusu matibabu ya afya, maombi ya mikopo, au ajira, inapaswa kutoa mapendekezo sawa kwa kila mtu mwenye dalili, hali ya kifedha, au sifa za kitaaluma zinazofanana. Kila mmoja wetu kama binadamu hubeba upendeleo wa kurithi ambao huathiri maamuzi na vitendo vyetu. Upendeleo huu unaweza kuonekana katika data tunayotumia kufundisha mifumo ya AI. Mara nyingine, mabadiliko haya hutokea bila kukusudia. Mara nyingi ni vigumu kujua kwa makusudi wakati unaleta upendeleo katika data.
+
+**“Kutokuwa na haki”** kunajumuisha athari mbaya, au “madhara”, kwa kundi la watu, kama vile wale wanaofafanuliwa kwa misingi ya rangi, jinsia, umri, au hali ya ulemavu. Madhara makuu yanayohusiana na haki yanaweza kuainishwa kama:
+
+- **Ugawaji**, ikiwa jinsia au kabila fulani linapendelewa zaidi ya jingine.
+- **Ubora wa huduma**. Ikiwa unafundisha data kwa hali moja maalum lakini hali halisi ni ngumu zaidi, husababisha huduma isiyofanya kazi vizuri. Kwa mfano, kifaa cha kutambua sabuni ya mkono ambacho hakikuweza kutambua watu wenye ngozi nyeusi. [Rejea](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773)
+- **Kudhalilisha**. Kukosoa na kuweka lebo isiyo ya haki kwa kitu au mtu. Kwa mfano, teknolojia ya kuweka lebo ya picha iliwahi kuweka lebo isiyo sahihi kwa picha za watu wenye ngozi nyeusi kama sokwe.
+- **Uwiano wa juu au wa chini**. Wazo ni kwamba kundi fulani halionekani katika taaluma fulani, na huduma yoyote inayozidi kukuza hali hiyo inachangia madhara.
+- **Kuweka mazoea ya kijinsia**. Kuunganisha kundi fulani na sifa zilizowekwa awali. Kwa mfano, mfumo wa kutafsiri lugha kati ya Kiingereza na Kituruki unaweza kuwa na makosa kutokana na maneno yenye uhusiano wa kijinsia.
+
+
+> Tafsiri kwa Kituruki
+
+
+> Tafsiri kurudi kwa Kiingereza
+
+Wakati wa kubuni na kujaribu mifumo ya AI, tunahitaji kuhakikisha kwamba AI ni ya haki na haijapangiliwa kufanya maamuzi yenye upendeleo au ubaguzi, ambayo binadamu pia wamezuiwa kufanya. Kuhakikisha haki katika AI na kujifunza kwa mashine bado ni changamoto ngumu ya kijamii na kiteknolojia.
+
+### Uaminifu na Usalama
+
+Ili kujenga uaminifu, mifumo ya AI inahitaji kuwa ya kuaminika, salama, na thabiti katika hali za kawaida na zisizotarajiwa. Ni muhimu kujua jinsi mifumo ya AI itakavyotenda katika hali mbalimbali, hasa pale ambapo kuna hali zisizo za kawaida. Wakati wa kujenga suluhisho za AI, kunapaswa kuwa na umakini mkubwa juu ya jinsi ya kushughulikia hali mbalimbali ambazo suluhisho za AI zitakutana nazo. Kwa mfano, gari linalojiendesha lenyewe linahitaji kuweka usalama wa watu kama kipaumbele cha juu. Kwa hivyo, AI inayotumia gari inahitaji kuzingatia hali zote zinazowezekana ambazo gari linaweza kukutana nazo kama usiku, dhoruba za radi au theluji, watoto wakikimbia barabarani, wanyama wa kipenzi, ujenzi wa barabara, n.k. Jinsi mfumo wa AI unavyoweza kushughulikia hali mbalimbali kwa uaminifu na usalama inaonyesha kiwango cha matarajio ambacho mwanasayansi wa data au msanidi wa AI alizingatia wakati wa kubuni au kujaribu mfumo.
+
+> [🎥 Bofya hapa kwa video: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
+
+### Ujumuishi
+
+Mifumo ya AI inapaswa kubuniwa ili kushirikisha na kuwawezesha kila mtu. Wakati wa kubuni na kutekeleza mifumo ya AI, wanasayansi wa data na wasanidi wa AI hutambua na kushughulikia vizuizi vinavyoweza kuwapo katika mfumo ambavyo vinaweza kuwazuia watu bila kukusudia. Kwa mfano, kuna watu bilioni 1 wenye ulemavu duniani kote. Kwa maendeleo ya AI, wanaweza kufikia aina mbalimbali za taarifa na fursa kwa urahisi zaidi katika maisha yao ya kila siku. Kwa kushughulikia vizuizi, inatoa fursa za kuleta ubunifu na kuendeleza bidhaa za AI zenye uzoefu bora ambao unawanufaisha kila mtu.
+
+> [🎥 Bofya hapa kwa video: ujumuishi katika AI](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
+
+### Usalama na Faragha
+
+Mifumo ya AI inapaswa kuwa salama na kuheshimu faragha ya watu. Watu wana imani ndogo katika mifumo inayoweka faragha yao, taarifa zao, au maisha yao hatarini. Wakati wa kufundisha modeli za kujifunza kwa mashine, tunategemea data ili kutoa matokeo bora. Katika kufanya hivyo, asili ya data na uadilifu wake lazima uzingatiwe. Kwa mfano, je, data ilitolewa na mtumiaji au ilipatikana hadharani? Kisha, wakati wa kufanya kazi na data, ni muhimu kuendeleza mifumo ya AI inayoweza kulinda taarifa za siri na kupinga mashambulizi. Kadri AI inavyozidi kuenea, kulinda faragha na kuhakikisha usalama wa taarifa muhimu za kibinafsi na za kibiashara kunazidi kuwa muhimu na changamoto. Masuala ya faragha na usalama wa data yanahitaji umakini wa karibu hasa kwa AI kwa sababu upatikanaji wa data ni muhimu kwa mifumo ya AI kufanya utabiri sahihi na maamuzi yanayojulishwa kuhusu watu.
+
+> [🎥 Bofya hapa kwa video: usalama katika AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Kama sekta, tumepiga hatua kubwa katika Faragha na Usalama, ikichochewa sana na kanuni kama GDPR (Kanuni ya Jumla ya Ulinzi wa Data).
+- Hata hivyo, na mifumo ya AI tunapaswa kutambua mvutano kati ya hitaji la data zaidi ya kibinafsi ili kufanya mifumo kuwa ya kibinafsi na yenye ufanisi – na faragha.
+- Kama ilivyokuwa na kuzaliwa kwa kompyuta zilizounganishwa na mtandao, tunaona pia ongezeko kubwa la idadi ya masuala ya usalama yanayohusiana na AI.
+- Wakati huo huo, tumeona AI ikitumika kuboresha usalama. Kwa mfano, skana nyingi za kisasa za antivirus zinatumia AI heuristics leo.
+- Tunahitaji kuhakikisha kwamba michakato yetu ya Sayansi ya Data inachanganyika kwa usawa na mazoea ya faragha na usalama ya hivi karibuni.
+
+### Uwazi
+
+Mifumo ya AI inapaswa kueleweka. Sehemu muhimu ya uwazi ni kuelezea tabia ya mifumo ya AI na vipengele vyake. Kuboresha uelewa wa mifumo ya AI kunahitaji wadau kuelewa jinsi na kwa nini mifumo hiyo inavyofanya kazi ili waweze kutambua masuala ya utendaji, wasiwasi wa usalama na faragha, upendeleo, mazoea ya kutengwa, au matokeo yasiyotarajiwa. Tunaamini pia kwamba wale wanaotumia mifumo ya AI wanapaswa kuwa waaminifu na wazi kuhusu wakati, kwa nini, na jinsi wanavyochagua kuitumia. Pamoja na mapungufu ya mifumo wanayotumia. Kwa mfano, ikiwa benki inatumia mfumo wa AI kusaidia maamuzi ya mikopo ya watumiaji, ni muhimu kuchunguza matokeo na kuelewa ni data gani inayoshawishi mapendekezo ya mfumo. Serikali zinaanza kudhibiti AI katika sekta mbalimbali, kwa hivyo wanasayansi wa data na mashirika lazima waeleze ikiwa mfumo wa AI unakidhi mahitaji ya udhibiti, hasa pale ambapo kuna matokeo yasiyofaa.
+
+> [🎥 Bofya hapa kwa video: uwazi katika AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Kwa sababu mifumo ya AI ni ngumu sana, ni vigumu kuelewa jinsi inavyofanya kazi na kutafsiri matokeo.
+- Ukosefu huu wa uelewa huathiri jinsi mifumo hii inavyosimamiwa, kuendeshwa, na kuandikwa.
+- Ukosefu huu wa uelewa zaidi huathiri maamuzi yanayofanywa kwa kutumia matokeo ambayo mifumo hii inazalisha.
+
+### Uwajibikaji
+
+Watu wanaobuni na kupeleka mifumo ya AI lazima wawajibike kwa jinsi mifumo yao inavyofanya kazi. Hitaji la uwajibikaji ni muhimu hasa kwa teknolojia nyeti kama utambuzi wa uso. Hivi karibuni, kumekuwa na mahitaji yanayoongezeka ya teknolojia ya utambuzi wa uso, hasa kutoka kwa mashirika ya utekelezaji wa sheria yanayoona uwezo wa teknolojia hiyo katika matumizi kama vile kutafuta watoto waliopotea. Hata hivyo, teknolojia hizi zinaweza kutumiwa na serikali kuweka uhuru wa msingi wa raia wao hatarini kwa, kwa mfano, kuwezesha ufuatiliaji wa mara kwa mara wa watu fulani. Kwa hivyo, wanasayansi wa data na mashirika yanahitaji kuwajibika kwa jinsi mfumo wao wa AI unavyoathiri watu binafsi au jamii.
+
+[](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Mbinu ya Microsoft kwa AI Inayowajibika")
+
+> 🎥 Bofya picha hapo juu kwa video: Onyo kuhusu Ufuatiliaji wa Misa Kupitia Utambuzi wa Uso
+
+Hatimaye, moja ya maswali makubwa kwa kizazi chetu, kama kizazi cha kwanza kinacholeta AI kwa jamii, ni jinsi ya kuhakikisha kwamba kompyuta zitabaki kuwajibika kwa watu na jinsi ya kuhakikisha kwamba watu wanaobuni kompyuta wanabaki kuwajibika kwa kila mtu mwingine.
+
+## Tathmini ya Athari
+
+Kabla ya kufundisha modeli ya kujifunza kwa mashine, ni muhimu kufanya tathmini ya athari ili kuelewa madhumuni ya mfumo wa AI; matumizi yaliyokusudiwa; mahali itakapotumika; na nani atakayeingiliana na mfumo. Hizi ni muhimu kwa mthibitishaji au mjaribu wa mfumo kujua ni mambo gani ya kuzingatia wakati wa kutambua hatari zinazowezekana na matokeo yanayotarajiwa.
+
+Sehemu zifuatazo ni za kuzingatia wakati wa kufanya tathmini ya athari:
+
+* **Athari mbaya kwa watu binafsi**. Kuwa na ufahamu wa vizuizi au mahitaji yoyote, matumizi yasiyoungwa mkono au mapungufu yoyote yanayojulikana yanayozuia utendaji wa mfumo ni muhimu ili kuhakikisha kwamba mfumo hautumiki kwa njia inayoweza kudhuru watu binafsi.
+* **Mahitaji ya data**. Kupata uelewa wa jinsi na wapi mfumo utatumia data husaidia wathibitishaji kuchunguza mahitaji yoyote ya data unayohitaji kuzingatia (mfano, kanuni za GDPR au HIPPA). Zaidi ya hayo, chunguza ikiwa chanzo au wingi wa data ni muhimu kwa mafunzo.
+* **Muhtasari wa athari**. Kusanya orodha ya madhara yanayoweza kutokea kutokana na matumizi ya mfumo. Katika mzunguko wa maisha wa ML, hakiki ikiwa masuala yaliyotambuliwa yamepunguzwa au kushughulikiwa.
+* **Malengo yanayofaa** kwa kila moja ya kanuni sita za msingi. Tathmini ikiwa malengo kutoka kwa kila kanuni yametimizwa na ikiwa kuna mapungufu yoyote.
+
+## Kutatua Hitilafu kwa AI Inayowajibika
+
+Kama vile kutatua hitilafu katika programu, kutatua hitilafu katika mfumo wa AI ni mchakato muhimu wa kutambua na kutatua masuala katika mfumo. Kuna mambo mengi yanayoweza kuathiri modeli kutofanya kazi kama inavyotarajiwa au kwa uwajibikaji. Vipimo vingi vya utendaji wa modeli vya jadi ni jumla za kiasi za utendaji wa modeli, ambazo hazitoshi kuchambua jinsi modeli inavyokiuka kanuni za AI inayowajibika. Zaidi ya hayo, modeli ya kujifunza kwa mashine ni "sanduku jeusi" ambalo hufanya iwe vigumu kuelewa kinachosababisha matokeo yake au kutoa maelezo pale inapokosea. Baadaye katika kozi hii, tutajifunza jinsi ya kutumia dashibodi ya AI Inayowajibika kusaidia kutatua hitilafu katika mifumo ya AI. Dashibodi hutoa zana ya jumla kwa wanasayansi wa data na wasanidi wa AI kufanya:
+
+* **Uchambuzi wa makosa**. Kutambua usambazaji wa makosa ya modeli ambayo yanaweza kuathiri haki au uaminifu wa mfumo.
+* **Muhtasari wa modeli**. Kugundua mahali kuna tofauti katika utendaji wa modeli katika vikundi vya data.
+* **Uchambuzi wa data**. Kuelewa usambazaji wa data na kutambua upendeleo wowote unaoweza kuwapo katika data ambao unaweza kusababisha masuala ya haki, ujumuishi, na uaminifu.
+* **Ufafanuzi wa modeli**. Kuelewa kinachoshawishi au kuathiri utabiri wa modeli. Hii husaidia kuelezea tabia ya modeli, ambayo ni muhimu kwa uwazi na uwajibikaji.
+
+## 🚀 Changamoto
+
+Ili kuzuia madhara yasiletwe mwanzoni, tunapaswa:
+
+- kuwa na utofauti wa asili na mitazamo miongoni mwa watu wanaofanya kazi kwenye mifumo
+- kuwekeza katika seti za data zinazowakilisha utofauti wa jamii yetu
+- kuendeleza mbinu bora katika mzunguko wa maisha wa kujifunza kwa mashine kwa kugundua na kurekebisha AI inayowajibika pale inapojitokeza
+
+Fikiria hali halisi ambapo kutokuwa na uaminifu wa modeli kunadhihirika katika ujenzi na matumizi ya modeli. Nini kingine tunapaswa kuzingatia?
+
+## [Maswali ya baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapit
+Tazama warsha hii ili kuchunguza kwa undani mada hizi:
+
+- Katika harakati za AI yenye uwajibikaji: Kuweka kanuni katika vitendo na Besmira Nushi, Mehrnoosh Sameki, na Amit Sharma
+
+[](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: Mfumo wa chanzo huria kwa ajili ya kujenga AI yenye uwajibikaji")
+
+> 🎥 Bonyeza picha hapo juu kwa video: RAI Toolbox: Mfumo wa chanzo huria kwa ajili ya kujenga AI yenye uwajibikaji na Besmira Nushi, Mehrnoosh Sameki, na Amit Sharma
+
+Pia, soma:
+
+- Kituo cha rasilimali cha RAI cha Microsoft: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Kikundi cha utafiti cha FATE cha Microsoft: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+RAI Toolbox:
+
+- [Hifadhi ya GitHub ya Responsible AI Toolbox](https://github.com/microsoft/responsible-ai-toolbox)
+
+Soma kuhusu zana za Azure Machine Learning kuhakikisha usawa:
+
+- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott)
+
+## Kazi
+
+[Chunguza RAI Toolbox](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au 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
diff --git a/translations/sw/1-Introduction/3-fairness/assignment.md b/translations/sw/1-Introduction/3-fairness/assignment.md
new file mode 100644
index 00000000..821c03ee
--- /dev/null
+++ b/translations/sw/1-Introduction/3-fairness/assignment.md
@@ -0,0 +1,25 @@
+
+# Chunguza Zana ya AI Inayowajibika
+
+## Maelekezo
+
+Katika somo hili ulijifunza kuhusu Zana ya AI Inayowajibika, mradi wa "chanzo huria, unaoendeshwa na jamii kusaidia wanasayansi wa data kuchambua na kuboresha mifumo ya AI." Kwa kazi hii, chunguza moja ya [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) za RAI Toolbox na toa ripoti ya matokeo yako katika karatasi au uwasilishaji.
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inatosha | Inahitaji Kuboresha |
+| ------- | ---------- | -------- | ------------------- |
+| | Karatasi au uwasilishaji wa PowerPoint unawasilishwa ukijadili mifumo ya Fairlearn, notebook iliyotumika, na hitimisho lililotolewa baada ya kuitumia | Karatasi inawasilishwa bila hitimisho | Hakuna karatasi inayowasilishwa |
+
+---
+
+**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
diff --git a/translations/sw/1-Introduction/4-techniques-of-ML/README.md b/translations/sw/1-Introduction/4-techniques-of-ML/README.md
new file mode 100644
index 00000000..71e8a7e9
--- /dev/null
+++ b/translations/sw/1-Introduction/4-techniques-of-ML/README.md
@@ -0,0 +1,132 @@
+
+# Mbinu za Kujifunza 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:
+
+- Kuelewa michakato inayosimamia kujifunza 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/)
+
+[](https://youtu.be/4NGM0U2ZSHU "ML kwa wanaoanza - Mbinu za Kujifunza Mashine")
+
+> 🎥 Bofya picha hapo juu kwa video fupi inayopitia somo hili.
+
+## Utangulizi
+
+Kwa kiwango cha juu, sanaa ya kuunda michakato ya kujifunza mashine (ML) inajumuisha 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.
+
+## Swali 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.
+
+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.
+
+✅ 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.
+
+## 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.
+
+### 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:
+
+- **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.
+
+✅ 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)!
+
+### Vipengele 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.
+
+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.
+
+### Kuchagua kigezo cha kipengele
+
+🎓 **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))
+
+### Onyesha data yako
+
+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)).
+
+### 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.
+
+- **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)).
+
+## 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.
+
+### Amua mbinu 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.
+
+### Fanya mafunzo ya 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').
+
+### 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.
+
+🎓 **Kufaa kwa mfano**
+
+Katika muktadha wa kujifunza mashine, kufaa kwa mfano kunahusu usahihi wa kazi ya msingi ya mfano unavyojaribu kuchambua data ambayo hauijui.
+
+🎓 **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.
+
+
+> Picha ya taarifa na [Jen Looper](https://twitter.com/jenlooper)
+
+## Kuboresha 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).
+
+## 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.
+
+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'.
+
+---
+
+## 🚀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?
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Tafuta mtandaoni mahojiano na wanasayansi wa data wanaojadili kazi zao za kila siku. Hapa kuna [moja](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+
+## Kazi
+
+[Mahojiano na mwanasayansi 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
diff --git a/translations/sw/1-Introduction/4-techniques-of-ML/assignment.md b/translations/sw/1-Introduction/4-techniques-of-ML/assignment.md
new file mode 100644
index 00000000..8bbbbd81
--- /dev/null
+++ b/translations/sw/1-Introduction/4-techniques-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Mahojiano na mtaalamu wa data
+
+## Maelekezo
+
+Katika kampuni yako, kikundi cha watumiaji, au miongoni mwa marafiki au wanafunzi wenzako, zungumza na mtu anayefanya kazi kitaaluma kama mtaalamu wa data. Andika karatasi fupi (maneno 500) kuhusu shughuli zao za kila siku. Je, wao ni wataalamu wa eneo fulani, au wanafanya kazi 'full stack'?
+
+## Rubric
+
+| Vigezo | Bora kabisa | Inayotosheleza | Inahitaji Kuboresha |
+| -------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------- | --------------------- |
+| | Insha ya urefu sahihi, yenye vyanzo vilivyotajwa, inawasilishwa kama faili ya .doc | Insha ina vyanzo visivyo sahihi au ni fupi kuliko urefu unaotakiwa | Hakuna insha iliyowasilishwa |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/1-Introduction/README.md b/translations/sw/1-Introduction/README.md
new file mode 100644
index 00000000..e84738d9
--- /dev/null
+++ b/translations/sw/1-Introduction/README.md
@@ -0,0 +1,37 @@
+
+# Utangulizi wa ujifunzaji wa mashine
+
+Katika sehemu hii ya mtaala, utatambulishwa kwa dhana za msingi zinazounda uwanja wa ujifunzaji wa mashine, ni nini, na utajifunza kuhusu historia yake na mbinu ambazo watafiti hutumia kufanya kazi nayo. Hebu tuchunguze ulimwengu huu mpya wa ML pamoja!
+
+
+> Picha na Bill Oxford kwenye Unsplash
+
+### Masomo
+
+1. [Utangulizi wa ujifunzaji wa mashine](1-intro-to-ML/README.md)
+1. [Historia ya ujifunzaji wa mashine na AI](2-history-of-ML/README.md)
+1. [Haki na ujifunzaji wa mashine](3-fairness/README.md)
+1. [Mbinu za ujifunzaji wa mashine](4-techniques-of-ML/README.md)
+
+### Credits
+
+"Utangulizi wa Ujifunzaji wa Mashine" uliandikwa kwa ♥️ na timu ya watu wakiwemo [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) na [Jen Looper](https://twitter.com/jenlooper)
+
+"Historia ya Ujifunzaji wa Mashine" iliandikwa kwa ♥️ na [Jen Looper](https://twitter.com/jenlooper) na [Amy Boyd](https://twitter.com/AmyKateNicho)
+
+"Haki na Ujifunzaji wa Mashine" iliandikwa kwa ♥️ na [Tomomi Imura](https://twitter.com/girliemac)
+
+"Mbinu za Ujifunzaji wa Mashine" iliandikwa kwa ♥️ na [Jen Looper](https://twitter.com/jenlooper) na [Chris Noring](https://twitter.com/softchris)
+
+---
+
+**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
diff --git a/translations/sw/2-Regression/1-Tools/README.md b/translations/sw/2-Regression/1-Tools/README.md
new file mode 100644
index 00000000..813afa70
--- /dev/null
+++ b/translations/sw/2-Regression/1-Tools/README.md
@@ -0,0 +1,239 @@
+
+# Anza na Python na Scikit-learn kwa mifano ya regression
+
+
+
+> Sketchnote na [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Jaribio la awali la somo](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Somo hili linapatikana kwa R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
+
+## Utangulizi
+
+Katika masomo haya manne, utajifunza jinsi ya kujenga mifano ya regression. Tutajadili matumizi yake hivi karibuni. Lakini kabla ya kuanza, hakikisha una zana sahihi za kuanza mchakato!
+
+Katika somo hili, utajifunza jinsi ya:
+
+- Kuseti kompyuta yako kwa kazi za kujifunza mashine za ndani.
+- Kufanya kazi na Jupyter notebooks.
+- Kutumia Scikit-learn, ikiwa ni pamoja na usakinishaji.
+- Kuchunguza regression ya mstari kupitia zoezi la vitendo.
+
+## Usakinishaji na usanidi
+
+[](https://youtu.be/-DfeD2k2Kj0 "ML kwa wanaoanza - Sanidi zana zako tayari kujenga mifano ya Kujifunza Mashine")
+
+> 🎥 Bonyeza picha hapo juu kwa video fupi ya jinsi ya kusanidi kompyuta yako kwa ML.
+
+1. **Sakinisha Python**. Hakikisha kuwa [Python](https://www.python.org/downloads/) imewekwa kwenye kompyuta yako. Utatumia Python kwa kazi nyingi za sayansi ya data na kujifunza mashine. Mfumo mwingi wa kompyuta tayari una usakinishaji wa Python. Kuna [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) zinazopatikana pia, ili kurahisisha usanidi kwa watumiaji wengine.
+
+ Baadhi ya matumizi ya Python yanahitaji toleo moja la programu, wakati mengine yanahitaji toleo tofauti. Kwa sababu hii, ni muhimu kufanya kazi ndani ya [mazingira ya kawaida](https://docs.python.org/3/library/venv.html).
+
+2. **Sakinisha Visual Studio Code**. Hakikisha kuwa Visual Studio Code imewekwa kwenye kompyuta yako. Fuata maelekezo haya ili [kusakinisha Visual Studio Code](https://code.visualstudio.com/) kwa usakinishaji wa msingi. Utatumia Python ndani ya Visual Studio Code katika kozi hii, kwa hivyo unaweza kutaka kujifunza jinsi ya [kusanidi Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) kwa maendeleo ya Python.
+
+ > Jifunze Python kwa kupitia mkusanyiko huu wa [moduli za kujifunza](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott)
+ >
+ > [](https://youtu.be/yyQM70vi7V8 "Sanidi Python na Visual Studio Code")
+ >
+ > 🎥 Bonyeza picha hapo juu kwa video: kutumia Python ndani ya VS Code.
+
+3. **Sakinisha Scikit-learn**, kwa kufuata [maelekezo haya](https://scikit-learn.org/stable/install.html). Kwa kuwa unahitaji kuhakikisha unatumia Python 3, inashauriwa utumie mazingira ya kawaida. Kumbuka, ikiwa unasakinisha maktaba hii kwenye Mac ya M1, kuna maelekezo maalum kwenye ukurasa uliohusishwa hapo juu.
+
+4. **Sakinisha Jupyter Notebook**. Utahitaji [kusakinisha kifurushi cha Jupyter](https://pypi.org/project/jupyter/).
+
+## Mazingira yako ya kuandika ML
+
+Utatumia **notebooks** kuendeleza msimbo wako wa Python na kuunda mifano ya kujifunza mashine. Aina hii ya faili ni zana ya kawaida kwa wanasayansi wa data, na zinaweza kutambulika kwa kiambishi au kiendelezi `.ipynb`.
+
+Notebooks ni mazingira ya maingiliano yanayomruhusu msanidi programu kuandika msimbo na kuongeza maelezo na kuandika nyaraka kuzunguka msimbo, jambo ambalo ni muhimu sana kwa miradi ya majaribio au utafiti.
+
+[](https://youtu.be/7E-jC8FLA2E "ML kwa wanaoanza - Sanidi Jupyter Notebooks kuanza kujenga mifano ya regression")
+
+> 🎥 Bonyeza picha hapo juu kwa video fupi ya kufanya zoezi hili.
+
+### Zoezi - kufanya kazi na notebook
+
+Katika folda hii, utapata faili _notebook.ipynb_.
+
+1. Fungua _notebook.ipynb_ ndani ya Visual Studio Code.
+
+ Seva ya Jupyter itaanza na Python 3+ imeanzishwa. Utapata maeneo ya notebook ambayo yanaweza `kuendeshwa`, vipande vya msimbo. Unaweza kuendesha kipande cha msimbo kwa kuchagua ikoni inayofanana na kitufe cha kucheza.
+
+2. Chagua ikoni ya `md` na ongeza kidogo cha markdown, na maandishi yafuatayo **# Karibu kwenye notebook yako**.
+
+ Kisha, ongeza msimbo wa Python.
+
+3. Andika **print('hello notebook')** kwenye kipande cha msimbo.
+4. Chagua mshale ili kuendesha msimbo.
+
+ Unapaswa kuona taarifa iliyochapishwa:
+
+ ```output
+ hello notebook
+ ```
+
+
+
+Unaweza kuchanganya msimbo wako na maoni ili kujidokumentisha notebook.
+
+✅ Fikiria kwa dakika moja jinsi mazingira ya kazi ya msanidi programu wa wavuti yanavyotofautiana na yale ya mwanasayansi wa data.
+
+## Kuanzisha na Scikit-learn
+
+Sasa kwa kuwa Python imewekwa katika mazingira yako ya ndani, na unajisikia vizuri na Jupyter notebooks, hebu tujifunze vizuri na Scikit-learn (tamka `sci` kama `science`). Scikit-learn inatoa [API ya kina](https://scikit-learn.org/stable/modules/classes.html#api-ref) kusaidia kufanya kazi za ML.
+
+Kulingana na [tovuti yao](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn ni maktaba ya kujifunza mashine ya chanzo huria inayounga mkono kujifunza kwa usimamizi na bila usimamizi. Pia inatoa zana mbalimbali za kufaa mifano, usindikaji wa data, uteuzi wa mifano na tathmini, na huduma nyingine nyingi."
+
+Katika kozi hii, utatumia Scikit-learn na zana nyingine kujenga mifano ya kujifunza mashine kufanya kile tunachokiita 'kazi za kujifunza mashine za jadi'. Tumeepuka makusudi mitandao ya neva na kujifunza kwa kina, kwani zinashughulikiwa vyema katika mtaala wetu ujao wa 'AI kwa Wanaoanza'.
+
+Scikit-learn inafanya iwe rahisi kujenga mifano na kuipima kwa matumizi. Inalenga hasa kutumia data ya nambari na ina datasets kadhaa zilizotayarishwa tayari kwa matumizi kama zana za kujifunza. Pia inajumuisha mifano iliyojengwa tayari kwa wanafunzi kujaribu. Hebu tuchunguze mchakato wa kupakia data iliyopakiwa awali na kutumia estimator iliyojengwa kwa mfano wa kwanza wa ML na Scikit-learn na data ya msingi.
+
+## Zoezi - notebook yako ya kwanza ya Scikit-learn
+
+> Mafunzo haya yamechochewa na [mfano wa regression ya mstari](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) kwenye tovuti ya Scikit-learn.
+
+[](https://youtu.be/2xkXL5EUpS0 "ML kwa wanaoanza - Mradi wako wa Kwanza wa Regression ya Mstari katika Python")
+
+> 🎥 Bonyeza picha hapo juu kwa video fupi ya kufanya zoezi hili.
+
+Katika faili _notebook.ipynb_ lililohusishwa na somo hili, futa seli zote kwa kubonyeza ikoni ya 'takataka'.
+
+Katika sehemu hii, utatumia dataset ndogo kuhusu ugonjwa wa kisukari ambayo imejengwa ndani ya Scikit-learn kwa madhumuni ya kujifunza. Fikiria kwamba unataka kujaribu matibabu kwa wagonjwa wa kisukari. Mifano ya Kujifunza Mashine inaweza kusaidia kuamua ni wagonjwa gani watakaoitikia matibabu vizuri zaidi, kulingana na mchanganyiko wa vigezo. Hata mfano wa regression ya msingi, unapowekwa kwenye grafu, unaweza kuonyesha taarifa kuhusu vigezo ambavyo vinaweza kusaidia kupanga majaribio yako ya kliniki ya kinadharia.
+
+✅ Kuna aina nyingi za mbinu za regression, na ni ipi unayochagua inategemea jibu unalotafuta. Ikiwa unataka kutabiri urefu unaowezekana wa mtu wa umri fulani, ungetumia regression ya mstari, kwani unatafuta **thamani ya nambari**. Ikiwa unavutiwa na kugundua kama aina ya chakula inapaswa kuzingatiwa kuwa ya mboga au la, unatafuta **ugawaji wa kategoria** kwa hivyo ungetumia regression ya logistic. Utajifunza zaidi kuhusu regression ya logistic baadaye. Fikiria kidogo kuhusu maswali unayoweza kuuliza data, na ni mbinu ipi kati ya hizi itakuwa sahihi zaidi.
+
+Hebu tuanze kazi hii.
+
+### Ingiza maktaba
+
+Kwa kazi hii tutaleta maktaba kadhaa:
+
+- **matplotlib**. Ni [chombo cha kuchora grafu](https://matplotlib.org/) na tutakitumia kuunda grafu ya mstari.
+- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) ni maktaba muhimu kwa kushughulikia data ya nambari katika Python.
+- **sklearn**. Hii ni maktaba ya [Scikit-learn](https://scikit-learn.org/stable/user_guide.html).
+
+Ingiza maktaba kadhaa kusaidia kazi zako.
+
+1. Ongeza imports kwa kuandika msimbo ufuatao:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import numpy as np
+ from sklearn import datasets, linear_model, model_selection
+ ```
+
+ Hapo juu unaleta `matplotlib`, `numpy` na unaleta `datasets`, `linear_model` na `model_selection` kutoka `sklearn`. `model_selection` hutumika kugawanya data katika seti za mafunzo na majaribio.
+
+### Dataset ya kisukari
+
+Dataset ya [kisukari](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) iliyojengwa ndani ina sampuli 442 za data kuhusu kisukari, na vigezo 10 vya sifa, baadhi ya ambazo ni pamoja na:
+
+- umri: umri kwa miaka
+- bmi: index ya uzito wa mwili
+- bp: shinikizo la damu la wastani
+- s1 tc: T-Cells (aina ya seli nyeupe za damu)
+
+✅ Dataset hii inajumuisha dhana ya 'jinsia' kama kigezo cha sifa muhimu kwa utafiti kuhusu kisukari. Dataset nyingi za matibabu zinajumuisha aina hii ya uainishaji wa binary. Fikiria kidogo kuhusu jinsi uainishaji kama huu unaweza kuwatenga sehemu fulani za idadi ya watu kutoka kwa matibabu.
+
+Sasa, pakia data ya X na y.
+
+> 🎓 Kumbuka, hii ni kujifunza kwa usimamizi, na tunahitaji lengo lililopewa jina 'y'.
+
+Katika seli mpya ya msimbo, pakia dataset ya kisukari kwa kuita `load_diabetes()`. Ingizo `return_X_y=True` linaashiria kwamba `X` itakuwa matrix ya data, na `y` itakuwa lengo la regression.
+
+1. Ongeza amri za kuchapisha ili kuonyesha umbo la matrix ya data na kipengele chake cha kwanza:
+
+ ```python
+ X, y = datasets.load_diabetes(return_X_y=True)
+ print(X.shape)
+ print(X[0])
+ ```
+
+ Unachopata kama jibu ni tuple. Unachofanya ni kugawa thamani mbili za kwanza za tuple kwa `X` na `y` mtawalia. Jifunze zaidi [kuhusu tuples](https://wikipedia.org/wiki/Tuple).
+
+ Unaweza kuona kwamba data hii ina vitu 442 vilivyopangwa katika arrays za vipengele 10:
+
+ ```text
+ (442, 10)
+ [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076
+ -0.04340085 -0.00259226 0.01990842 -0.01764613]
+ ```
+
+ ✅ Fikiria kidogo kuhusu uhusiano kati ya data na lengo la regression. Regression ya mstari inatabiri uhusiano kati ya kipengele X na kigezo cha lengo y. Je, unaweza kupata [lengo](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) kwa dataset ya kisukari katika nyaraka? Dataset hii inaonyesha nini, ikizingatiwa lengo?
+
+2. Kisha, chagua sehemu ya dataset hii ili kuweka grafu kwa kuchagua safu ya 3 ya dataset. Unaweza kufanya hivi kwa kutumia operator `:` kuchagua safu zote, na kisha kuchagua safu ya 3 kwa kutumia index (2). Unaweza pia kupanga upya data kuwa array ya 2D - kama inavyohitajika kwa kuweka grafu - kwa kutumia `reshape(n_rows, n_columns)`. Ikiwa moja ya parameter ni -1, kipimo kinacholingana kinahesabiwa kiotomatiki.
+
+ ```python
+ X = X[:, 2]
+ X = X.reshape((-1,1))
+ ```
+
+ ✅ Wakati wowote, chapisha data ili kuangalia umbo lake.
+
+3. Sasa kwa kuwa una data tayari kuwekwa kwenye grafu, unaweza kuona kama mashine inaweza kusaidia kuamua mgawanyiko wa kimantiki kati ya nambari katika dataset hii. Ili kufanya hivyo, unahitaji kugawanya data (X) na lengo (y) katika seti za majaribio na mafunzo. Scikit-learn ina njia rahisi ya kufanya hivi; unaweza kugawanya data yako ya majaribio katika sehemu fulani.
+
+ ```python
+ X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
+ ```
+
+4. Sasa uko tayari kufundisha mfano wako! Pakia mfano wa regression ya mstari na uufundishe na seti zako za mafunzo za X na y kwa kutumia `model.fit()`:
+
+ ```python
+ model = linear_model.LinearRegression()
+ model.fit(X_train, y_train)
+ ```
+
+ ✅ `model.fit()` ni kazi utakayoiona katika maktaba nyingi za ML kama TensorFlow.
+
+5. Kisha, tengeneza utabiri kwa kutumia data ya majaribio, kwa kutumia kazi `predict()`. Hii itatumika kuchora mstari kati ya vikundi vya data.
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+6. Sasa ni wakati wa kuonyesha data kwenye grafu. Matplotlib ni chombo muhimu sana kwa kazi hii. Tengeneza grafu ya alama za X na y za majaribio, na tumia utabiri kuchora mstari mahali panapofaa zaidi, kati ya vikundi vya data vya mfano.
+
+ ```python
+ plt.scatter(X_test, y_test, color='black')
+ plt.plot(X_test, y_pred, color='blue', linewidth=3)
+ plt.xlabel('Scaled BMIs')
+ plt.ylabel('Disease Progression')
+ plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
+ plt.show()
+ ```
+
+ 
+✅ Fikiria kidogo kuhusu kinachoendelea hapa. Mstari wa moja kwa moja unapita katikati ya nukta nyingi ndogo za data, lakini unafanya nini hasa? Je, unaweza kuona jinsi unavyoweza kutumia mstari huu kutabiri mahali ambapo data mpya, ambayo haijawahi kuonekana, inapaswa kutoshea kuhusiana na mhimili wa y wa mchoro? Jaribu kuelezea kwa maneno matumizi ya vitendo ya mfano huu.
+
+Hongera, umeunda mfano wako wa kwanza wa regression ya mstari, umetengeneza utabiri kwa kutumia, na kuonyesha katika mchoro!
+
+---
+## 🚀Changamoto
+
+Chora variable tofauti kutoka kwa dataset hii. Kidokezo: hariri mstari huu: `X = X[:,2]`. Ukiangalia lengo la dataset hii, unaweza kugundua nini kuhusu maendeleo ya ugonjwa wa kisukari?
+
+## [Jaribio baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Katika mafunzo haya, ulifanya kazi na regression rahisi ya mstari, badala ya regression ya univariate au multiple. Soma kidogo kuhusu tofauti kati ya mbinu hizi, au angalia [video hii](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef).
+
+Soma zaidi kuhusu dhana ya regression na fikiria ni aina gani za maswali yanayoweza kujibiwa kwa mbinu hii. Chukua [mafunzo haya](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) ili kuongeza uelewa wako.
+
+## Kazi
+
+[Dataset tofauti](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
diff --git a/translations/sw/2-Regression/1-Tools/assignment.md b/translations/sw/2-Regression/1-Tools/assignment.md
new file mode 100644
index 00000000..7acca4a3
--- /dev/null
+++ b/translations/sw/2-Regression/1-Tools/assignment.md
@@ -0,0 +1,27 @@
+
+# Urejeleaji na Scikit-learn
+
+## Maelekezo
+
+Angalia dataset ya [Linnerud](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) katika Scikit-learn. Dataset hii ina [malengo](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset) mengi: 'Inajumuisha data ya mazoezi matatu na vigezo vitatu vya kisaikolojia vilivyokusanywa kutoka kwa wanaume ishirini wa makamo katika klabu ya mazoezi'.
+
+Kwa maneno yako mwenyewe, eleza jinsi ya kuunda modeli ya Urejeleaji ambayo ingeonyesha uhusiano kati ya ukubwa wa kiuno na idadi ya sit-ups zinazofanywa. Fanya vivyo hivyo kwa vipengele vingine vya dataset hii.
+
+## Rubric
+
+| Kigezo | Kiwango cha Juu | Kiwango cha Kawaida | Kinahitaji Kuboresha |
+| ----------------------------- | ----------------------------------- | ----------------------------- | -------------------------- |
+| Tuma aya ya maelezo | Aya iliyoandikwa vizuri imetumwa | Sentensi chache zimetumwa | Hakuna maelezo yaliyotolewa |
+
+---
+
+**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
diff --git a/translations/sw/2-Regression/1-Tools/solution/Julia/README.md b/translations/sw/2-Regression/1-Tools/solution/Julia/README.md
new file mode 100644
index 00000000..fdd2c2dc
--- /dev/null
+++ b/translations/sw/2-Regression/1-Tools/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/2-Regression/2-Data/README.md b/translations/sw/2-Regression/2-Data/README.md
new file mode 100644
index 00000000..620b0e92
--- /dev/null
+++ b/translations/sw/2-Regression/2-Data/README.md
@@ -0,0 +1,226 @@
+
+# Jenga mfano wa regression kwa kutumia Scikit-learn: andaa na onyesha data
+
+
+
+Infographic na [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Somo hili linapatikana kwa R!](../../../../2-Regression/2-Data/solution/R/lesson_2.html)
+
+## Utangulizi
+
+Sasa kwa kuwa umejiandaa na zana unazohitaji kuanza kujenga mifano ya kujifunza kwa mashine kwa kutumia Scikit-learn, uko tayari kuanza kuuliza maswali kuhusu data yako. Unapofanya kazi na data na kutumia suluhisho za ML, ni muhimu sana kuelewa jinsi ya kuuliza swali sahihi ili kufungua uwezo wa dataset yako ipasavyo.
+
+Katika somo hili, utajifunza:
+
+- Jinsi ya kuandaa data yako kwa ajili ya kujenga mifano.
+- Jinsi ya kutumia Matplotlib kwa uonyeshaji wa data.
+
+## Kuuliza swali sahihi kuhusu data yako
+
+Swali unalotaka kujibiwa litaamua ni aina gani ya algorithimu za ML utatumia. Na ubora wa jibu unalopata utategemea sana asili ya data yako.
+
+Angalia [data](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) iliyotolewa kwa somo hili. Unaweza kufungua faili hili la .csv katika VS Code. Ukilitazama haraka utaona kuwa kuna nafasi tupu na mchanganyiko wa maandishi na data ya nambari. Pia kuna safu ya ajabu inayoitwa 'Package' ambapo data ni mchanganyiko wa 'sacks', 'bins' na maadili mengine. Kwa kweli, data ni ya fujo kidogo.
+
+[](https://youtu.be/5qGjczWTrDQ "ML kwa wanaoanza - Jinsi ya Kuchambua na Kusafisha Dataset")
+
+> 🎥 Bofya picha hapo juu kwa video fupi inayofanya kazi ya kuandaa data kwa somo hili.
+
+Kwa kweli, si kawaida kupewa dataset ambayo iko tayari kabisa kutumika kuunda mfano wa ML moja kwa moja. Katika somo hili, utajifunza jinsi ya kuandaa dataset mbichi kwa kutumia maktaba za kawaida za Python. Pia utajifunza mbinu mbalimbali za kuonyesha data.
+
+## Uchunguzi wa kesi: 'soko la malenge'
+
+Katika folda hii utapata faili la .csv katika folda ya mizizi `data` inayoitwa [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) ambalo lina mistari 1757 ya data kuhusu soko la malenge, limepangwa katika vikundi kulingana na mji. Hii ni data mbichi iliyotolewa kutoka kwa [Ripoti za Kawaida za Masoko ya Mazao Maalum](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) zinazotolewa na Idara ya Kilimo ya Marekani.
+
+### Kuandaa data
+
+Data hii iko katika uwanja wa umma. Inaweza kupakuliwa katika faili nyingi tofauti, kwa kila mji, kutoka tovuti ya USDA. Ili kuepuka faili nyingi tofauti, tumeunganisha data yote ya miji katika lahajedwali moja, kwa hivyo tayari tume _andaa_ data kidogo. Sasa, hebu tuangalie kwa karibu data hiyo.
+
+### Data ya malenge - hitimisho la awali
+
+Unaona nini kuhusu data hii? Tayari umeona kuwa kuna mchanganyiko wa maandishi, nambari, nafasi tupu na maadili ya ajabu ambayo unahitaji kuelewa.
+
+Ni swali gani unaweza kuuliza kuhusu data hii, kwa kutumia mbinu ya Regression? Vipi kuhusu "Tabiri bei ya malenge yanayouzwa katika mwezi fulani". Ukiangalia tena data, kuna mabadiliko unayohitaji kufanya ili kuunda muundo wa data unaohitajika kwa kazi hiyo.
+
+## Zoezi - chunguza data ya malenge
+
+Tutumie [Pandas](https://pandas.pydata.org/), (jina linamaanisha `Python Data Analysis`) chombo chenye manufaa sana kwa kuunda data, kuchambua na kuandaa data hii ya malenge.
+
+### Kwanza, angalia tarehe zinazokosekana
+
+Utahitaji kuchukua hatua za kuangalia tarehe zinazokosekana:
+
+1. Badilisha tarehe kuwa muundo wa mwezi (hizi ni tarehe za Marekani, kwa hivyo muundo ni `MM/DD/YYYY`).
+2. Toa mwezi kwenye safu mpya.
+
+Fungua faili _notebook.ipynb_ katika Visual Studio Code na uingize lahajedwali katika dataframe mpya ya Pandas.
+
+1. Tumia kazi ya `head()` kuona mistari mitano ya kwanza.
+
+ ```python
+ import pandas as pd
+ pumpkins = pd.read_csv('../data/US-pumpkins.csv')
+ pumpkins.head()
+ ```
+
+ ✅ Ni kazi gani ungetumia kuona mistari mitano ya mwisho?
+
+1. Angalia kama kuna data inayokosekana katika dataframe ya sasa:
+
+ ```python
+ pumpkins.isnull().sum()
+ ```
+
+ Kuna data inayokosekana, lakini labda haitakuwa muhimu kwa kazi inayofanyika.
+
+1. Ili kufanya dataframe yako iwe rahisi kufanya kazi nayo, chagua tu safu unazohitaji, kwa kutumia kazi ya `loc` ambayo huchukua kutoka dataframe ya awali kikundi cha mistari (kinachopitishwa kama parameter ya kwanza) na safu (zinazopitishwa kama parameter ya pili). Usemi `:` katika kesi hapa chini unamaanisha "mistari yote".
+
+ ```python
+ columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
+ pumpkins = pumpkins.loc[:, columns_to_select]
+ ```
+
+### Pili, amua bei ya wastani ya malenge
+
+Fikiria jinsi ya kuamua bei ya wastani ya malenge katika mwezi fulani. Ni safu gani ungezichagua kwa kazi hii? Kidokezo: utahitaji safu 3.
+
+Suluhisho: chukua wastani wa safu za `Low Price` na `High Price` kujaza safu mpya ya Price, na ubadilishe safu ya Date kuonyesha tu mwezi. Kwa bahati nzuri, kulingana na ukaguzi hapo juu, hakuna data inayokosekana kwa tarehe au bei.
+
+1. Ili kuhesabu wastani, ongeza msimbo ufuatao:
+
+ ```python
+ price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
+
+ month = pd.DatetimeIndex(pumpkins['Date']).month
+
+ ```
+
+ ✅ Jisikie huru kuchapisha data yoyote unayotaka kuangalia kwa kutumia `print(month)`.
+
+2. Sasa, nakili data yako iliyobadilishwa katika dataframe mpya ya Pandas:
+
+ ```python
+ new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
+ ```
+
+ Kuchapisha dataframe yako kutakuonyesha dataset safi na nadhifu ambayo unaweza kujenga mfano wako mpya wa regression.
+
+### Lakini subiri! Kuna kitu cha ajabu hapa
+
+Ukiangalia safu ya `Package`, malenge yanauzwa katika mipangilio mingi tofauti. Baadhi yanauzwa kwa kipimo cha '1 1/9 bushel', na mengine kwa '1/2 bushel', mengine kwa kila malenge, mengine kwa paundi, na mengine katika masanduku makubwa yenye upana tofauti.
+
+> Malenge yanaonekana kuwa magumu sana kupimwa kwa usawa
+
+Ukiangalia data ya awali, ni ya kuvutia kwamba chochote kilicho na `Unit of Sale` sawa na 'EACH' au 'PER BIN' pia kina aina ya `Package` kwa inchi, kwa bin, au 'each'. Malenge yanaonekana kuwa magumu sana kupimwa kwa usawa, kwa hivyo hebu tuyachuje kwa kuchagua tu malenge yenye neno 'bushel' katika safu yao ya `Package`.
+
+1. Ongeza kichujio juu ya faili, chini ya uingizaji wa awali wa .csv:
+
+ ```python
+ pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
+ ```
+
+ Ukichapisha data sasa, utaona kuwa unapata tu mistari 415 au zaidi ya data inayojumuisha malenge kwa bushel.
+
+### Lakini subiri! Kuna jambo lingine la kufanya
+
+Je, uliona kuwa kiasi cha bushel kinatofautiana kwa kila mstari? Unahitaji kuweka bei sawa ili uonyeshe bei kwa bushel, kwa hivyo fanya hesabu ili kuisawazisha.
+
+1. Ongeza mistari hii baada ya block inayounda dataframe mpya ya malenge:
+
+ ```python
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9)
+
+ new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2)
+ ```
+
+✅ Kulingana na [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), uzito wa bushel unategemea aina ya mazao, kwani ni kipimo cha ujazo. "Bushel ya nyanya, kwa mfano, inapaswa kuwa na uzito wa paundi 56... Majani na mboga huchukua nafasi zaidi na uzito mdogo, kwa hivyo bushel ya spinachi ni paundi 20 tu." Ni ngumu sana! Hebu tusijisumbue na kufanya ubadilishaji wa bushel hadi paundi, na badala yake tuweke bei kwa bushel. Utafiti huu wote wa bushel za malenge, hata hivyo, unaonyesha jinsi ilivyo muhimu sana kuelewa asili ya data yako!
+
+Sasa, unaweza kuchambua bei kwa kipimo kulingana na bushel yao. Ukichapisha data mara moja zaidi, utaona jinsi ilivyowekwa sawa.
+
+✅ Je, uliona kuwa malenge yanayouzwa kwa nusu bushel ni ghali sana? Je, unaweza kuelewa kwa nini? Kidokezo: malenge madogo ni ghali sana kuliko makubwa, labda kwa sababu kuna mengi zaidi yao kwa bushel, ikizingatiwa nafasi isiyotumika inayochukuliwa na malenge moja kubwa la pie.
+
+## Mikakati ya Uonyeshaji
+
+Sehemu ya jukumu la mwanasayansi wa data ni kuonyesha ubora na asili ya data wanayofanya kazi nayo. Ili kufanya hivyo, mara nyingi huunda uonyeshaji wa kuvutia, au grafu, chati, na michoro, inayoonyesha vipengele tofauti vya data. Kwa njia hii, wanaweza kuonyesha kwa macho uhusiano na mapungufu ambayo vinginevyo ni vigumu kugundua.
+
+[](https://youtu.be/SbUkxH6IJo0 "ML kwa wanaoanza - Jinsi ya Kuonyesha Data kwa Matplotlib")
+
+> 🎥 Bofya picha hapo juu kwa video fupi inayofanya kazi ya kuonyesha data kwa somo hili.
+
+Uonyeshaji pia unaweza kusaidia kuamua mbinu ya kujifunza kwa mashine inayofaa zaidi kwa data. Scatterplot inayofuata mstari, kwa mfano, inaonyesha kuwa data ni mgombea mzuri kwa zoezi la regression ya mstari.
+
+Maktaba moja ya uonyeshaji wa data inayofanya kazi vizuri katika daftari za Jupyter ni [Matplotlib](https://matplotlib.org/) (ambayo pia uliiona katika somo la awali).
+
+> Pata uzoefu zaidi na uonyeshaji wa data katika [mafunzo haya](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott).
+
+## Zoezi - jaribu Matplotlib
+
+Jaribu kuunda grafu za msingi kuonyesha dataframe mpya uliyoijenga. Grafu ya mstari wa msingi ingeonyesha nini?
+
+1. Ingiza Matplotlib juu ya faili, chini ya uingizaji wa Pandas:
+
+ ```python
+ import matplotlib.pyplot as plt
+ ```
+
+1. Rerun daftari lote ili kusasisha.
+1. Mwisho wa daftari, ongeza seli kuonyesha data kama sanduku:
+
+ ```python
+ price = new_pumpkins.Price
+ month = new_pumpkins.Month
+ plt.scatter(price, month)
+ plt.show()
+ ```
+
+ 
+
+ Je, grafu hii ni ya manufaa? Je, kuna kitu kinachokushangaza kuhusu grafu hii?
+
+ Haifai sana kwani inachofanya ni kuonyesha data yako kama mchanganyiko wa pointi katika mwezi fulani.
+
+### Ifanye iwe ya manufaa
+
+Ili grafu zionyeshe data ya manufaa, kwa kawaida unahitaji kuunda vikundi vya data kwa namna fulani. Hebu jaribu kuunda grafu ambapo mhimili wa y unaonyesha miezi na data inaonyesha usambazaji wa data.
+
+1. Ongeza seli kuunda grafu ya vikundi vya bar:
+
+ ```python
+ new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
+ plt.ylabel("Pumpkin Price")
+ ```
+
+ 
+
+ Hii ni uonyeshaji wa data wa manufaa zaidi! Inaonekana kuonyesha kuwa bei ya juu zaidi ya malenge hutokea Septemba na Oktoba. Je, hilo linakubaliana na matarajio yako? Kwa nini au kwa nini siyo?
+
+---
+
+## 🚀Changamoto
+
+Chunguza aina tofauti za uonyeshaji ambazo Matplotlib inatoa. Ni aina gani zinazofaa zaidi kwa matatizo ya regression?
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Angalia njia nyingi za kuonyesha data. Tengeneza orodha ya maktaba mbalimbali zinazopatikana na eleza ni zipi bora kwa aina fulani za kazi, kwa mfano uonyeshaji wa 2D dhidi ya uonyeshaji wa 3D. Unagundua nini?
+
+## Kazi
+
+[Kuchunguza uonyeshaji](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
diff --git a/translations/sw/2-Regression/2-Data/assignment.md b/translations/sw/2-Regression/2-Data/assignment.md
new file mode 100644
index 00000000..3b968b5f
--- /dev/null
+++ b/translations/sw/2-Regression/2-Data/assignment.md
@@ -0,0 +1,23 @@
+
+# Kuchunguza Uwasilishaji wa Takwimu
+
+Kuna maktaba kadhaa tofauti zinazopatikana kwa uwasilishaji wa takwimu. Tengeneza uwasilishaji wa takwimu ukitumia data ya Malenge katika somo hili kwa kutumia matplotlib na seaborn kwenye daftari la sampuli. Ni maktaba zipi ni rahisi zaidi kutumia?
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inahitaji Kuboresha |
+| -------- | --------- | -------- | ----------------- |
+| | Daftari linawasilishwa likiwa na uchunguzi/uwasilishaji wa takwimu mbili | Daftari linawasilishwa likiwa na uchunguzi/uwasilishaji wa takwimu moja | Daftari halijawasilishwa |
+
+---
+
+**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, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/2-Regression/2-Data/solution/Julia/README.md b/translations/sw/2-Regression/2-Data/solution/Julia/README.md
new file mode 100644
index 00000000..70256fa4
--- /dev/null
+++ b/translations/sw/2-Regression/2-Data/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/2-Regression/3-Linear/README.md b/translations/sw/2-Regression/3-Linear/README.md
new file mode 100644
index 00000000..7fa73124
--- /dev/null
+++ b/translations/sw/2-Regression/3-Linear/README.md
@@ -0,0 +1,380 @@
+
+# Jenga Mfano wa Regression kwa kutumia Scikit-learn: Njia Nne za Regression
+
+
+> Picha ya habari na [Dasani Madipalli](https://twitter.com/dasani_decoded)
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Somo hili linapatikana kwa R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### Utangulizi
+
+Hadi sasa umechunguza regression ni nini kwa kutumia data ya mfano iliyokusanywa kutoka kwenye seti ya data ya bei ya maboga ambayo tutatumia katika somo hili. Pia umeiona kwa kutumia Matplotlib.
+
+Sasa uko tayari kuchunguza zaidi regression kwa ML. Wakati uonekanaji wa data unakusaidia kuelewa data, nguvu halisi ya Kujifunza kwa Mashine inatokana na _kufundisha mifano_. Mifano hufundishwa kwa data ya kihistoria ili kunasa utegemezi wa data kiotomatiki, na hukuwezesha kutabiri matokeo kwa data mpya ambayo mfano haujawahi kuona hapo awali.
+
+Katika somo hili, utajifunza zaidi kuhusu aina mbili za regression: _regression ya mstari wa kawaida_ na _regression ya polynomial_, pamoja na baadhi ya hesabu zinazohusiana na mbinu hizi. Mifano hiyo itatuwezesha kutabiri bei za maboga kulingana na data tofauti za pembejeo.
+
+[](https://youtu.be/CRxFT8oTDMg "ML kwa wanaoanza - Kuelewa Regression ya Mstari")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa regression ya mstari.
+
+> Katika mtaala huu, tunadhania maarifa ya chini ya hesabu, na tunalenga kuifanya ipatikane kwa wanafunzi kutoka nyanja nyingine, kwa hivyo angalia maelezo, 🧮 maelezo ya hesabu, michoro, na zana nyingine za kujifunza kusaidia ufahamu.
+
+### Mahitaji ya Awali
+
+Unapaswa kuwa na ufahamu sasa wa muundo wa data ya maboga tunayochunguza. Unaweza kuipata ikiwa imepakiwa tayari na kusafishwa katika faili ya _notebook.ipynb_ ya somo hili. Katika faili hiyo, bei ya maboga inaonyeshwa kwa kila busheli katika fremu mpya ya data. Hakikisha unaweza kuendesha daftari hizi katika kernels kwenye Visual Studio Code.
+
+### Maandalizi
+
+Kama ukumbusho, unapakia data hii ili kuuliza maswali kuihusu.
+
+- Ni wakati gani bora wa kununua maboga?
+- Ni bei gani naweza kutarajia kwa sanduku la maboga madogo?
+- Je, ninunue kwa vikapu vya nusu busheli au kwa sanduku la busheli 1 1/9?
+Tuendelee kuchimba data hii.
+
+Katika somo lililopita, uliunda fremu ya data ya Pandas na kuijaza na sehemu ya seti ya data ya awali, ukistandadisha bei kwa busheli. Kwa kufanya hivyo, hata hivyo, uliweza tu kukusanya takriban alama 400 za data na tu kwa miezi ya vuli.
+
+Angalia data ambayo tumepakia tayari katika daftari linaloambatana na somo hili. Data imepakiwa tayari na mchoro wa awali wa alama za kutawanyika umechorwa kuonyesha data ya mwezi. Labda tunaweza kupata maelezo zaidi kuhusu asili ya data kwa kuisafisha zaidi.
+
+## Mstari wa regression ya mstari
+
+Kama ulivyojifunza katika Somo la 1, lengo la zoezi la regression ya mstari ni kuweza kuchora mstari ili:
+
+- **Kuonyesha uhusiano wa vigezo**. Kuonyesha uhusiano kati ya vigezo
+- **Kutabiri matokeo**. Kufanya utabiri sahihi wa mahali ambapo alama mpya ya data ingeangukia kuhusiana na mstari huo.
+
+Ni kawaida kwa **Regression ya Least-Squares** kuchora aina hii ya mstari. Neno 'least-squares' linamaanisha kwamba alama zote za data zinazozunguka mstari wa regression zinasikweya na kisha kuongezwa. Kwa hali bora, jumla hiyo ya mwisho inapaswa kuwa ndogo iwezekanavyo, kwa sababu tunataka idadi ndogo ya makosa, au `least-squares`.
+
+Tunafanya hivyo kwa sababu tunataka kuunda mstari ambao una umbali wa chini kabisa wa jumla kutoka kwa alama zetu zote za data. Pia tunasikweya maneno kabla ya kuyaongeza kwa sababu tunajali ukubwa wake badala ya mwelekeo wake.
+
+> **🧮 Nionyeshe hesabu**
+>
+> Mstari huu, unaoitwa _mstari wa kufaa zaidi_ unaweza kuonyeshwa na [mchoro wa equation](https://en.wikipedia.org/wiki/Simple_linear_regression):
+>
+> ```
+> Y = a + bX
+> ```
+>
+> `X` ni 'kigezo cha kueleza'. `Y` ni 'kigezo tegemezi'. Mteremko wa mstari ni `b` na `a` ni y-intercept, ambayo inahusu thamani ya `Y` wakati `X = 0`.
+>
+>
+>
+> Kwanza, hesabu mteremko `b`. Picha ya habari na [Jen Looper](https://twitter.com/jenlooper)
+>
+> Kwa maneno mengine, na kurejelea swali la awali la data ya maboga: "tabiri bei ya boga kwa busheli kwa mwezi", `X` ingerejelea bei na `Y` ingerejelea mwezi wa mauzo.
+>
+>
+>
+> Hesabu thamani ya Y. Ikiwa unalipa karibu $4, lazima iwe Aprili! Picha ya habari na [Jen Looper](https://twitter.com/jenlooper)
+>
+> Hesabu inayokokotoa mstari lazima ionyeshe mteremko wa mstari, ambao pia unategemea intercept, au mahali ambapo `Y` iko wakati `X = 0`.
+>
+> Unaweza kuona mbinu ya hesabu ya maadili haya kwenye tovuti ya [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Pia tembelea [kikokotoo cha Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) ili kuona jinsi maadili ya namba yanavyoathiri mstari.
+
+## Uwiano
+
+Neno moja zaidi la kuelewa ni **Kipengele cha Uwiano** kati ya vigezo vilivyotolewa vya X na Y. Kwa kutumia mchoro wa kutawanyika, unaweza kuona haraka kipengele hiki. Mchoro wenye alama za data zilizotawanyika kwa mstari mzuri una uwiano wa juu, lakini mchoro wenye alama za data zilizotawanyika kila mahali kati ya X na Y una uwiano wa chini.
+
+Mfano mzuri wa regression ya mstari utakuwa ule wenye Kipengele cha Uwiano cha juu (karibu na 1 kuliko 0) kwa kutumia mbinu ya Least-Squares Regression na mstari wa regression.
+
+✅ Endesha daftari linaloambatana na somo hili na uangalie mchoro wa kutawanyika wa Mwezi hadi Bei. Je, data inayohusisha Mwezi na Bei ya mauzo ya maboga inaonekana kuwa na uwiano wa juu au wa chini, kulingana na tafsiri yako ya kuona ya mchoro wa kutawanyika? Je, hilo linabadilika ikiwa unatumia kipimo cha kina zaidi badala ya `Mwezi`, mfano *siku ya mwaka* (yaani, idadi ya siku tangu mwanzo wa mwaka)?
+
+Katika msimbo hapa chini, tutadhania kuwa tumesafisha data, na kupata fremu ya data inayoitwa `new_pumpkins`, inayofanana na ifuatayo:
+
+ID | Mwezi | SikuYaMwaka | Aina | Jiji | Kifurushi | Bei ya Chini | Bei ya Juu | Bei
+---|-------|-------------|------|------|----------|-------------|------------|-----
+70 | 9 | 267 | AINA YA PIE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | AINA YA PIE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | AINA YA PIE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | AINA YA PIE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | AINA YA PIE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+
+> Msimbo wa kusafisha data unapatikana katika [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Tumefanya hatua zile zile za kusafisha kama katika somo lililopita, na tumekokotoa safu ya `SikuYaMwaka` kwa kutumia usemi ufuatao:
+
+```python
+day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
+```
+
+Sasa kwa kuwa unaelewa hesabu nyuma ya regression ya mstari, hebu tuunde Mfano wa Regression ili kuona kama tunaweza kutabiri ni kifurushi gani cha maboga kitakuwa na bei bora za maboga. Mtu anayenunua maboga kwa ajili ya shamba la likizo la maboga anaweza kutaka taarifa hii ili kuboresha ununuzi wao wa vifurushi vya maboga kwa shamba.
+
+## Kutafuta Uwiano
+
+[](https://youtu.be/uoRq-lW2eQo "ML kwa wanaoanza - Kutafuta Uwiano: Muhimu kwa Regression ya Mstari")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa uwiano.
+
+Kutoka somo lililopita labda umeona kuwa bei ya wastani kwa miezi tofauti inaonekana kama hii:
+
+
+
+Hii inapendekeza kuwa kunaweza kuwa na uwiano, na tunaweza kujaribu kufundisha mfano wa regression ya mstari kutabiri uhusiano kati ya `Mwezi` na `Bei`, au kati ya `SikuYaMwaka` na `Bei`. Hapa kuna mchoro wa kutawanyika unaoonyesha uhusiano wa pili:
+
+
+
+Hebu tuone kama kuna uwiano kwa kutumia kazi ya `corr`:
+
+```python
+print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
+print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
+```
+
+Inaonekana kama uwiano ni mdogo sana, -0.15 kwa `Mwezi` na -0.17 kwa `SikuYaMwezi`, lakini kunaweza kuwa na uhusiano mwingine muhimu. Inaonekana kuna makundi tofauti ya bei yanayohusiana na aina tofauti za maboga. Ili kuthibitisha dhana hii, hebu tuchore kila aina ya boga kwa rangi tofauti. Kwa kupitisha parameter ya `ax` kwa kazi ya kuchora `scatter` tunaweza kuchora alama zote kwenye mchoro mmoja:
+
+```python
+ax=None
+colors = ['red','blue','green','yellow']
+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)
+```
+
+
+
+Uchunguzi wetu unapendekeza kuwa aina ina athari kubwa zaidi kwa bei ya jumla kuliko tarehe halisi ya mauzo. Tunaweza kuona hili kwa mchoro wa bar:
+
+```python
+new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
+```
+
+
+
+Hebu tuzingatie kwa sasa aina moja tu ya maboga, 'aina ya pie', na tuone athari gani tarehe inayo kwa bei:
+
+```python
+pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
+pie_pumpkins.plot.scatter('DayOfYear','Price')
+```
+
+
+Ikiwa sasa tutakokotoa uwiano kati ya `Bei` na `SikuYaMwaka` kwa kutumia kazi ya `corr`, tutapata kitu kama `-0.27` - ambayo inamaanisha kuwa kufundisha mfano wa utabiri kuna mantiki.
+
+> Kabla ya kufundisha mfano wa regression ya mstari, ni muhimu kuhakikisha kuwa data yetu ni safi. Regression ya mstari haifanyi kazi vizuri na thamani zilizokosekana, kwa hivyo inafaa kuondoa seli zote tupu:
+
+```python
+pie_pumpkins.dropna(inplace=True)
+pie_pumpkins.info()
+```
+
+Njia nyingine itakuwa kujaza thamani hizo tupu na thamani za wastani kutoka safu husika.
+
+## Regression Rahisi ya Mstari
+
+[](https://youtu.be/e4c_UP2fSjg "ML kwa wanaoanza - Regression ya Mstari na Polynomial kwa kutumia Scikit-learn")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa regression ya mstari na polynomial.
+
+Ili kufundisha mfano wetu wa Regression ya Mstari, tutatumia maktaba ya **Scikit-learn**.
+
+```python
+from sklearn.linear_model import LinearRegression
+from sklearn.metrics import mean_squared_error
+from sklearn.model_selection import train_test_split
+```
+
+Tunaanza kwa kutenganisha thamani za pembejeo (vipengele) na matokeo yanayotarajiwa (lebo) katika safu tofauti za numpy:
+
+```python
+X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
+y = pie_pumpkins['Price']
+```
+
+> Kumbuka kuwa tulilazimika kufanya `reshape` kwenye data ya pembejeo ili kifurushi cha Regression ya Mstari kiielewe kwa usahihi. Regression ya Mstari inatarajia safu ya 2D kama pembejeo, ambapo kila safu ya safu inalingana na vector ya vipengele vya pembejeo. Katika kesi yetu, kwa kuwa tuna pembejeo moja tu - tunahitaji safu yenye umbo la N×1, ambapo N ni ukubwa wa seti ya data.
+
+Kisha, tunahitaji kugawanya data katika seti za mafunzo na 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)
+```
+
+Hatimaye, kufundisha mfano halisi wa Regression ya Mstari kunachukua mistari miwili tu ya msimbo. Tunafafanua kitu cha `LinearRegression`, na kukifaa kwa data yetu kwa kutumia njia ya `fit`:
+
+```python
+lin_reg = LinearRegression()
+lin_reg.fit(X_train,y_train)
+```
+
+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`. Inamaanisha kuwa bei zinaonekana kushuka kidogo kwa muda, lakini si sana, karibu senti 2 kwa siku. Tunaweza pia kufikia sehemu ya makutano ya regression na mhimili wa Y kwa kutumia `lin_reg.intercept_` - itakuwa karibu `21` katika kesi yetu, ikionyesha bei mwanzoni mwa mwaka.
+
+Ili kuona jinsi mfano wetu ulivyo sahihi, tunaweza kutabiri bei kwenye seti ya data ya majaribio, na kisha kupima jinsi utabiri wetu ulivyo karibu na maadili yanayotarajiwa. Hii inaweza kufanywa kwa kutumia kipimo cha makosa ya mraba wa wastani (MSE), ambacho ni wastani wa tofauti zote zilizopigwa mraba kati ya thamani inayotarajiwa na iliyotabiriwa.
+
+```python
+pred = lin_reg.predict(X_test)
+
+mse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+```
+Kosa letu linaonekana kuwa katika alama 2, ambayo ni ~17%. Sio nzuri sana. Kiashiria kingine cha ubora wa modeli ni **mgawo wa uamuzi**, ambao unaweza kupatikana kwa njia hii:
+
+```python
+score = lin_reg.score(X_train,y_train)
+print('Model determination: ', score)
+```
+Ikiwa thamani ni 0, inamaanisha kuwa modeli haizingatii data ya pembejeo, na inafanya kazi kama *tabiri mbaya zaidi ya mstari*, ambayo ni wastani wa matokeo. Thamani ya 1 inamaanisha tunaweza kutabiri kikamilifu matokeo yote yanayotarajiwa. Katika hali yetu, mgawo uko karibu na 0.06, ambayo ni ya chini sana.
+
+Tunaweza pia kuchora data ya majaribio pamoja na mstari wa regression ili kuona vizuri jinsi regression inavyofanya kazi katika hali yetu:
+
+```python
+plt.scatter(X_test,y_test)
+plt.plot(X_test,pred)
+```
+
+
+
+## Regression ya Polynomial
+
+Aina nyingine ya Regression ya Mstari ni Regression ya Polynomial. Wakati mwingine kuna uhusiano wa mstari kati ya vigezo - kadri malenge yanavyokuwa makubwa kwa ujazo, ndivyo bei inavyoongezeka - lakini wakati mwingine uhusiano huu hauwezi kuchorwa kama ndege au mstari wa moja kwa moja.
+
+✅ Hapa kuna [mifano zaidi](https://online.stat.psu.edu/stat501/lesson/9/9.8) ya data inayoweza kutumia Regression ya Polynomial
+
+Angalia tena uhusiano kati ya Tarehe na Bei. Je, mchoro huu wa alama unaonekana kama unapaswa kuchambuliwa kwa mstari wa moja kwa moja? Je, bei haziwezi kubadilika? Katika hali hii, unaweza kujaribu regression ya polynomial.
+
+✅ Polynomials ni maonyesho ya kihesabu ambayo yanaweza kuwa na moja au zaidi ya vigezo na vipeo
+
+Regression ya Polynomial huunda mstari wa mviringo ili kutosheleza data isiyo ya mstari vizuri zaidi. Katika hali yetu, ikiwa tutajumuisha kigezo cha `DayOfYear` kilichopigwa mraba katika data ya pembejeo, tunapaswa kuwa na uwezo wa kutosheleza data yetu na mviringo wa parabola, ambao utakuwa na kiwango cha chini katika sehemu 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 hali yetu, tutaunda pipeline ambayo kwanza inaongeza vipengele vya polynomial kwenye modeli yetu, kisha inafundisha regression:
+
+```python
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.pipeline import make_pipeline
+
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+
+pipeline.fit(X_train,y_train)
+```
+
+Kutumia `PolynomialFeatures(2)` inamaanisha kuwa tutajumuisha polynomials zote za kiwango cha pili kutoka data ya pembejeo. Katika hali yetu, itamaanisha tu `DayOfYear`2, lakini kwa vigezo viwili vya pembejeo X na Y, hii itaongeza X2, XY na Y2. Tunaweza pia kutumia polynomials za kiwango cha juu ikiwa tunataka.
+
+Pipelines zinaweza kutumika kwa njia sawa na kitu cha awali cha `LinearRegression`, yaani tunaweza `fit` pipeline, kisha kutumia `predict` kupata matokeo ya utabiri. Hapa kuna mchoro unaoonyesha data ya majaribio, na mstari wa takriban:
+
+
+
+Kwa kutumia Regression ya Polynomial, tunaweza kupata MSE ya chini kidogo na mgawo wa uamuzi wa juu zaidi, lakini sio kwa kiasi kikubwa. Tunahitaji kuzingatia vipengele vingine!
+
+> Unaweza kuona kuwa bei za chini kabisa za malenge zinapatikana karibu na Halloween. Unaweza kuelezea hili vipi?
+
+🎃 Hongera, umekamilisha modeli inayoweza kusaidia kutabiri bei ya malenge ya pai. Unaweza kurudia utaratibu huo kwa aina zote za malenge, lakini hilo litakuwa kazi ya kuchosha. Sasa hebu tujifunze jinsi ya kuzingatia aina ya malenge katika modeli yetu!
+
+## Vipengele vya Kategoria
+
+Katika ulimwengu bora, tunataka kuwa na uwezo wa kutabiri bei za aina tofauti za malenge kwa kutumia modeli moja. Hata hivyo, safu ya `Variety` ni tofauti kidogo na safu kama `Month`, kwa sababu ina thamani zisizo za nambari. Safu kama hizi zinaitwa **kategoria**.
+
+[](https://youtu.be/DYGliioIAE0 "ML kwa wanaoanza - Utabiri wa Vipengele vya Kategoria na Regression ya Mstari")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa kutumia vipengele vya kategoria.
+
+Hapa unaweza kuona jinsi bei ya wastani inavyotegemea aina:
+
+
+
+Ili kuzingatia aina, tunahitaji kwanza kuibadilisha kuwa fomu ya nambari, au **kuencode**. Kuna njia kadhaa tunazoweza kutumia:
+
+* **Numeric encoding** rahisi itajenga jedwali la aina tofauti, kisha kubadilisha jina la aina kwa index katika jedwali hilo. Hii sio wazo bora kwa regression ya mstari, kwa sababu regression ya mstari inachukua thamani halisi ya nambari ya index, na kuiongeza kwenye matokeo, ikizidisha kwa kipengele fulani. Katika hali yetu, uhusiano kati ya nambari ya index na bei ni wazi kuwa sio wa mstari, hata kama tunahakikisha kuwa indices zimepangwa kwa njia maalum.
+* **One-hot encoding** itabadilisha safu ya `Variety` kuwa safu 4 tofauti, moja kwa kila aina. Kila safu itakuwa na `1` ikiwa safu husika ni ya aina fulani, na `0` vinginevyo. Hii inamaanisha kutakuwa na coefficients nne katika regression ya mstari, moja kwa kila aina ya malenge, inayohusika na "bei ya kuanzia" (au "bei ya ziada") kwa aina hiyo maalum.
+
+Hapa kuna jinsi tunaweza kufanya one-hot encoding kwa aina:
+
+```python
+pd.get_dummies(new_pumpkins['Variety'])
+```
+
+ ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
+----|-----------|-----------|--------------------------|----------
+70 | 0 | 0 | 0 | 1
+71 | 0 | 0 | 0 | 1
+... | ... | ... | ... | ...
+1738 | 0 | 1 | 0 | 0
+1739 | 0 | 1 | 0 | 0
+1740 | 0 | 1 | 0 | 0
+1741 | 0 | 1 | 0 | 0
+1742 | 0 | 1 | 0 | 0
+
+Ili kufundisha regression ya mstari kwa kutumia aina iliyofanyiwa one-hot encoding kama pembejeo, tunahitaji tu kuanzisha data ya `X` na `y` kwa usahihi:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety'])
+y = new_pumpkins['Price']
+```
+
+Sehemu nyingine ya msimbo ni sawa na tuliyotumia hapo juu kufundisha Regression ya Mstari. Ukijaribu, utaona kuwa kosa la wastani la mraba ni karibu sawa, lakini tunapata mgawo wa uamuzi wa juu zaidi (~77%). Ili kupata utabiri sahihi zaidi, tunaweza kuzingatia vipengele zaidi vya kategoria, pamoja na vipengele vya nambari, kama `Month` au `DayOfYear`. Ili kupata safu moja kubwa ya vipengele, tunaweza kutumia `join`:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+```
+
+Hapa tunazingatia pia `City` na aina ya `Package`, ambayo inatupa MSE 2.84 (10%), na uamuzi 0.94!
+
+## Kuweka Yote Pamoja
+
+Ili kufanya modeli bora zaidi, tunaweza kutumia data iliyojumuishwa (kategoria zilizofanyiwa one-hot encoding + nambari) kutoka mfano hapo juu pamoja na Regression ya Polynomial. Hapa kuna msimbo kamili kwa urahisi wako:
+
+```python
+# set up training data
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+
+# make train-test split
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+# setup and train the pipeline
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+pipeline.fit(X_train,y_train)
+
+# predict results for test data
+pred = pipeline.predict(X_test)
+
+# calculate MSE and determination
+mse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+Hii inapaswa kutupa mgawo bora wa uamuzi wa karibu 97%, na MSE=2.23 (~8% kosa la utabiri).
+
+| Modeli | MSE | Uamuzi |
+|-------|-----|--------|
+| `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 |
+
+🏆 Hongera! Umeunda modeli nne za Regression katika somo moja, na kuboresha ubora wa modeli hadi 97%. Katika sehemu ya mwisho ya Regression, utajifunza kuhusu Regression ya Logistic ili kuamua kategoria.
+
+---
+## 🚀Changamoto
+
+Jaribu vigezo tofauti katika daftari hili ili kuona jinsi uhusiano unavyolingana na usahihi wa modeli.
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Katika somo hili tulijifunza kuhusu Regression ya Mstari. Kuna aina nyingine muhimu za Regression. Soma kuhusu mbinu za Stepwise, Ridge, Lasso na Elasticnet. Kozi nzuri ya kusoma ili kujifunza zaidi ni [Kozi ya Stanford ya Statistical Learning](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
+
+## Kazi
+
+[Jenga Modeli](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati asilia katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/2-Regression/3-Linear/assignment.md b/translations/sw/2-Regression/3-Linear/assignment.md
new file mode 100644
index 00000000..48f61339
--- /dev/null
+++ b/translations/sw/2-Regression/3-Linear/assignment.md
@@ -0,0 +1,25 @@
+
+# Unda Modeli ya Urejeleaji
+
+## Maelekezo
+
+Katika somo hili ulionyeshwa jinsi ya kujenga modeli kwa kutumia Urejeleaji wa Mstari na Urejeleaji wa Polynomial. Kwa kutumia maarifa haya, tafuta seti ya data au tumia mojawapo ya seti zilizojengwa ndani ya Scikit-learn ili kuunda modeli mpya. Eleza katika daftari lako kwa nini ulichagua mbinu uliyotumia, na onyesha usahihi wa modeli yako. Ikiwa si sahihi, eleza kwa nini.
+
+## Rubric
+
+| Vigezo | Bora kabisa | Inafaa | Inahitaji Kuboresha |
+| -------- | ---------------------------------------------------------- | -------------------------- | ------------------------------- |
+| | inawasilisha daftari kamili na suluhisho lililoelezwa vyema | suluhisho halijakamilika | suluhisho lina kasoro au hitilafu |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/2-Regression/3-Linear/solution/Julia/README.md b/translations/sw/2-Regression/3-Linear/solution/Julia/README.md
new file mode 100644
index 00000000..2d460057
--- /dev/null
+++ b/translations/sw/2-Regression/3-Linear/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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 asilia katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/2-Regression/4-Logistic/README.md b/translations/sw/2-Regression/4-Logistic/README.md
new file mode 100644
index 00000000..3b04bfab
--- /dev/null
+++ b/translations/sw/2-Regression/4-Logistic/README.md
@@ -0,0 +1,407 @@
+
+# Logistic regression kutabiri makundi
+
+
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Somo hili linapatikana kwa R!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html)
+
+## Utangulizi
+
+Katika somo hili la mwisho kuhusu Regression, mojawapo ya mbinu za msingi za _classic_ ML, tutachunguza Logistic Regression. Ungetumia mbinu hii kugundua mifumo ya kutabiri makundi mawili. Je, pipi hii ni chokoleti au siyo? Je, ugonjwa huu ni wa kuambukiza au siyo? Je, mteja huyu atachagua bidhaa hii au siyo?
+
+Katika somo hili, utajifunza:
+
+- Maktaba mpya ya kuonyesha data
+- Mbinu za logistic regression
+
+✅ Kuimarisha uelewa wako wa kufanya kazi na aina hii ya regression katika [moduli ya kujifunza](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott)
+
+## Mahitaji ya awali
+
+Baada ya kufanya kazi na data ya malenge, sasa tunafahamu vya kutosha kutambua kwamba kuna kundi moja la binary ambalo tunaweza kufanya kazi nalo: `Color`.
+
+Hebu tujenge mfano wa logistic regression kutabiri, kwa kuzingatia baadhi ya vigezo, _rangi ya malenge fulani itakuwa nini_ (machungwa 🎃 au nyeupe 👻).
+
+> Kwa nini tunazungumzia binary classification katika somo kuhusu regression? Ni kwa urahisi wa lugha tu, kwani logistic regression ni [kweli mbinu ya classification](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), ingawa ni ya msingi wa linear. Jifunze kuhusu njia nyingine za kuainisha data katika kundi la somo linalofuata.
+
+## Eleza swali
+
+Kwa madhumuni yetu, tutalieleza kama binary: 'Nyeupe' au 'Siyo Nyeupe'. Pia kuna kundi la 'striped' katika dataset yetu lakini kuna matukio machache ya kundi hilo, kwa hivyo hatutalitumia. Linatoweka mara tu tunapotoa thamani za null kutoka dataset, hata hivyo.
+
+> 🎃 Ukweli wa kufurahisha, mara nyingine tunaita malenge nyeupe 'malenge ya roho'. Hayafai sana kwa kuchonga, kwa hivyo hayajapendwa kama yale ya machungwa lakini yanaonekana ya kuvutia! Kwa hivyo tunaweza pia kuunda upya swali letu kama: 'Roho' au 'Siyo Roho'. 👻
+
+## Kuhusu logistic regression
+
+Logistic regression inatofautiana na linear regression, ambayo ulijifunza hapo awali, kwa njia kadhaa muhimu.
+
+[](https://youtu.be/KpeCT6nEpBY "ML kwa wanaoanza - Kuelewa Logistic Regression kwa Machine Learning Classification")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa video kuhusu logistic regression.
+
+### Binary classification
+
+Logistic regression haitoi vipengele sawa na linear regression. Ya kwanza inatoa utabiri kuhusu kundi la binary ("nyeupe au siyo nyeupe") ilhali ya pili ina uwezo wa kutabiri thamani zinazoendelea, kwa mfano kwa kuzingatia asili ya malenge na wakati wa kuvuna, _bei yake itaongezeka kiasi gani_.
+
+
+> Infographic na [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+### Uainishaji mwingine
+
+Kuna aina nyingine za logistic regression, ikiwa ni pamoja na multinomial na ordinal:
+
+- **Multinomial**, ambayo inahusisha kuwa na zaidi ya kundi moja - "Machungwa, Nyeupe, na Striped".
+- **Ordinal**, ambayo inahusisha makundi yaliyo na mpangilio, yanafaa ikiwa tungependa kupanga matokeo yetu kwa mantiki, kama malenge yetu ambayo yamepangwa kwa idadi finyu ya ukubwa (mini, sm, med, lg, xl, xxl).
+
+
+
+### Vigezo HAVIHITAJI kuhusiana
+
+Kumbuka jinsi linear regression ilifanya kazi vizuri zaidi na vigezo vilivyohusiana? Logistic regression ni kinyume - vigezo havihitaji kuhusiana. Hii inafaa kwa data hii ambayo ina uhusiano dhaifu kiasi.
+
+### Unahitaji data nyingi safi
+
+Logistic regression itatoa matokeo sahihi zaidi ikiwa utatumia data zaidi; dataset yetu ndogo siyo bora kwa kazi hii, kwa hivyo kumbuka hilo.
+
+[](https://youtu.be/B2X4H9vcXTs "ML kwa wanaoanza - Uchambuzi wa Data na Maandalizi kwa Logistic Regression")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa video kuhusu kuandaa data kwa linear regression
+
+✅ Fikiria aina za data ambazo zinafaa kwa logistic regression
+
+## Zoezi - safisha data
+
+Kwanza, safisha data kidogo, ukiondoa thamani za null na kuchagua baadhi ya safu:
+
+1. Ongeza msimbo ufuatao:
+
+ ```python
+
+ columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
+ pumpkins = full_pumpkins.loc[:, columns_to_select]
+
+ pumpkins.dropna(inplace=True)
+ ```
+
+ Unaweza daima kuchungulia dataframe yako mpya:
+
+ ```python
+ pumpkins.info
+ ```
+
+### Uonyeshaji - ploti ya makundi
+
+Hadi sasa umepakia [notebook ya kuanzia](../../../../2-Regression/4-Logistic/notebook.ipynb) na data ya malenge tena na kuisafisha ili kuhifadhi dataset inayojumuisha vigezo vichache, ikiwa ni pamoja na `Color`. Hebu tuonyeshe dataframe katika notebook kwa kutumia maktaba tofauti: [Seaborn](https://seaborn.pydata.org/index.html), ambayo imejengwa juu ya Matplotlib tuliyotumia awali.
+
+Seaborn inatoa njia nzuri za kuonyesha data yako. Kwa mfano, unaweza kulinganisha usambazaji wa data kwa kila `Variety` na `Color` katika ploti ya makundi.
+
+1. Unda ploti kama hiyo kwa kutumia kazi ya `catplot`, ukitumia data yetu ya malenge `pumpkins`, na kubainisha ramani ya rangi kwa kila kundi la malenge (machungwa au nyeupe):
+
+ ```python
+ import seaborn as sns
+
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+
+ sns.catplot(
+ data=pumpkins, y="Variety", hue="Color", kind="count",
+ palette=palette,
+ )
+ ```
+
+ 
+
+ Kwa kuchunguza data, unaweza kuona jinsi data ya Color inavyohusiana na Variety.
+
+ ✅ Kwa kuzingatia ploti hii ya makundi, ni uchunguzi gani wa kuvutia unaweza kufikiria?
+
+### Usindikaji wa data: encoding ya vipengele na lebo
+Dataset yetu ya malenge ina thamani za maandishi kwa safu zake zote. Kufanya kazi na data ya makundi ni rahisi kwa binadamu lakini siyo kwa mashine. Algorithms za machine learning hufanya kazi vizuri na namba. Ndiyo maana encoding ni hatua muhimu sana katika awamu ya usindikaji wa data, kwani inatuwezesha kubadilisha data ya makundi kuwa data ya namba, bila kupoteza taarifa yoyote. Encoding nzuri husababisha kujenga mfano mzuri.
+
+Kwa encoding ya vipengele kuna aina mbili kuu za encoders:
+
+1. Ordinal encoder: inafaa vizuri kwa vigezo vya ordinal, ambavyo ni vigezo vya makundi ambapo data yao inafuata mpangilio wa mantiki, kama safu ya `Item Size` katika dataset yetu. Inaunda ramani ambapo kila kundi linawakilishwa na namba, ambayo ni mpangilio wa kundi katika safu.
+
+ ```python
+ from sklearn.preprocessing import OrdinalEncoder
+
+ item_size_categories = [['sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo']]
+ ordinal_features = ['Item Size']
+ ordinal_encoder = OrdinalEncoder(categories=item_size_categories)
+ ```
+
+2. Categorical encoder: inafaa vizuri kwa vigezo vya nominal, ambavyo ni vigezo vya makundi ambapo data yao haifuati mpangilio wa mantiki, kama vipengele vyote tofauti na `Item Size` katika dataset yetu. Ni encoding ya one-hot, ambayo inamaanisha kwamba kila kundi linawakilishwa na safu ya binary: kipengele kilichosimbwa ni sawa na 1 ikiwa malenge ni wa Variety hiyo na 0 vinginevyo.
+
+ ```python
+ from sklearn.preprocessing import OneHotEncoder
+
+ categorical_features = ['City Name', 'Package', 'Variety', 'Origin']
+ categorical_encoder = OneHotEncoder(sparse_output=False)
+ ```
+Kisha, `ColumnTransformer` hutumika kuunganisha encoders nyingi katika hatua moja na kuzitumia kwa safu zinazofaa.
+
+```python
+ from sklearn.compose import ColumnTransformer
+
+ ct = ColumnTransformer(transformers=[
+ ('ord', ordinal_encoder, ordinal_features),
+ ('cat', categorical_encoder, categorical_features)
+ ])
+
+ ct.set_output(transform='pandas')
+ encoded_features = ct.fit_transform(pumpkins)
+```
+Kwa upande mwingine, ili kusimba lebo, tunatumia darasa la `LabelEncoder` la scikit-learn, ambalo ni darasa la zana kusaidia kuweka lebo katika hali ya kawaida ili ziwe na thamani tu kati ya 0 na n_classes-1 (hapa, 0 na 1).
+
+```python
+ from sklearn.preprocessing import LabelEncoder
+
+ label_encoder = LabelEncoder()
+ encoded_label = label_encoder.fit_transform(pumpkins['Color'])
+```
+Mara tu tunapokuwa tumesimba vipengele na lebo, tunaweza kuviunganisha katika dataframe mpya `encoded_pumpkins`.
+
+```python
+ encoded_pumpkins = encoded_features.assign(Color=encoded_label)
+```
+✅ Ni faida gani za kutumia ordinal encoder kwa safu ya `Item Size`?
+
+### Changanua uhusiano kati ya vigezo
+
+Sasa kwa kuwa tumefanya usindikaji wa data yetu, tunaweza kuchanganua uhusiano kati ya vipengele na lebo ili kupata wazo la jinsi mfano utakavyoweza kutabiri lebo kwa kuzingatia vipengele.
+Njia bora ya kufanya uchambuzi wa aina hii ni kuonyesha data. Tutatumia tena kazi ya Seaborn `catplot`, kuonyesha uhusiano kati ya `Item Size`, `Variety` na `Color` katika ploti ya makundi. Ili kuonyesha data vizuri tutatumia safu ya `Item Size` iliyosimbwa na safu ya `Variety` isiyosimbwa.
+
+```python
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+ pumpkins['Item Size'] = encoded_pumpkins['ord__Item Size']
+
+ g = sns.catplot(
+ data=pumpkins,
+ x="Item Size", y="Color", row='Variety',
+ kind="box", orient="h",
+ sharex=False, margin_titles=True,
+ height=1.8, aspect=4, palette=palette,
+ )
+ g.set(xlabel="Item Size", ylabel="").set(xlim=(0,6))
+ g.set_titles(row_template="{row_name}")
+```
+
+
+### Tumia swarm plot
+
+Kwa kuwa Color ni kundi la binary (Nyeupe au Siyo), inahitaji '[mbinu maalum](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) ya uonyeshaji'. Kuna njia nyingine za kuonyesha uhusiano wa kundi hili na vigezo vingine.
+
+Unaweza kuonyesha vigezo kando kwa kando na ploti za Seaborn.
+
+1. Jaribu ploti ya 'swarm' kuonyesha usambazaji wa thamani:
+
+ ```python
+ palette = {
+ 0: 'orange',
+ 1: 'wheat'
+ }
+ sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette)
+ ```
+
+ 
+
+**Angalizo**: msimbo hapo juu unaweza kutoa onyo, kwa kuwa seaborn inashindwa kuwakilisha idadi kubwa ya datapoints katika ploti ya swarm. Suluhisho linalowezekana ni kupunguza ukubwa wa alama, kwa kutumia parameter ya 'size'. Hata hivyo, fahamu kwamba hili linaathiri usomaji wa ploti.
+
+> **🧮 Nionyeshe Hisabati**
+>
+> Logistic regression inategemea dhana ya 'uwezekano wa juu zaidi' kwa kutumia [sigmoid functions](https://wikipedia.org/wiki/Sigmoid_function). 'Sigmoid Function' kwenye ploti inaonekana kama umbo la 'S'. Inachukua thamani na kuipanga mahali fulani kati ya 0 na 1. Curve yake pia inaitwa 'logistic curve'. Fomula yake inaonekana kama hii:
+>
+> 
+>
+> ambapo katikati ya sigmoid inajipata katika nukta ya 0 ya x, L ni thamani ya juu ya curve, na k ni mwinuko wa curve. Ikiwa matokeo ya function ni zaidi ya 0.5, lebo husika itapewa darasa '1' la chaguo la binary. Ikiwa siyo, itatambuliwa kama '0'.
+
+## Jenga mfano wako
+
+Kujenga mfano wa kupata uainishaji wa binary ni rahisi kushangaza katika Scikit-learn.
+
+[](https://youtu.be/MmZS2otPrQ8 "ML kwa wanaoanza - Logistic Regression kwa uainishaji wa data")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa video kuhusu kujenga mfano wa linear regression
+
+1. Chagua vigezo unavyotaka kutumia katika mfano wako wa uainishaji na gawanya seti za mafunzo na majaribio kwa kuita `train_test_split()`:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])]
+ y = encoded_pumpkins['Color']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+ ```
+
+2. Sasa unaweza kufundisha mfano wako, kwa kuita `fit()` na data yako ya mafunzo, na kuchapisha matokeo yake:
+
+ ```python
+ from sklearn.metrics import f1_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('F1-score: ', f1_score(y_test, predictions))
+ ```
+
+ Angalia scoreboard ya mfano wako. Si mbaya, ukizingatia una takriban safu 1000 za data:
+
+ ```output
+ precision recall f1-score support
+
+ 0 0.94 0.98 0.96 166
+ 1 0.85 0.67 0.75 33
+
+ accuracy 0.92 199
+ macro avg 0.89 0.82 0.85 199
+ weighted avg 0.92 0.92 0.92 199
+
+ Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
+ 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0
+ 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+ 0 0 0 1 0 0 0 0 0 0 0 0 1 1]
+ F1-score: 0.7457627118644068
+ ```
+
+## Uelewa bora kupitia confusion matrix
+
+Ingawa unaweza kupata ripoti ya scoreboard [maneno](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) kwa kuchapisha vitu hapo juu, unaweza kuelewa mfano wako kwa urahisi zaidi kwa kutumia [confusion matrix](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) kutusaidia kuelewa jinsi mfano unavyofanya kazi.
+
+> 🎓 '[Confusion matrix](https://wikipedia.org/wiki/Confusion_matrix)' (au 'error matrix') ni jedwali linaloonyesha positives na negatives za kweli dhidi ya za uongo za mfano wako, hivyo kupima usahihi wa utabiri.
+
+1. Ili kutumia confusion matrix, ita `confusion_matrix()`:
+
+ ```python
+ from sklearn.metrics import confusion_matrix
+ confusion_matrix(y_test, predictions)
+ ```
+
+ Angalia confusion matrix ya mfano wako:
+
+ ```output
+ array([[162, 4],
+ [ 11, 22]])
+ ```
+
+Katika Scikit-learn, confusion matrices Safu (axis 0) ni lebo halisi na safu (axis 1) ni lebo zilizotabiriwa.
+
+| | 0 | 1 |
+| :---: | :---: | :---: |
+| 0 | TN | FP |
+| 1 | FN | TP |
+
+Nini kinaendelea hapa? Tuseme mfano wetu umeombwa kuainisha malenge kati ya makundi mawili ya binary, kundi 'nyeupe' na kundi 'siyo nyeupe'.
+
+- Ikiwa mfano wako unatabiri malenge kama siyo nyeupe na ni wa kundi 'siyo nyeupe' kwa kweli tunaita true negative, inayoonyeshwa na namba ya juu kushoto.
+- Ikiwa mfano wako unatabiri malenge kama nyeupe na ni wa kundi 'siyo nyeupe' kwa kweli tunaita false negative, inayoonyeshwa na namba ya chini kushoto.
+- Ikiwa mfano wako unatabiri malenge kama siyo nyeupe na ni wa kundi 'nyeupe' kwa kweli tunaita false positive, inayoonyeshwa na namba ya juu kulia.
+- Ikiwa mfano wako unatabiri malenge kama nyeupe na ni wa kundi 'nyeupe' kwa kweli tunaita true positive, inayoonyeshwa na namba ya chini kulia.
+
+Kama unavyoweza kudhani ni bora kuwa na idadi kubwa ya true positives na true negatives na idadi ndogo ya false positives na false negatives, ambayo inaonyesha kwamba mfano unafanya kazi vizuri.
+Je, matriki ya mkanganyiko inahusianaje na usahihi na urejeshaji? Kumbuka, ripoti ya uainishaji iliyoonyeshwa hapo juu ilionyesha usahihi (0.85) na urejeshaji (0.67).
+
+Usahihi = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461
+
+Urejeshaji = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666
+
+✅ Swali: Kulingana na matriki ya mkanganyiko, je, modeli ilifanya vipi? Jibu: Si mbaya; kuna idadi nzuri ya hasi za kweli lakini pia kuna chache hasi za uongo.
+
+Hebu turejee maneno tuliyoyaona awali kwa msaada wa ramani ya TP/TN na FP/FN ya matriki ya mkanganyiko:
+
+🎓 Usahihi: TP/(TP + FP) Sehemu ya matukio yanayofaa kati ya matukio yaliyopatikana (mfano, ni lebo zipi ziliwekwa alama vizuri)
+
+🎓 Urejeshaji: TP/(TP + FN) Sehemu ya matukio yanayofaa yaliyopatikana, iwe yamewekwa alama vizuri au la
+
+🎓 Alama ya f1: (2 * usahihi * urejeshaji)/(usahihi + urejeshaji) Wastani wa uzito wa usahihi na urejeshaji, bora ikiwa 1 na mbaya ikiwa 0
+
+🎓 Msaada: Idadi ya matukio ya kila lebo yaliyopatikana
+
+🎓 Usahihi: (TP + TN)/(TP + TN + FP + FN) Asilimia ya lebo zilizotabiriwa kwa usahihi kwa sampuli.
+
+🎓 Wastani wa Macro: Hesabu ya wastani wa vipimo visivyopimwa kwa kila lebo, bila kuzingatia usawa wa lebo.
+
+🎓 Wastani wa Uzito: Hesabu ya wastani wa vipimo kwa kila lebo, kwa kuzingatia usawa wa lebo kwa kuzipima kulingana na msaada wao (idadi ya matukio ya kweli kwa kila lebo).
+
+✅ Je, unaweza kufikiria ni kipimo gani unachopaswa kuangalia ikiwa unataka modeli yako kupunguza idadi ya hasi za uongo?
+
+## Kuonyesha Mchoro wa ROC wa modeli hii
+
+[](https://youtu.be/GApO575jTA0 "ML kwa wanaoanza - Kuchambua Utendaji wa Logistic Regression kwa Mchoro wa ROC")
+
+> 🎥 Bofya picha hapo juu kwa muhtasari mfupi wa video kuhusu michoro ya ROC
+
+Hebu tufanye uonyeshaji mmoja zaidi ili kuona kinachoitwa 'mchoro wa ROC':
+
+```python
+from sklearn.metrics import roc_curve, roc_auc_score
+import matplotlib
+import matplotlib.pyplot as plt
+%matplotlib inline
+
+y_scores = model.predict_proba(X_test)
+fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1])
+
+fig = plt.figure(figsize=(6, 6))
+plt.plot([0, 1], [0, 1], 'k--')
+plt.plot(fpr, tpr)
+plt.xlabel('False Positive Rate')
+plt.ylabel('True Positive Rate')
+plt.title('ROC Curve')
+plt.show()
+```
+
+Kwa kutumia Matplotlib, chora [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) au ROC ya modeli. Michoro ya ROC mara nyingi hutumika kupata mtazamo wa matokeo ya kionyeshi kwa kuzingatia chanya za kweli dhidi ya chanya za uongo. "Michoro ya ROC kwa kawaida huonyesha kiwango cha chanya za kweli kwenye mhimili wa Y, na kiwango cha chanya za uongo kwenye mhimili wa X." Kwa hivyo, mwinuko wa mchoro na nafasi kati ya mstari wa katikati na mchoro ni muhimu: unataka mchoro unaopanda haraka na kupita mstari. Katika kesi yetu, kuna chanya za uongo mwanzoni, kisha mstari unapanda na kupita vizuri:
+
+
+
+Hatimaye, tumia [`roc_auc_score` API](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) ya Scikit-learn kuhesabu 'Eneo Chini ya Mchoro' (AUC) halisi:
+
+```python
+auc = roc_auc_score(y_test,y_scores[:,1])
+print(auc)
+```
+Matokeo ni `0.9749908725812341`. Kwa kuwa AUC inatofautiana kati ya 0 na 1, unataka alama kubwa, kwa kuwa modeli ambayo ni sahihi kwa 100% katika utabiri wake itakuwa na AUC ya 1; katika kesi hii, modeli ni _nzuri sana_.
+
+Katika masomo ya baadaye kuhusu uainishaji, utajifunza jinsi ya kurudia ili kuboresha alama za modeli yako. Lakini kwa sasa, hongera! Umehitimisha masomo haya ya regression!
+
+---
+## 🚀Changamoto
+
+Kuna mengi zaidi ya kuchunguza kuhusu logistic regression! Lakini njia bora ya kujifunza ni kujaribu. Tafuta seti ya data inayofaa kwa aina hii ya uchambuzi na tengeneza modeli nayo. Unajifunza nini? Kidokezo: jaribu [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) kwa seti za data za kuvutia.
+
+## [Jaribio baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Soma kurasa chache za kwanza za [karatasi hii kutoka Stanford](https://web.stanford.edu/~jurafsky/slp3/5.pdf) kuhusu matumizi ya vitendo ya logistic regression. Fikiria kuhusu kazi ambazo zinafaa zaidi kwa aina moja au nyingine ya kazi za regression ambazo tumejifunza hadi sasa. Ni ipi ingefanya kazi bora?
+
+## Kazi
+
+[Kurudia regression hii](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/2-Regression/4-Logistic/assignment.md b/translations/sw/2-Regression/4-Logistic/assignment.md
new file mode 100644
index 00000000..0d6d8af7
--- /dev/null
+++ b/translations/sw/2-Regression/4-Logistic/assignment.md
@@ -0,0 +1,25 @@
+
+# Kurudia Baadhi ya Urejeshi
+
+## Maelekezo
+
+Katika somo, ulitumia sehemu ndogo ya data ya malenge. Sasa, rudi kwenye data ya asili na jaribu kutumia yote, ikiwa imefanyiwa usafi na kusawazishwa, ili kujenga mfano wa Logistic Regression.
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inayohitaji Kuboresha |
+| -------- | ----------------------------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------- |
+| | Daftari linaonyeshwa na mfano ulioelezwa vizuri na unaofanya kazi vizuri | Daftari linaonyeshwa na mfano unaofanya kazi kwa kiwango cha chini | Daftari linaonyeshwa na mfano usiofanya kazi vizuri au hakuna |
+
+---
+
+**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
diff --git a/translations/sw/2-Regression/4-Logistic/solution/Julia/README.md b/translations/sw/2-Regression/4-Logistic/solution/Julia/README.md
new file mode 100644
index 00000000..fa8f420d
--- /dev/null
+++ b/translations/sw/2-Regression/4-Logistic/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/2-Regression/README.md b/translations/sw/2-Regression/README.md
new file mode 100644
index 00000000..55271933
--- /dev/null
+++ b/translations/sw/2-Regression/README.md
@@ -0,0 +1,54 @@
+
+# Miundo ya Regression kwa Kujifunza Mashine
+## Mada ya Kikanda: Miundo ya Regression kwa Bei za Maboga Kaskazini mwa Amerika 🎃
+
+Kaskazini mwa Amerika, maboga mara nyingi hukatwa na kuchongwa kuwa sura za kutisha kwa ajili ya Halloween. Hebu tujifunze zaidi kuhusu mboga hizi za kuvutia!
+
+
+> Picha na Beth Teutschmann kwenye Unsplash
+
+## Kile Utakachojifunza
+
+[](https://youtu.be/5QnJtDad4iQ "Regression Introduction video - Click to Watch!")
+> 🎥 Bofya picha hapo juu kwa video fupi ya utangulizi wa somo hili
+
+Masomo katika sehemu hii yanahusu aina za regression katika muktadha wa kujifunza mashine. Miundo ya regression inaweza kusaidia kubaini _uhusiano_ kati ya vigezo. Aina hii ya muundo inaweza kutabiri thamani kama urefu, joto, au umri, hivyo kufichua uhusiano kati ya vigezo inapochambua data.
+
+Katika mfululizo huu wa masomo, utagundua tofauti kati ya regression ya mstari na regression ya logistic, na wakati wa kuchagua moja badala ya nyingine.
+
+[](https://youtu.be/XA3OaoW86R8 "ML for beginners - Introduction to Regression models for Machine Learning")
+
+> 🎥 Bofya picha hapo juu kwa video fupi inayoelezea miundo ya regression.
+
+Katika kundi hili la masomo, utajiandaa kuanza kazi za kujifunza mashine, ikiwa ni pamoja na kusanidi Visual Studio Code ili kudhibiti daftari, mazingira ya kawaida kwa wanasayansi wa data. Utagundua Scikit-learn, maktaba ya kujifunza mashine, na utajenga miundo yako ya kwanza, ukizingatia miundo ya Regression katika sura hii.
+
+> Kuna zana za kiwango cha chini cha msimbo ambazo zinaweza kukusaidia kujifunza kuhusu kufanya kazi na miundo ya regression. Jaribu [Azure ML kwa kazi hii](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+### Masomo
+
+1. [Zana za kazi](1-Tools/README.md)
+2. [Kusimamia data](2-Data/README.md)
+3. [Regression ya mstari na polynomial](3-Linear/README.md)
+4. [Regression ya logistic](4-Logistic/README.md)
+
+---
+### Credits
+
+"ML na regression" imeandikwa kwa ♥️ na [Jen Looper](https://twitter.com/jenlooper)
+
+♥️ Wachangiaji wa maswali ya mtihani ni pamoja na: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) na [Ornella Altunyan](https://twitter.com/ornelladotcom)
+
+Seti ya data ya maboga imetolewa na [mradi huu kwenye Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) na data yake imetokana na [Ripoti za Kawaida za Masoko ya Mazao Maalum](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) zinazotolewa na Idara ya Kilimo ya Marekani. Tumeongeza baadhi ya pointi kuhusu rangi kulingana na aina ili kusawazisha usambazaji. Data hii iko katika umma.
+
+---
+
+**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
diff --git a/translations/sw/3-Web-App/1-Web-App/README.md b/translations/sw/3-Web-App/1-Web-App/README.md
new file mode 100644
index 00000000..6ad592bd
--- /dev/null
+++ b/translations/sw/3-Web-App/1-Web-App/README.md
@@ -0,0 +1,359 @@
+
+# Jenga Programu ya Wavuti Kutumia Modeli ya ML
+
+Katika somo hili, utapokea mafunzo ya modeli ya ML kwa kutumia seti ya data isiyo ya kawaida: _Matukio ya UFO katika karne iliyopita_, yaliyokusanywa kutoka hifadhidata ya NUFORC.
+
+Utajifunza:
+
+- Jinsi ya 'pickle' modeli iliyofunzwa
+- Jinsi ya kutumia modeli hiyo katika programu ya Flask
+
+Tutaendelea kutumia daftari za maelezo (notebooks) kusafisha data na kufunza modeli yetu, lakini unaweza kuchukua hatua moja zaidi kwa kuchunguza jinsi ya kutumia modeli 'katika mazingira halisi', yaani: katika programu ya wavuti.
+
+Ili kufanya hivyo, unahitaji kujenga programu ya wavuti kwa kutumia Flask.
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Kujenga programu
+
+Kuna njia kadhaa za kujenga programu za wavuti zinazotumia modeli za kujifunza mashine. Muundo wa wavuti yako unaweza kuathiri jinsi modeli yako inavyofunzwa. Fikiria kuwa unafanya kazi katika biashara ambapo kikundi cha sayansi ya data kimefunza modeli wanayotaka uitumie katika programu.
+
+### Mambo ya Kuzingatia
+
+Kuna maswali mengi unayohitaji kuuliza:
+
+- **Je, ni programu ya wavuti au ya simu?** Ikiwa unajenga programu ya simu au unahitaji kutumia modeli katika muktadha wa IoT, unaweza kutumia [TensorFlow Lite](https://www.tensorflow.org/lite/) na kutumia modeli hiyo katika programu ya Android au iOS.
+- **Modeli itakuwa wapi?** Katika wingu au ndani ya kifaa?
+- **Msaada wa nje ya mtandao.** Je, programu inapaswa kufanya kazi bila mtandao?
+- **Teknolojia gani ilitumika kufunza modeli?** Teknolojia iliyochaguliwa inaweza kuathiri zana unazohitaji kutumia.
+ - **Kutumia TensorFlow.** Ikiwa unafunza modeli kwa kutumia TensorFlow, kwa mfano, mfumo huo unatoa uwezo wa kubadilisha modeli ya TensorFlow kwa matumizi katika programu ya wavuti kwa kutumia [TensorFlow.js](https://www.tensorflow.org/js/).
+ - **Kutumia PyTorch.** Ikiwa unajenga modeli kwa kutumia maktaba kama [PyTorch](https://pytorch.org/), una chaguo la kuisafirisha katika muundo wa [ONNX](https://onnx.ai/) (Open Neural Network Exchange) kwa matumizi katika programu za wavuti za JavaScript zinazoweza kutumia [Onnx Runtime](https://www.onnxruntime.ai/). Chaguo hili litachunguzwa katika somo la baadaye kwa modeli iliyofunzwa na Scikit-learn.
+ - **Kutumia Lobe.ai au Azure Custom Vision.** Ikiwa unatumia mfumo wa ML SaaS (Software as a Service) kama [Lobe.ai](https://lobe.ai/) au [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) kufunza modeli, programu ya aina hii inatoa njia za kusafirisha modeli kwa majukwaa mengi, ikiwa ni pamoja na kujenga API maalum inayoweza kuulizwa katika wingu na programu yako ya mtandaoni.
+
+Pia una nafasi ya kujenga programu nzima ya wavuti ya Flask ambayo inaweza kufunza modeli yenyewe katika kivinjari cha wavuti. Hii inaweza pia kufanywa kwa kutumia TensorFlow.js katika muktadha wa JavaScript.
+
+Kwa madhumuni yetu, kwa kuwa tumekuwa tukifanya kazi na daftari za maelezo za msingi wa Python, hebu tuchunguze hatua unazohitaji kuchukua kusafirisha modeli iliyofunzwa kutoka daftari kama hiyo hadi muundo unaoweza kusomwa na programu ya wavuti iliyojengwa kwa Python.
+
+## Zana
+
+Kwa kazi hii, unahitaji zana mbili: Flask na Pickle, zote zinazoendeshwa na Python.
+
+✅ [Flask](https://palletsprojects.com/p/flask/) ni nini? Imeelezwa kama 'micro-framework' na waumbaji wake, Flask hutoa vipengele vya msingi vya mifumo ya wavuti kwa kutumia Python na injini ya kutengeneza kurasa za wavuti. Angalia [moduli hii ya kujifunza](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) ili kufanya mazoezi ya kujenga kwa kutumia Flask.
+
+✅ [Pickle](https://docs.python.org/3/library/pickle.html) ni nini? Pickle 🥒 ni moduli ya Python inayosawazisha na kuondoa usawazishaji wa muundo wa kitu cha Python. Unapofanya 'pickle' modeli, unasawazisha au kuisawazisha kwa matumizi kwenye wavuti. Kuwa makini: pickle si salama kiasili, kwa hivyo kuwa mwangalifu ikiwa umeombwa 'kuondoa pickle' faili. Faili iliyofanyiwa pickle ina kiambishi `.pkl`.
+
+## Zoezi - safisha data yako
+
+Katika somo hili utatumia data kutoka kwa matukio 80,000 ya UFO, yaliyokusanywa na [NUFORC](https://nuforc.org) (Kituo cha Kitaifa cha Kuripoti Matukio ya UFO). Data hii ina maelezo ya kuvutia kuhusu matukio ya UFO, kwa mfano:
+
+- **Maelezo marefu ya mfano.** "Mtu anatokea kutoka kwenye mwanga unaong'aa kwenye uwanja wa nyasi usiku na anakimbilia kwenye maegesho ya Texas Instruments".
+- **Maelezo mafupi ya mfano.** "taa zilituandama".
+
+Faili ya [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) inajumuisha safu kuhusu `mji`, `jimbo` na `nchi` ambapo tukio lilitokea, `umbo` la kitu na `latitudo` na `longitudo` yake.
+
+Katika [daftari](../../../../3-Web-App/1-Web-App/notebook.ipynb) tupu lililojumuishwa katika somo hili:
+
+1. Ingiza `pandas`, `matplotlib`, na `numpy` kama ulivyofanya katika masomo ya awali na ingiza faili ya ufos. Unaweza kuangalia sampuli ya seti ya data:
+
+ ```python
+ import pandas as pd
+ import numpy as np
+
+ ufos = pd.read_csv('./data/ufos.csv')
+ ufos.head()
+ ```
+
+1. Badilisha data ya ufos kuwa fremu ndogo ya data yenye vichwa vipya. Angalia maadili ya kipekee katika safu ya `Nchi`.
+
+ ```python
+ ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})
+
+ ufos.Country.unique()
+ ```
+
+1. Sasa, unaweza kupunguza kiasi cha data tunachohitaji kushughulikia kwa kuondoa maadili tupu na kuingiza tu matukio ya muda wa sekunde 1-60:
+
+ ```python
+ ufos.dropna(inplace=True)
+
+ ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)]
+
+ ufos.info()
+ ```
+
+1. Ingiza maktaba ya `LabelEncoder` ya Scikit-learn ili kubadilisha maadili ya maandishi ya nchi kuwa nambari:
+
+ ✅ LabelEncoder inasimba data kwa mpangilio wa alfabeti
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+
+ ufos['Country'] = LabelEncoder().fit_transform(ufos['Country'])
+
+ ufos.head()
+ ```
+
+ Data yako inapaswa kuonekana kama hii:
+
+ ```output
+ Seconds Country Latitude Longitude
+ 2 20.0 3 53.200000 -2.916667
+ 3 20.0 4 28.978333 -96.645833
+ 14 30.0 4 35.823889 -80.253611
+ 23 60.0 4 45.582778 -122.352222
+ 24 3.0 3 51.783333 -0.783333
+ ```
+
+## Zoezi - jenga modeli yako
+
+Sasa unaweza kujiandaa kufunza modeli kwa kugawanya data katika kikundi cha mafunzo na majaribio.
+
+1. Chagua vipengele vitatu unavyotaka kufunza kama vector yako ya X, na vector ya y itakuwa `Nchi`. Unataka kuweza kuingiza `Sekunde`, `Latitudo` na `Longitudo` na kupata kitambulisho cha nchi cha kurudisha.
+
+ ```python
+ from sklearn.model_selection import train_test_split
+
+ Selected_features = ['Seconds','Latitude','Longitude']
+
+ X = ufos[Selected_features]
+ y = ufos['Country']
+
+ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+ ```
+
+1. Funza modeli yako kwa kutumia regression ya logistic:
+
+ ```python
+ from sklearn.metrics import accuracy_score, classification_report
+ from sklearn.linear_model import LogisticRegression
+ model = LogisticRegression()
+ model.fit(X_train, y_train)
+ predictions = model.predict(X_test)
+
+ print(classification_report(y_test, predictions))
+ print('Predicted labels: ', predictions)
+ print('Accuracy: ', accuracy_score(y_test, predictions))
+ ```
+
+Usahihi si mbaya **(karibu 95%)**, bila kushangaza, kwa kuwa `Nchi` na `Latitudo/Longitudo` vina uhusiano.
+
+Modeli uliyounda si ya mapinduzi sana kwa kuwa unapaswa kuweza kubaini `Nchi` kutoka kwa `Latitudo` na `Longitudo`, lakini ni zoezi zuri kujaribu kufunza kutoka kwa data ghafi uliyosafisha, ukasafirisha, na kisha kutumia modeli hii katika programu ya wavuti.
+
+## Zoezi - 'pickle' modeli yako
+
+Sasa, ni wakati wa _pickle_ modeli yako! Unaweza kufanya hivyo kwa mistari michache ya msimbo. Mara tu imefanyiwa _pickle_, pakia faili ya modeli hiyo na ujaribu dhidi ya safu ya data ya sampuli inayojumuisha maadili ya sekunde, latitudo na longitudo,
+
+```python
+import pickle
+model_filename = 'ufo-model.pkl'
+pickle.dump(model, open(model_filename,'wb'))
+
+model = pickle.load(open('ufo-model.pkl','rb'))
+print(model.predict([[50,44,-12]]))
+```
+
+Modeli inarudisha **'3'**, ambayo ni nambari ya nchi ya Uingereza. Ajabu! 👽
+
+## Zoezi - jenga programu ya Flask
+
+Sasa unaweza kujenga programu ya Flask ili kuita modeli yako na kurudisha matokeo yanayofanana, lakini kwa njia ya kuvutia zaidi.
+
+1. Anza kwa kuunda folda inayoitwa **web-app** karibu na faili _notebook.ipynb_ ambapo faili yako _ufo-model.pkl_ iko.
+
+1. Katika folda hiyo unda folda tatu zaidi: **static**, yenye folda **css** ndani yake, na **templates**. Sasa unapaswa kuwa na faili na folda zifuatazo:
+
+ ```output
+ web-app/
+ static/
+ css/
+ templates/
+ notebook.ipynb
+ ufo-model.pkl
+ ```
+
+ ✅ Rejelea folda ya suluhisho ili kuona programu iliyokamilika
+
+1. Faili ya kwanza ya kuunda katika folda ya _web-app_ ni faili ya **requirements.txt**. Kama _package.json_ katika programu ya JavaScript, faili hii inaorodhesha utegemezi unaohitajika na programu. Katika **requirements.txt** ongeza mistari:
+
+ ```text
+ scikit-learn
+ pandas
+ numpy
+ flask
+ ```
+
+1. Sasa, endesha faili hii kwa kuvinjari hadi _web-app_:
+
+ ```bash
+ cd web-app
+ ```
+
+1. Katika terminal yako andika `pip install`, ili kusakinisha maktaba zilizoorodheshwa katika _requirements.txt_:
+
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+1. Sasa, uko tayari kuunda faili tatu zaidi ili kukamilisha programu:
+
+ 1. Unda **app.py** katika mzizi.
+ 2. Unda **index.html** katika folda ya _templates_.
+ 3. Unda **styles.css** katika folda ya _static/css_.
+
+1. Jenga faili ya _styles.css_ na mitindo michache:
+
+ ```css
+ body {
+ width: 100%;
+ height: 100%;
+ font-family: 'Helvetica';
+ background: black;
+ color: #fff;
+ text-align: center;
+ letter-spacing: 1.4px;
+ font-size: 30px;
+ }
+
+ input {
+ min-width: 150px;
+ }
+
+ .grid {
+ width: 300px;
+ border: 1px solid #2d2d2d;
+ display: grid;
+ justify-content: center;
+ margin: 20px auto;
+ }
+
+ .box {
+ color: #fff;
+ background: #2d2d2d;
+ padding: 12px;
+ display: inline-block;
+ }
+ ```
+
+1. Kisha, jenga faili ya _index.html_:
+
+ ```html
+
+
+
+
+ 🛸 UFO Appearance Prediction! 👽
+
+
+
+
+
+
+
+
+
According to the number of seconds, latitude and longitude, which country is likely to have reported seeing a UFO?
+
+
+
+
{{ prediction_text }}
+
+
+
+
+
+
+
+ ```
+
+ Angalia templating katika faili hii. Tambua sintaksia ya 'mustache' karibu na vigezo ambavyo vitatolewa na programu, kama maandishi ya utabiri: `{{}}`. Pia kuna fomu inayotuma utabiri kwa njia ya `/predict`.
+
+ Hatimaye, uko tayari kujenga faili ya Python inayosukuma matumizi ya modeli na kuonyesha utabiri:
+
+1. Katika `app.py` ongeza:
+
+ ```python
+ import numpy as np
+ from flask import Flask, request, render_template
+ import pickle
+
+ app = Flask(__name__)
+
+ model = pickle.load(open("./ufo-model.pkl", "rb"))
+
+
+ @app.route("/")
+ def home():
+ return render_template("index.html")
+
+
+ @app.route("/predict", methods=["POST"])
+ def predict():
+
+ int_features = [int(x) for x in request.form.values()]
+ final_features = [np.array(int_features)]
+ prediction = model.predict(final_features)
+
+ output = prediction[0]
+
+ countries = ["Australia", "Canada", "Germany", "UK", "US"]
+
+ return render_template(
+ "index.html", prediction_text="Likely country: {}".format(countries[output])
+ )
+
+
+ if __name__ == "__main__":
+ app.run(debug=True)
+ ```
+
+ > 💡 Kidokezo: unapoongeza [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) wakati wa kuendesha programu ya wavuti kwa kutumia Flask, mabadiliko yoyote unayofanya kwenye programu yako yataonyeshwa mara moja bila hitaji la kuanzisha upya seva. Tahadhari! Usifungue hali hii katika programu ya uzalishaji.
+
+Ukikimbia `python app.py` au `python3 app.py` - seva yako ya wavuti inaanza, ndani ya kifaa chako, na unaweza kujaza fomu fupi ili kupata jibu la swali lako kuhusu mahali UFO zimeonekana!
+
+Kabla ya kufanya hivyo, angalia sehemu za `app.py`:
+
+1. Kwanza, utegemezi unapakuliwa na programu inaanza.
+1. Kisha, modeli inasafirishwa.
+1. Kisha, index.html inatolewa kwenye njia ya nyumbani.
+
+Katika njia ya `/predict`, mambo kadhaa hufanyika wakati fomu inatumwa:
+
+1. Vigezo vya fomu vinakusanywa na kubadilishwa kuwa safu ya numpy. Kisha vinatumwa kwa modeli na utabiri unarudishwa.
+2. Nchi tunazotaka kuonyesha zinabadilishwa kuwa maandishi yanayosomeka kutoka kwa nambari ya nchi iliyotabiriwa, na thamani hiyo inarudishwa kwa index.html ili kutolewa katika template.
+
+Kutumia modeli kwa njia hii, kwa Flask na modeli iliyofanyiwa pickle, ni rahisi kiasi. Jambo gumu zaidi ni kuelewa umbo la data ambalo lazima litumwe kwa modeli ili kupata utabiri. Hilo linategemea jinsi modeli ilivyofunzwa. Hii ina alama tatu za data za kuingiza ili kupata utabiri.
+
+Katika mazingira ya kitaalamu, unaweza kuona jinsi mawasiliano mazuri yanavyohitajika kati ya wale wanaofunza modeli na wale wanaoitumia katika programu ya wavuti au ya simu. Katika kesi yetu, ni mtu mmoja tu, wewe!
+
+---
+
+## 🚀 Changamoto
+
+Badala ya kufanya kazi katika daftari na kuingiza modeli kwenye programu ya Flask, unaweza kufunza modeli moja kwa moja ndani ya programu ya Flask! Jaribu kubadilisha msimbo wako wa Python katika daftari, labda baada ya data yako kusafishwa, ili kufunza modeli kutoka ndani ya programu kwenye njia inayoitwa `train`. Je, ni faida na hasara gani za kufuata njia hii?
+
+## [Maswali ya baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujifunza Binafsi
+
+Kuna njia nyingi za kujenga programu ya wavuti inayotumia modeli za ML. Tengeneza orodha ya njia unazoweza kutumia JavaScript au Python kujenga programu ya wavuti inayotumia kujifunza mashine. Fikiria muundo: je, modeli inapaswa kubaki katika programu au kuishi katika wingu? Ikiwa ni ya pili, utaipataje? Chora muundo wa usanifu wa suluhisho la ML linalotumika kwenye wavuti.
+
+## Kazi
+
+[Jaribu modeli tofauti](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
diff --git a/translations/sw/3-Web-App/1-Web-App/assignment.md b/translations/sw/3-Web-App/1-Web-App/assignment.md
new file mode 100644
index 00000000..6f9a2b6a
--- /dev/null
+++ b/translations/sw/3-Web-App/1-Web-App/assignment.md
@@ -0,0 +1,25 @@
+
+# Jaribu mfano tofauti
+
+## Maelekezo
+
+Sasa kwa kuwa umeunda programu ya wavuti ukitumia mfano wa Regression uliopangwa, tumia mojawapo ya mifano kutoka somo la Regression la awali ili kurudia programu hii ya wavuti. Unaweza kuhifadhi mtindo au kuibuni kwa njia tofauti ili kuakisi data ya malenge. Hakikisha unabadilisha pembejeo ili kuendana na mbinu ya mafunzo ya mfano wako.
+
+## Rubric
+
+| Vigezo | Bora kabisa | Inayokubalika | Inahitaji Kuboresha |
+| -------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------ |
+| | Programu ya wavuti inafanya kazi kama inavyotarajiwa na imewekwa kwenye wingu | Programu ya wavuti ina kasoro au inaonyesha matokeo yasiyotarajiwa | Programu ya wavuti haifanyi kazi ipasavyo |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/3-Web-App/README.md b/translations/sw/3-Web-App/README.md
new file mode 100644
index 00000000..6766b85a
--- /dev/null
+++ b/translations/sw/3-Web-App/README.md
@@ -0,0 +1,35 @@
+
+# Jenga programu ya wavuti kutumia modeli yako ya ML
+
+Katika sehemu hii ya mtaala, utatambulishwa kwenye mada ya ML inayotumika: jinsi ya kuhifadhi modeli yako ya Scikit-learn kama faili ambayo inaweza kutumika kufanya utabiri ndani ya programu ya wavuti. Mara modeli inapohifadhiwa, utajifunza jinsi ya kuitumia katika programu ya wavuti iliyojengwa kwa Flask. Kwanza, utaunda modeli ukitumia data inayohusu matukio ya kuona UFO! Kisha, utajenga programu ya wavuti itakayokuruhusu kuingiza idadi ya sekunde pamoja na thamani ya latitudo na longitudo ili kutabiri ni nchi gani iliripoti kuona UFO.
+
+
+
+Picha na Michael Herren kwenye Unsplash
+
+## Masomo
+
+1. [Jenga Programu ya Wavuti](1-Web-App/README.md)
+
+## Shukrani
+
+"Jenga Programu ya Wavuti" iliandikwa kwa ♥️ na [Jen Looper](https://twitter.com/jenlooper).
+
+♥️ Maswali ya majaribio yaliandikwa na Rohan Raj.
+
+Seti ya data imetolewa kutoka [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings).
+
+Muundo wa programu ya wavuti ulipendekezwa kwa sehemu na [makala hii](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) na [repo hii](https://github.com/abhinavsagar/machine-learning-deployment) na Abhinav Sagar.
+
+---
+
+**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
diff --git a/translations/sw/4-Classification/1-Introduction/README.md b/translations/sw/4-Classification/1-Introduction/README.md
new file mode 100644
index 00000000..90fe2752
--- /dev/null
+++ b/translations/sw/4-Classification/1-Introduction/README.md
@@ -0,0 +1,313 @@
+
+# Utangulizi wa Uainishaji
+
+Katika masomo haya manne, utachunguza kipengele muhimu cha ujifunzaji wa mashine wa kawaida - _uainishaji_. Tutapitia matumizi ya algoriti mbalimbali za uainishaji kwa kutumia seti ya data kuhusu vyakula vya kupendeza vya Asia na India. Tunatumai una njaa!
+
+
+
+> Sherehekea vyakula vya pan-Asia katika masomo haya! Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+Uainishaji ni aina ya [ujifunzaji unaosimamiwa](https://wikipedia.org/wiki/Supervised_learning) ambao una mfanano mkubwa na mbinu za regression. Ikiwa ujifunzaji wa mashine unahusu kutabiri thamani au majina ya vitu kwa kutumia seti za data, basi uainishaji kwa ujumla huangukia katika makundi mawili: _uainishaji wa binary_ na _uainishaji wa darasa nyingi_.
+
+[](https://youtu.be/eg8DJYwdMyg "Introduction to classification")
+
+> 🎥 Bofya picha hapo juu kwa video: John Guttag wa MIT anatambulisha uainishaji
+
+Kumbuka:
+
+- **Linear regression** ilikusaidia kutabiri uhusiano kati ya vigezo na kufanya utabiri sahihi kuhusu mahali ambapo data mpya ingeangukia kwa uhusiano na mstari huo. Kwa mfano, ungeweza kutabiri _bei ya malenge itakuwa kiasi gani mwezi wa Septemba dhidi ya Desemba_.
+- **Logistic regression** ilikusaidia kugundua "makundi ya binary": kwa kiwango hiki cha bei, _je, malenge hili ni la rangi ya machungwa au si la machungwa_?
+
+Uainishaji hutumia algoriti mbalimbali kuamua njia nyingine za kuainisha lebo au darasa la data. Hebu tufanye kazi na data hii ya vyakula ili kuona kama, kwa kuangalia kikundi cha viungo, tunaweza kuamua asili ya vyakula hivyo.
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Somo hili linapatikana kwa R!](../../../../4-Classification/1-Introduction/solution/R/lesson_10.html)
+
+### Utangulizi
+
+Uainishaji ni mojawapo ya shughuli za msingi za mtafiti wa ujifunzaji wa mashine na mwanasayansi wa data. Kuanzia uainishaji wa msingi wa thamani ya binary ("je, barua pepe hii ni spam au si spam?"), hadi uainishaji wa picha na kugawanya kwa kutumia maono ya kompyuta, daima ni muhimu kuweza kupanga data katika madarasa na kuuliza maswali kuhusu data hiyo.
+
+Kwa kusema mchakato kwa njia ya kisayansi zaidi, mbinu yako ya uainishaji huunda mfano wa utabiri unaokuwezesha kuonyesha uhusiano kati ya vigezo vya ingizo na vigezo vya matokeo.
+
+
+
+> Masuala ya binary dhidi ya darasa nyingi kwa algoriti za uainishaji kushughulikia. Infographic na [Jen Looper](https://twitter.com/jenlooper)
+
+Kabla ya kuanza mchakato wa kusafisha data yetu, kuiona, na kujiandaa kwa kazi zetu za ML, hebu tujifunze kidogo kuhusu njia mbalimbali ambazo ujifunzaji wa mashine unaweza kutumika kuainisha data.
+
+Ikitokana na [takwimu](https://wikipedia.org/wiki/Statistical_classification), uainishaji kwa kutumia ujifunzaji wa mashine wa kawaida hutumia vipengele, kama `smoker`, `weight`, na `age` kuamua _uwezekano wa kupata ugonjwa X_. Kama mbinu ya ujifunzaji unaosimamiwa inayofanana na mazoezi ya regression uliyofanya awali, data yako ina lebo na algoriti za ML hutumia lebo hizo kuainisha na kutabiri madarasa (au 'vipengele') vya seti ya data na kuzipangia kundi au matokeo.
+
+✅ Chukua muda kufikiria seti ya data kuhusu vyakula. Je, mfano wa darasa nyingi ungeweza kujibu nini? Je, mfano wa binary ungeweza kujibu nini? Je, ungependa kuamua kama chakula fulani kina uwezekano wa kutumia fenugreek? Je, ungependa kuona kama, ukipokea zawadi ya mfuko wa mboga uliojaa star anise, artichokes, cauliflower, na horseradish, ungeweza kuunda sahani ya kawaida ya Kihindi?
+
+[](https://youtu.be/GuTeDbaNoEU "Crazy mystery baskets")
+
+> 🎥 Bofya picha hapo juu kwa video. Premisi nzima ya kipindi 'Chopped' ni 'mystery basket' ambapo wapishi wanapaswa kutengeneza sahani kutoka kwa chaguo la viungo vya nasibu. Hakika mfano wa ML ungeweza kusaidia!
+
+## Habari 'classifier'
+
+Swali tunalotaka kuuliza kuhusu seti ya data ya vyakula ni swali la **darasa nyingi**, kwani tuna vyakula vya kitaifa kadhaa vya kufanya kazi navyo. Ukipewa kundi la viungo, ni darasa gani kati ya haya mengi data itafaa?
+
+Scikit-learn inatoa algoriti kadhaa tofauti za kutumia kuainisha data, kulingana na aina ya tatizo unalotaka kutatua. Katika masomo mawili yajayo, utajifunza kuhusu algoriti kadhaa kati ya hizi.
+
+## Zoezi - safisha na uratibu data yako
+
+Kazi ya kwanza, kabla ya kuanza mradi huu, ni kusafisha na **kuratibu** data yako ili kupata matokeo bora. Anza na faili tupu _notebook.ipynb_ katika mzizi wa folda hii.
+
+Jambo la kwanza kusakinisha ni [imblearn](https://imbalanced-learn.org/stable/). Hii ni kifurushi cha Scikit-learn ambacho kitakuruhusu kuratibu data vizuri zaidi (utajifunza zaidi kuhusu kazi hii kwa muda mfupi).
+
+1. Ili kusakinisha `imblearn`, endesha `pip install`, kama ifuatavyo:
+
+ ```python
+ pip install imblearn
+ ```
+
+1. Ingiza vifurushi unavyohitaji kuingiza data yako na kuiona, pia ingiza `SMOTE` kutoka `imblearn`.
+
+ ```python
+ import pandas as pd
+ import matplotlib.pyplot as plt
+ import matplotlib as mpl
+ import numpy as np
+ from imblearn.over_sampling import SMOTE
+ ```
+
+ Sasa umejiandaa kusoma na kuingiza data inayofuata.
+
+1. Kazi inayofuata itakuwa kuingiza data:
+
+ ```python
+ df = pd.read_csv('../data/cuisines.csv')
+ ```
+
+ Kutumia `read_csv()` kutasoma maudhui ya faili ya csv _cusines.csv_ na kuiweka katika kigezo `df`.
+
+1. Angalia umbo la data:
+
+ ```python
+ df.head()
+ ```
+
+ Safu tano za kwanza zinaonekana kama hivi:
+
+ ```output
+ | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+ | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+ | 0 | 65 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 1 | 66 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 2 | 67 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 3 | 68 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+ | 4 | 69 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+ ```
+
+1. Pata maelezo kuhusu data hii kwa kuita `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Matokeo yako yanafanana na:
+
+ ```output
+
+ RangeIndex: 2448 entries, 0 to 2447
+ Columns: 385 entries, Unnamed: 0 to zucchini
+ dtypes: int64(384), object(1)
+ memory usage: 7.2+ MB
+ ```
+
+## Zoezi - kujifunza kuhusu vyakula
+
+Sasa kazi inaanza kuwa ya kuvutia zaidi. Hebu tujifunze kuhusu usambazaji wa data, kwa kila aina ya chakula.
+
+1. Chora data kama baa kwa kuita `barh()`:
+
+ ```python
+ df.cuisine.value_counts().plot.barh()
+ ```
+
+ 
+
+ Kuna idadi ndogo ya vyakula, lakini usambazaji wa data hauko sawa. Unaweza kurekebisha hilo! Kabla ya kufanya hivyo, chunguza kidogo zaidi.
+
+1. Tafuta ni kiasi gani cha data kinapatikana kwa kila aina ya chakula na uichapishe:
+
+ ```python
+ thai_df = df[(df.cuisine == "thai")]
+ japanese_df = df[(df.cuisine == "japanese")]
+ chinese_df = df[(df.cuisine == "chinese")]
+ indian_df = df[(df.cuisine == "indian")]
+ korean_df = df[(df.cuisine == "korean")]
+
+ print(f'thai df: {thai_df.shape}')
+ print(f'japanese df: {japanese_df.shape}')
+ print(f'chinese df: {chinese_df.shape}')
+ print(f'indian df: {indian_df.shape}')
+ print(f'korean df: {korean_df.shape}')
+ ```
+
+ matokeo yanaonekana kama hivi:
+
+ ```output
+ thai df: (289, 385)
+ japanese df: (320, 385)
+ chinese df: (442, 385)
+ indian df: (598, 385)
+ korean df: (799, 385)
+ ```
+
+## Kugundua viungo
+
+Sasa unaweza kuchimba zaidi katika data na kujifunza ni viungo gani vya kawaida kwa kila aina ya chakula. Unapaswa kusafisha data inayojirudia ambayo inasababisha mkanganyiko kati ya vyakula, kwa hivyo hebu tujifunze kuhusu tatizo hili.
+
+1. Unda kazi `create_ingredient()` katika Python ili kuunda fremu ya data ya viungo. Kazi hii itaanza kwa kuondoa safu isiyo ya msaada na kuchagua viungo kulingana na idadi yao:
+
+ ```python
+ def create_ingredient_df(df):
+ ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value')
+ ingredient_df = ingredient_df[(ingredient_df.T != 0).any()]
+ ingredient_df = ingredient_df.sort_values(by='value', ascending=False,
+ inplace=False)
+ return ingredient_df
+ ```
+
+ Sasa unaweza kutumia kazi hiyo kupata wazo la viungo kumi maarufu zaidi kwa kila aina ya chakula.
+
+1. Ita `create_ingredient()` na uchore kwa kuita `barh()`:
+
+ ```python
+ thai_ingredient_df = create_ingredient_df(thai_df)
+ thai_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Fanya vivyo hivyo kwa data ya Kijapani:
+
+ ```python
+ japanese_ingredient_df = create_ingredient_df(japanese_df)
+ japanese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Sasa kwa viungo vya Kichina:
+
+ ```python
+ chinese_ingredient_df = create_ingredient_df(chinese_df)
+ chinese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Chora viungo vya Kihindi:
+
+ ```python
+ indian_ingredient_df = create_ingredient_df(indian_df)
+ indian_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Hatimaye, chora viungo vya Kikorea:
+
+ ```python
+ korean_ingredient_df = create_ingredient_df(korean_df)
+ korean_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Sasa, ondoa viungo vya kawaida vinavyosababisha mkanganyiko kati ya vyakula tofauti, kwa kuita `drop()`:
+
+ Kila mtu anapenda mchele, vitunguu saumu na tangawizi!
+
+ ```python
+ feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1)
+ labels_df = df.cuisine #.unique()
+ feature_df.head()
+ ```
+
+## Ratibu seti ya data
+
+Sasa kwa kuwa umesafisha data, tumia [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Mbinu ya Kuongeza Sampuli za Wachache kwa Njia ya Kijumlisha" - kuiratibu.
+
+1. Ita `fit_resample()`, mkakati huu huzalisha sampuli mpya kwa njia ya uingiliaji.
+
+ ```python
+ oversample = SMOTE()
+ transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)
+ ```
+
+ Kwa kuratibu data yako, utapata matokeo bora wakati wa kuainisha. Fikiria kuhusu uainishaji wa binary. Ikiwa data yako nyingi ni ya darasa moja, mfano wa ML utatabiri darasa hilo mara nyingi zaidi, kwa sababu kuna data zaidi kwa ajili yake. Kuratibu data huchukua data iliyopotoshwa na husaidia kuondoa upotoshaji huu.
+
+1. Sasa unaweza kuangalia idadi ya lebo kwa kila kiungo:
+
+ ```python
+ print(f'new label count: {transformed_label_df.value_counts()}')
+ print(f'old label count: {df.cuisine.value_counts()}')
+ ```
+
+ Matokeo yako yanaonekana kama hivi:
+
+ ```output
+ new label count: korean 799
+ chinese 799
+ indian 799
+ japanese 799
+ thai 799
+ Name: cuisine, dtype: int64
+ old label count: korean 799
+ indian 598
+ chinese 442
+ japanese 320
+ thai 289
+ Name: cuisine, dtype: int64
+ ```
+
+ Data ni safi, imeratibiwa, na ni tamu sana!
+
+1. Hatua ya mwisho ni kuhifadhi data yako iliyoratibiwa, ikiwa ni pamoja na lebo na vipengele, katika fremu mpya ya data ambayo inaweza kusafirishwa kwenye faili:
+
+ ```python
+ transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer')
+ ```
+
+1. Unaweza kuchukua muonekano mmoja zaidi wa data kwa kutumia `transformed_df.head()` na `transformed_df.info()`. Hifadhi nakala ya data hii kwa matumizi katika masomo ya baadaye:
+
+ ```python
+ transformed_df.head()
+ transformed_df.info()
+ transformed_df.to_csv("../data/cleaned_cuisines.csv")
+ ```
+
+ CSV hii mpya sasa inaweza kupatikana katika folda ya data ya mzizi.
+
+---
+
+## 🚀Changamoto
+
+Mtaala huu una seti kadhaa za data za kuvutia. Chunguza folda za `data` na uone kama kuna yoyote inayojumuisha seti za data zinazofaa kwa uainishaji wa binary au darasa nyingi? Maswali gani ungeuliza kuhusu seti ya data hiyo?
+
+## [Maswali ya baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Chunguza API ya SMOTE. Inafaa kutumika kwa kesi gani? Inatatua matatizo gani?
+
+## Kazi
+
+[Chunguza mbinu za uainishaji](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
diff --git a/translations/sw/4-Classification/1-Introduction/assignment.md b/translations/sw/4-Classification/1-Introduction/assignment.md
new file mode 100644
index 00000000..f3a190dc
--- /dev/null
+++ b/translations/sw/4-Classification/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Chunguza mbinu za uainishaji
+
+## Maelekezo
+
+Katika [Scikit-learn documentation](https://scikit-learn.org/stable/supervised_learning.html) utapata orodha kubwa ya njia za kuainisha data. Fanya utafiti kidogo katika nyaraka hizi: lengo lako ni kutafuta mbinu za uainishaji na kulinganisha na seti ya data katika mtaala huu, swali unaloweza kuuliza kuhusu data hiyo, na mbinu ya uainishaji. Unda lahajedwali au jedwali katika faili la .doc na eleza jinsi seti ya data ingefanya kazi na algoriti ya uainishaji.
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inayohitaji Kuboresha |
+| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| | hati inawasilishwa ikipitia algoriti 5 pamoja na mbinu ya uainishaji. Muhtasari umeelezwa vizuri na kwa kina. | hati inawasilishwa ikipitia algoriti 3 pamoja na mbinu ya uainishaji. Muhtasari umeelezwa vizuri na kwa kina. | hati inawasilishwa ikipitia algoriti chini ya tatu pamoja na mbinu ya uainishaji na muhtasari haujaelezwa vizuri wala kwa kina. |
+
+---
+
+**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
diff --git a/translations/sw/4-Classification/1-Introduction/solution/Julia/README.md b/translations/sw/4-Classification/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..5a452780
--- /dev/null
+++ b/translations/sw/4-Classification/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/4-Classification/2-Classifiers-1/README.md b/translations/sw/4-Classification/2-Classifiers-1/README.md
new file mode 100644
index 00000000..e7f12e1b
--- /dev/null
+++ b/translations/sw/4-Classification/2-Classifiers-1/README.md
@@ -0,0 +1,253 @@
+
+# Wainishaji wa vyakula 1
+
+Katika somo hili, utatumia seti ya data uliyohifadhi kutoka somo la mwisho iliyojaa data safi na yenye usawa kuhusu vyakula.
+
+Utatumia seti hii ya data na aina mbalimbali za wainishaji ili _kutabiri aina ya chakula cha kitaifa kulingana na kikundi cha viungo_. Wakati wa kufanya hivyo, utajifunza zaidi kuhusu baadhi ya njia ambazo algorithimu zinaweza kutumika kwa kazi za uainishaji.
+
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+# Maandalizi
+
+Ukikamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kuwa faili _cleaned_cuisines.csv_ ipo katika folda ya mizizi `/data` kwa masomo haya manne.
+
+## Zoezi - tabiri aina ya chakula cha kitaifa
+
+1. Ukifanya kazi katika folda ya _notebook.ipynb_ ya somo hili, leta faili hilo pamoja na maktaba ya Pandas:
+
+ ```python
+ import pandas as pd
+ cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv")
+ cuisines_df.head()
+ ```
+
+ Data inaonekana kama hii:
+
+| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+| 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
+
+
+1. Sasa, leta maktaba zaidi:
+
+ ```python
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ from sklearn.svm import SVC
+ import numpy as np
+ ```
+
+1. Gawanya viwianishi vya X na y katika fremu mbili za data kwa mafunzo. `cuisine` inaweza kuwa fremu ya lebo:
+
+ ```python
+ cuisines_label_df = cuisines_df['cuisine']
+ cuisines_label_df.head()
+ ```
+
+ Itaonekana kama hii:
+
+ ```output
+ 0 indian
+ 1 indian
+ 2 indian
+ 3 indian
+ 4 indian
+ Name: cuisine, dtype: object
+ ```
+
+1. Ondoa safu ya `Unnamed: 0` na safu ya `cuisine`, ukitumia `drop()`. Hifadhi data iliyobaki kama vipengele vya mafunzo:
+
+ ```python
+ cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
+ cuisines_feature_df.head()
+ ```
+
+ Vipengele vyako vinaonekana kama hii:
+
+| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
+| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
+
+Sasa uko tayari kufundisha modeli yako!
+
+## Kuchagua wainishaji wako
+
+Sasa data yako ni safi na tayari kwa mafunzo, unapaswa kuamua ni algorithimu gani ya kutumia kwa kazi hiyo.
+
+Scikit-learn inaweka uainishaji chini ya Kujifunza kwa Usimamizi, na katika kategoria hiyo utapata njia nyingi za kuainisha. [Aina mbalimbali](https://scikit-learn.org/stable/supervised_learning.html) zinaweza kuwa za kushangaza mwanzoni. Njia zifuatazo zote zinajumuisha mbinu za uainishaji:
+
+- Miundo ya Linear
+- Support Vector Machines
+- Stochastic Gradient Descent
+- Nearest Neighbors
+- Gaussian Processes
+- Decision Trees
+- Mbinu za Ensemble (Voting Classifier)
+- Algorithimu za Multiclass na multioutput (uainishaji wa multilabel, uainishaji wa multiclass-multioutput)
+
+> Unaweza pia kutumia [mitandao ya neva kuainisha data](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), lakini hiyo iko nje ya wigo wa somo hili.
+
+### Ni wainishaji gani wa kuchagua?
+
+Kwa hivyo, ni wainishaji gani unapaswa kuchagua? Mara nyingi, kujaribu kadhaa na kutafuta matokeo mazuri ni njia ya kupima. Scikit-learn inatoa [linganisho la kando kwa kando](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) kwenye seti ya data iliyoundwa, ikilinganishwa KNeighbors, SVC kwa njia mbili, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB na QuadraticDiscrinationAnalysis, ikionyesha matokeo kwa njia ya picha:
+
+
+> Mchoro uliotolewa kwenye nyaraka za Scikit-learn
+
+> AutoML inatatua tatizo hili kwa urahisi kwa kuendesha kulinganisha hizi kwenye wingu, ikikuruhusu kuchagua algorithimu bora kwa data yako. Jaribu [hapa](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
+
+### Njia bora zaidi
+
+Njia bora zaidi kuliko kubahatisha bila mpangilio, hata hivyo, ni kufuata mawazo kwenye [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) inayoweza kupakuliwa. Hapa, tunagundua kuwa, kwa tatizo letu la multiclass, tuna chaguo kadhaa:
+
+
+> Sehemu ya Algorithm Cheat Sheet ya Microsoft, ikielezea chaguo za uainishaji wa multiclass
+
+✅ Pakua cheatsheet hii, ichapishe, na uitundike ukutani kwako!
+
+### Mantiki
+
+Hebu tuone kama tunaweza kufikiria njia tofauti kulingana na vikwazo tulivyo navyo:
+
+- **Mitandao ya neva ni nzito sana**. Kwa kuzingatia seti yetu ya data safi lakini ndogo, na ukweli kwamba tunafanya mafunzo kwa ndani kupitia notebooks, mitandao ya neva ni nzito sana kwa kazi hii.
+- **Hakuna wainishaji wa darasa mbili**. Hatutumii wainishaji wa darasa mbili, kwa hivyo hiyo inatupilia mbali one-vs-all.
+- **Decision tree au logistic regression inaweza kufanya kazi**. Decision tree inaweza kufanya kazi, au logistic regression kwa data ya multiclass.
+- **Multiclass Boosted Decision Trees hutatua tatizo tofauti**. Multiclass boosted decision tree inafaa zaidi kwa kazi zisizo za parametric, mfano kazi zilizoundwa kujenga viwango, kwa hivyo haitufai.
+
+### Kutumia Scikit-learn
+
+Tutatumia Scikit-learn kuchambua data yetu. Hata hivyo, kuna njia nyingi za kutumia logistic regression katika Scikit-learn. Angalia [vigezo vya kupitisha](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Kimsingi kuna vigezo viwili muhimu - `multi_class` na `solver` - ambavyo tunahitaji kubainisha, tunapoiomba Scikit-learn kufanya logistic regression. Thamani ya `multi_class` inatumia tabia fulani. Thamani ya solver ni algorithimu ya kutumia. Si solvers zote zinaweza kuunganishwa na thamani zote za `multi_class`.
+
+Kulingana na nyaraka, katika kesi ya multiclass, algorithimu ya mafunzo:
+
+- **Inatumia mpango wa one-vs-rest (OvR)**, ikiwa chaguo la `multi_class` limewekwa kuwa `ovr`
+- **Inatumia hasara ya cross-entropy**, ikiwa chaguo la `multi_class` limewekwa kuwa `multinomial`. (Kwa sasa chaguo la `multinomial` linasaidiwa tu na solvers ‘lbfgs’, ‘sag’, ‘saga’ na ‘newton-cg’.)"
+
+> 🎓 'Mpango' hapa unaweza kuwa 'ovr' (one-vs-rest) au 'multinomial'. Kwa kuwa logistic regression imeundwa hasa kusaidia uainishaji wa binary, mipango hii inaiwezesha kushughulikia kazi za uainishaji wa multiclass vizuri zaidi. [chanzo](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
+
+> 🎓 'Solver' inafafanuliwa kama "algorithimu ya kutumia katika tatizo la uboreshaji". [chanzo](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Scikit-learn inatoa jedwali hili kuelezea jinsi solvers zinavyoshughulikia changamoto tofauti zinazotolewa na miundo tofauti ya data:
+
+
+
+## Zoezi - gawanya data
+
+Tunaweza kuzingatia logistic regression kwa jaribio letu la kwanza la mafunzo kwa kuwa ulijifunza hivi karibuni kuhusu hili katika somo la awali.
+Gawanya data yako katika vikundi vya mafunzo na majaribio kwa kutumia `train_test_split()`:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+```
+
+## Zoezi - tumia logistic regression
+
+Kwa kuwa unatumia kesi ya multiclass, unahitaji kuchagua ni _mpango_ gani wa kutumia na ni _solver_ gani wa kuweka. Tumia LogisticRegression na mpangilio wa multiclass na solver **liblinear** kwa mafunzo.
+
+1. Unda logistic regression na multi_class iliyowekwa kuwa `ovr` na solver iliyowekwa kuwa `liblinear`:
+
+ ```python
+ lr = LogisticRegression(multi_class='ovr',solver='liblinear')
+ model = lr.fit(X_train, np.ravel(y_train))
+
+ accuracy = model.score(X_test, y_test)
+ print ("Accuracy is {}".format(accuracy))
+ ```
+
+ ✅ Jaribu solver tofauti kama `lbfgs`, ambayo mara nyingi huwekwa kama chaguo-msingi
+> Kumbuka, tumia Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) kazi ili kulainisha data yako inapohitajika.
+Usahihi ni mzuri kwa zaidi ya **80%!**
+
+1. Unaweza kuona mfano huu ukifanya kazi kwa kujaribu safu moja ya data (#50):
+
+ ```python
+ print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
+ print(f'cuisine: {y_test.iloc[50]}')
+ ```
+
+ Matokeo yanachapishwa:
+
+ ```output
+ ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
+ cuisine: indian
+ ```
+
+ ✅ Jaribu namba tofauti ya safu na angalia matokeo
+
+1. Kuchunguza zaidi, unaweza kuangalia usahihi wa utabiri huu:
+
+ ```python
+ test= X_test.iloc[50].values.reshape(-1, 1).T
+ proba = model.predict_proba(test)
+ classes = model.classes_
+ resultdf = pd.DataFrame(data=proba, columns=classes)
+
+ topPrediction = resultdf.T.sort_values(by=[0], ascending = [False])
+ topPrediction.head()
+ ```
+
+ Matokeo yanachapishwa - vyakula vya Kihindi ni dhana bora zaidi, kwa uwezekano mzuri:
+
+ | | 0 |
+ | -------: | -------: |
+ | indian | 0.715851 |
+ | chinese | 0.229475 |
+ | japanese | 0.029763 |
+ | korean | 0.017277 |
+ | thai | 0.007634 |
+
+ ✅ Je, unaweza kueleza kwa nini mfano una uhakika kuwa hiki ni chakula cha Kihindi?
+
+1. Pata maelezo zaidi kwa kuchapisha ripoti ya uainishaji, kama ulivyofanya katika masomo ya regression:
+
+ ```python
+ y_pred = model.predict(X_test)
+ print(classification_report(y_test,y_pred))
+ ```
+
+ | | precision | recall | f1-score | support |
+ | ------------ | --------- | ------ | -------- | ------- |
+ | chinese | 0.73 | 0.71 | 0.72 | 229 |
+ | indian | 0.91 | 0.93 | 0.92 | 254 |
+ | japanese | 0.70 | 0.75 | 0.72 | 220 |
+ | korean | 0.86 | 0.76 | 0.81 | 242 |
+ | thai | 0.79 | 0.85 | 0.82 | 254 |
+ | accuracy | 0.80 | 1199 | | |
+ | macro avg | 0.80 | 0.80 | 0.80 | 1199 |
+ | weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
+
+## 🚀Changamoto
+
+Katika somo hili, ulitumia data yako iliyosafishwa kujenga mfano wa kujifunza mashine ambao unaweza kutabiri aina ya chakula cha kitaifa kulingana na mfululizo wa viungo. Chukua muda kusoma chaguo nyingi ambazo Scikit-learn inatoa ili kuainisha data. Chunguza zaidi dhana ya 'solver' ili kuelewa kinachotokea nyuma ya pazia.
+
+## [Maswali baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio & Kujisomea
+
+Chunguza zaidi hesabu nyuma ya logistic regression katika [somo hili](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
+## Kazi
+
+[Chunguza solvers](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya kutafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatutawajibika kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
\ No newline at end of file
diff --git a/translations/sw/4-Classification/2-Classifiers-1/assignment.md b/translations/sw/4-Classification/2-Classifiers-1/assignment.md
new file mode 100644
index 00000000..4a332ac5
--- /dev/null
+++ b/translations/sw/4-Classification/2-Classifiers-1/assignment.md
@@ -0,0 +1,23 @@
+
+# Jifunze kuhusu solvers
+## Maelekezo
+
+Katika somo hili ulijifunza kuhusu solvers mbalimbali zinazochanganya algorithimu na mchakato wa kujifunza kwa mashine ili kuunda modeli sahihi. Pitia solvers zilizoorodheshwa katika somo na chagua mbili. Kwa maneno yako mwenyewe, linganisha na tofautisha solvers hizi mbili. Ni aina gani ya tatizo wanashughulikia? Wanavyofanya kazi na miundo mbalimbali ya data? Kwa nini ungechagua moja badala ya nyingine?
+## Rubric
+
+| Vigezo | Bora | Inayotosheleza | Inayohitaji Uboreshaji |
+| -------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------- | ---------------------------- |
+| | Faili ya .doc imewasilishwa ikiwa na aya mbili, moja kwa kila solver, ikilinganishwa kwa umakini. | Faili ya .doc imewasilishwa ikiwa na aya moja tu | Kazi haijakamilika |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/4-Classification/2-Classifiers-1/solution/Julia/README.md b/translations/sw/4-Classification/2-Classifiers-1/solution/Julia/README.md
new file mode 100644
index 00000000..786ce7ed
--- /dev/null
+++ b/translations/sw/4-Classification/2-Classifiers-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatutawajibika kwa kutokuelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
\ No newline at end of file
diff --git a/translations/sw/4-Classification/3-Classifiers-2/README.md b/translations/sw/4-Classification/3-Classifiers-2/README.md
new file mode 100644
index 00000000..a12f1066
--- /dev/null
+++ b/translations/sw/4-Classification/3-Classifiers-2/README.md
@@ -0,0 +1,249 @@
+
+# Wainishi wa vyakula 2
+
+Katika somo hili la pili la uainishaji, utachunguza njia zaidi za kuainisha data ya nambari. Pia utajifunza kuhusu athari za kuchagua mainishi moja badala ya jingine.
+
+## [Jaribio la awali la somo](https://ff-quizzes.netlify.app/en/ml/)
+
+### Mahitaji ya awali
+
+Tunadhani kuwa umekamilisha masomo ya awali na una dataset iliyosafishwa katika folda yako ya `data` inayoitwa _cleaned_cuisines.csv_ katika mzizi wa folda hii ya masomo 4.
+
+### Maandalizi
+
+Tumeweka faili yako ya _notebook.ipynb_ na dataset iliyosafishwa na tumeigawanya katika fremu za data za X na y, tayari kwa mchakato wa kujenga modeli.
+
+## Ramani ya uainishaji
+
+Hapo awali, ulijifunza kuhusu chaguo mbalimbali unazoweza kutumia kuainisha data kwa kutumia karatasi ya udanganyifu ya Microsoft. Scikit-learn inatoa karatasi ya udanganyifu inayofanana, lakini ya kina zaidi, ambayo inaweza kusaidia zaidi kupunguza chaguo zako za makadirio (neno lingine kwa wainishi):
+
+
+> Kidokezo: [tembelea ramani hii mtandaoni](https://scikit-learn.org/stable/tutorial/machine_learning_map/) na bonyeza njia zake kusoma nyaraka.
+
+### Mpango
+
+Ramani hii ni muhimu sana mara tu unapokuwa na uelewa wa wazi wa data yako, kwani unaweza 'kutembea' kwenye njia zake hadi kufikia uamuzi:
+
+- Tuna sampuli >50
+- Tunataka kutabiri kategoria
+- Tuna data yenye lebo
+- Tuna sampuli chini ya 100K
+- ✨ Tunaweza kuchagua Linear SVC
+- Ikiwa hiyo haifanyi kazi, kwa kuwa tuna data ya nambari
+ - Tunaweza kujaribu ✨ KNeighbors Classifier
+ - Ikiwa hiyo haifanyi kazi, jaribu ✨ SVC na ✨ Ensemble Classifiers
+
+Hii ni njia muhimu sana ya kufuata.
+
+## Zoezi - gawanya data
+
+Kwa kufuata njia hii, tunapaswa kuanza kwa kuingiza baadhi ya maktaba za kutumia.
+
+1. Ingiza maktaba zinazohitajika:
+
+ ```python
+ from sklearn.neighbors import KNeighborsClassifier
+ from sklearn.linear_model import LogisticRegression
+ from sklearn.svm import SVC
+ from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
+ from sklearn.model_selection import train_test_split, cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve
+ import numpy as np
+ ```
+
+1. Gawanya data yako ya mafunzo na majaribio:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+ ```
+
+## Wainishi wa Linear SVC
+
+Support-Vector clustering (SVC) ni sehemu ya familia ya Support-Vector machines ya mbinu za ML (jifunze zaidi kuhusu hizi hapa chini). Katika mbinu hii, unaweza kuchagua 'kernel' kuamua jinsi ya kuainisha lebo. Kipengele cha 'C' kinahusu 'regularization' ambacho kinadhibiti ushawishi wa vigezo. Kernel inaweza kuwa moja ya [kadhaa](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); hapa tunaiweka kuwa 'linear' ili kuhakikisha tunatumia Linear SVC. Uwezekano unakuwa 'false' kwa default; hapa tunaiweka kuwa 'true' ili kupata makadirio ya uwezekano. Tunaiweka random state kuwa '0' ili kuchanganya data kupata uwezekano.
+
+### Zoezi - tumia Linear SVC
+
+Anza kwa kuunda safu ya wainishi. Utaongeza hatua kwa hatua kwenye safu hii tunapojaribu.
+
+1. Anza na Linear SVC:
+
+ ```python
+ C = 10
+ # Create different classifiers.
+ classifiers = {
+ 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
+ }
+ ```
+
+2. Funza modeli yako kwa kutumia Linear SVC na chapisha ripoti:
+
+ ```python
+ n_classifiers = len(classifiers)
+
+ for index, (name, classifier) in enumerate(classifiers.items()):
+ classifier.fit(X_train, np.ravel(y_train))
+
+ y_pred = classifier.predict(X_test)
+ accuracy = accuracy_score(y_test, y_pred)
+ print("Accuracy (train) for %s: %0.1f%% " % (name, accuracy * 100))
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Matokeo ni mazuri:
+
+ ```output
+ Accuracy (train) for Linear SVC: 78.6%
+ precision recall f1-score support
+
+ chinese 0.71 0.67 0.69 242
+ indian 0.88 0.86 0.87 234
+ japanese 0.79 0.74 0.76 254
+ korean 0.85 0.81 0.83 242
+ thai 0.71 0.86 0.78 227
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+## Wainishi wa K-Neighbors
+
+K-Neighbors ni sehemu ya familia ya "neighbors" ya mbinu za ML, ambazo zinaweza kutumika kwa kujifunza kwa usimamizi na bila usimamizi. Katika mbinu hii, idadi ya alama zilizowekwa awali huundwa na data hukusanywa karibu na alama hizi ili lebo za jumla ziweze kutabiriwa kwa data.
+
+### Zoezi - tumia wainishi wa K-Neighbors
+
+Wainishi wa awali ulikuwa mzuri, na ulifanya kazi vizuri na data, lakini labda tunaweza kupata usahihi bora. Jaribu wainishi wa K-Neighbors.
+
+1. Ongeza mstari kwenye safu yako ya wainishi (ongeza koma baada ya kipengele cha Linear SVC):
+
+ ```python
+ 'KNN classifier': KNeighborsClassifier(C),
+ ```
+
+ Matokeo ni kidogo mabaya:
+
+ ```output
+ Accuracy (train) for KNN classifier: 73.8%
+ precision recall f1-score support
+
+ chinese 0.64 0.67 0.66 242
+ indian 0.86 0.78 0.82 234
+ japanese 0.66 0.83 0.74 254
+ korean 0.94 0.58 0.72 242
+ thai 0.71 0.82 0.76 227
+
+ accuracy 0.74 1199
+ macro avg 0.76 0.74 0.74 1199
+ weighted avg 0.76 0.74 0.74 1199
+ ```
+
+ ✅ Jifunze kuhusu [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
+
+## Wainishi wa Support Vector
+
+Wainishi wa Support-Vector ni sehemu ya familia ya [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) ya mbinu za ML zinazotumika kwa kazi za uainishaji na urejeleaji. SVMs "huweka mifano ya mafunzo kwenye alama katika nafasi" ili kuongeza umbali kati ya kategoria mbili. Data inayofuata huwekwa kwenye nafasi hii ili kategoria yake iweze kutabiriwa.
+
+### Zoezi - tumia wainishi wa Support Vector
+
+Hebu jaribu kupata usahihi bora kidogo kwa wainishi wa Support Vector.
+
+1. Ongeza koma baada ya kipengele cha K-Neighbors, kisha ongeza mstari huu:
+
+ ```python
+ 'SVC': SVC(),
+ ```
+
+ Matokeo ni mazuri sana!
+
+ ```output
+ Accuracy (train) for SVC: 83.2%
+ precision recall f1-score support
+
+ chinese 0.79 0.74 0.76 242
+ indian 0.88 0.90 0.89 234
+ japanese 0.87 0.81 0.84 254
+ korean 0.91 0.82 0.86 242
+ thai 0.74 0.90 0.81 227
+
+ accuracy 0.83 1199
+ macro avg 0.84 0.83 0.83 1199
+ weighted avg 0.84 0.83 0.83 1199
+ ```
+
+ ✅ Jifunze kuhusu [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
+
+## Wainishi wa Ensemble
+
+Hebu fuata njia hadi mwisho kabisa, ingawa jaribio la awali lilikuwa zuri sana. Hebu jaribu baadhi ya 'Ensemble Classifiers', hasa Random Forest na AdaBoost:
+
+```python
+ 'RFST': RandomForestClassifier(n_estimators=100),
+ 'ADA': AdaBoostClassifier(n_estimators=100)
+```
+
+Matokeo ni mazuri sana, hasa kwa Random Forest:
+
+```output
+Accuracy (train) for RFST: 84.5%
+ precision recall f1-score support
+
+ chinese 0.80 0.77 0.78 242
+ indian 0.89 0.92 0.90 234
+ japanese 0.86 0.84 0.85 254
+ korean 0.88 0.83 0.85 242
+ thai 0.80 0.87 0.83 227
+
+ accuracy 0.84 1199
+ macro avg 0.85 0.85 0.84 1199
+weighted avg 0.85 0.84 0.84 1199
+
+Accuracy (train) for ADA: 72.4%
+ precision recall f1-score support
+
+ chinese 0.64 0.49 0.56 242
+ indian 0.91 0.83 0.87 234
+ japanese 0.68 0.69 0.69 254
+ korean 0.73 0.79 0.76 242
+ thai 0.67 0.83 0.74 227
+
+ accuracy 0.72 1199
+ macro avg 0.73 0.73 0.72 1199
+weighted avg 0.73 0.72 0.72 1199
+```
+
+✅ Jifunze kuhusu [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
+
+Mbinu hii ya Kujifunza kwa Mashine "inaunganisha makadirio ya wainishi kadhaa wa msingi" ili kuboresha ubora wa modeli. Katika mfano wetu, tulitumia Random Trees na AdaBoost.
+
+- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), mbinu ya wastani, huunda 'msitu' wa 'miti ya maamuzi' yenye nasibu ili kuepuka overfitting. Kipengele cha n_estimators kimewekwa kwa idadi ya miti.
+
+- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) huweka wainishi kwenye dataset na kisha huweka nakala za wainishi huo kwenye dataset hiyo hiyo. Inazingatia uzito wa vitu vilivyoainishwa vibaya na kurekebisha fit kwa wainishi unaofuata ili kusahihisha.
+
+---
+
+## 🚀Changamoto
+
+Kila moja ya mbinu hizi ina idadi kubwa ya vigezo ambavyo unaweza kurekebisha. Tafiti vigezo vya default vya kila moja na fikiria kuhusu maana ya kurekebisha vigezo hivi kwa ubora wa modeli.
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio & Kujisomea
+
+Kuna msamiati mwingi katika masomo haya, kwa hivyo chukua muda kupitia [orodha hii](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) ya istilahi muhimu!
+
+## Kazi
+
+[Cheza na vigezo](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
diff --git a/translations/sw/4-Classification/3-Classifiers-2/assignment.md b/translations/sw/4-Classification/3-Classifiers-2/assignment.md
new file mode 100644
index 00000000..b2866ec5
--- /dev/null
+++ b/translations/sw/4-Classification/3-Classifiers-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Mchezo wa Vigezo
+
+## Maelekezo
+
+Kuna vigezo vingi ambavyo vimewekwa kwa chaguo-msingi unapotumia viainishi hivi. Intellisense katika VS Code inaweza kukusaidia kuchunguza vigezo hivyo. Chagua mojawapo ya Mbinu za Uainishaji wa ML katika somo hili na ufunze upya mifano ukibadilisha thamani mbalimbali za vigezo. Tengeneza daftari la maelezo linaloeleza kwa nini baadhi ya mabadiliko yanaboresha ubora wa mfano huku mengine yakiharibu. Kuwa na maelezo ya kina katika jibu lako.
+
+## Rubric
+
+| Kigezo | Kilele | Kinachokubalika | Kinachohitaji Kuboresha |
+| -------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------- |
+| | Daftari la maelezo linawasilishwa likiwa na kiainishi kilichojengwa kikamilifu na vigezo vyake vimebadilishwa na mabadiliko yameelezwa katika visanduku vya maandishi | Daftari la maelezo linawasilishwa kwa sehemu au limeelezwa vibaya | Daftari la maelezo lina hitilafu au kasoro |
+
+---
+
+**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
diff --git a/translations/sw/4-Classification/3-Classifiers-2/solution/Julia/README.md b/translations/sw/4-Classification/3-Classifiers-2/solution/Julia/README.md
new file mode 100644
index 00000000..9cb58b65
--- /dev/null
+++ b/translations/sw/4-Classification/3-Classifiers-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/4-Classification/4-Applied/README.md b/translations/sw/4-Classification/4-Applied/README.md
new file mode 100644
index 00000000..e39a6b3e
--- /dev/null
+++ b/translations/sw/4-Classification/4-Applied/README.md
@@ -0,0 +1,328 @@
+
+# Jenga Programu ya Wavuti ya Mapendekezo ya Vyakula
+
+Katika somo hili, utajenga mfano wa uainishaji kwa kutumia baadhi ya mbinu ulizojifunza katika masomo ya awali na kwa kutumia seti ya data ya vyakula vitamu iliyotumika katika mfululizo huu. Zaidi ya hayo, utajenga programu ndogo ya wavuti kutumia mfano uliosajiliwa, ukitumia Onnx's web runtime.
+
+Moja ya matumizi muhimu ya kujifunza kwa mashine ni kujenga mifumo ya mapendekezo, na leo unaweza kuchukua hatua ya kwanza kuelekea mwelekeo huo!
+
+[](https://youtu.be/17wdM9AHMfg "Applied ML")
+
+> 🎥 Bofya picha hapo juu kwa video: Jen Looper anajenga programu ya wavuti kwa kutumia data ya vyakula vilivyowekwa daraja
+
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+Katika somo hili utajifunza:
+
+- Jinsi ya kujenga mfano na kuuhifadhi kama mfano wa Onnx
+- Jinsi ya kutumia Netron kukagua mfano
+- Jinsi ya kutumia mfano wako katika programu ya wavuti kwa ajili ya utabiri
+
+## Jenga mfano wako
+
+Kujenga mifumo ya ML inayotumika ni sehemu muhimu ya kutumia teknolojia hizi katika mifumo ya biashara yako. Unaweza kutumia mifano ndani ya programu zako za wavuti (na hivyo kuitumia katika muktadha wa nje ya mtandao ikiwa inahitajika) kwa kutumia Onnx.
+
+Katika [somo la awali](../../3-Web-App/1-Web-App/README.md), ulijenga mfano wa Regression kuhusu matukio ya UFO, "ukapickle" na kuutumia katika programu ya Flask. Ingawa usanifu huu ni muhimu kujua, ni programu kamili ya Python, na mahitaji yako yanaweza kujumuisha matumizi ya programu ya JavaScript.
+
+Katika somo hili, unaweza kujenga mfumo wa msingi wa JavaScript kwa ajili ya utabiri. Kwanza, hata hivyo, unahitaji kufundisha mfano na kuubadilisha kwa matumizi na Onnx.
+
+## Zoezi - fundisha mfano wa uainishaji
+
+Kwanza, fundisha mfano wa uainishaji kwa kutumia seti ya data ya vyakula vilivyotakaswa tuliyotumia.
+
+1. Anza kwa kuingiza maktaba muhimu:
+
+ ```python
+ !pip install skl2onnx
+ import pandas as pd
+ ```
+
+ Unahitaji '[skl2onnx](https://onnx.ai/sklearn-onnx/)' kusaidia kubadilisha mfano wako wa Scikit-learn kuwa muundo wa Onnx.
+
+1. Kisha, fanya kazi na data yako kwa njia ile ile ulivyofanya katika masomo ya awali, kwa kusoma faili ya CSV kwa kutumia `read_csv()`:
+
+ ```python
+ data = pd.read_csv('../data/cleaned_cuisines.csv')
+ data.head()
+ ```
+
+1. Ondoa safu mbili za kwanza zisizo za lazima na uhifadhi data iliyobaki kama 'X':
+
+ ```python
+ X = data.iloc[:,2:]
+ X.head()
+ ```
+
+1. Hifadhi lebo kama 'y':
+
+ ```python
+ y = data[['cuisine']]
+ y.head()
+
+ ```
+
+### Anza utaratibu wa mafunzo
+
+Tutatumia maktaba ya 'SVC' ambayo ina usahihi mzuri.
+
+1. Ingiza maktaba zinazofaa kutoka Scikit-learn:
+
+ ```python
+ from sklearn.model_selection import train_test_split
+ from sklearn.svm import SVC
+ from sklearn.model_selection import cross_val_score
+ from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report
+ ```
+
+1. Tenganisha seti za mafunzo na majaribio:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
+ ```
+
+1. Jenga mfano wa Uainishaji wa SVC kama ulivyofanya katika somo la awali:
+
+ ```python
+ model = SVC(kernel='linear', C=10, probability=True,random_state=0)
+ model.fit(X_train,y_train.values.ravel())
+ ```
+
+1. Sasa, jaribu mfano wako, ukitumia `predict()`:
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+1. Chapisha ripoti ya uainishaji ili kukagua ubora wa mfano:
+
+ ```python
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Kama tulivyoona awali, usahihi ni mzuri:
+
+ ```output
+ precision recall f1-score support
+
+ chinese 0.72 0.69 0.70 257
+ indian 0.91 0.87 0.89 243
+ japanese 0.79 0.77 0.78 239
+ korean 0.83 0.79 0.81 236
+ thai 0.72 0.84 0.78 224
+
+ accuracy 0.79 1199
+ macro avg 0.79 0.79 0.79 1199
+ weighted avg 0.79 0.79 0.79 1199
+ ```
+
+### Badilisha mfano wako kuwa Onnx
+
+Hakikisha kufanya ubadilishaji kwa idadi sahihi ya Tensor. Seti hii ya data ina viungo 380 vilivyoorodheshwa, kwa hivyo unahitaji kuandika idadi hiyo katika `FloatTensorType`:
+
+1. Badilisha kwa kutumia idadi ya tensor ya 380.
+
+ ```python
+ from skl2onnx import convert_sklearn
+ from skl2onnx.common.data_types import FloatTensorType
+
+ initial_type = [('float_input', FloatTensorType([None, 380]))]
+ options = {id(model): {'nocl': True, 'zipmap': False}}
+ ```
+
+1. Unda onx na uhifadhi kama faili **model.onnx**:
+
+ ```python
+ onx = convert_sklearn(model, initial_types=initial_type, options=options)
+ with open("./model.onnx", "wb") as f:
+ f.write(onx.SerializeToString())
+ ```
+
+ > Kumbuka, unaweza kupitisha [chaguzi](https://onnx.ai/sklearn-onnx/parameterized.html) katika script yako ya ubadilishaji. Katika kesi hii, tulipitisha 'nocl' kuwa True na 'zipmap' kuwa False. Kwa kuwa huu ni mfano wa uainishaji, una chaguo la kuondoa ZipMap ambayo inazalisha orodha ya kamusi (sio lazima). `nocl` inahusu taarifa za darasa kujumuishwa katika mfano. Punguza ukubwa wa mfano wako kwa kuweka `nocl` kuwa 'True'.
+
+Kuendesha daftari nzima sasa kutajenga mfano wa Onnx na kuuhifadhi kwenye folda hii.
+
+## Tazama mfano wako
+
+Mifano ya Onnx si rahisi kuonekana katika Visual Studio Code, lakini kuna programu nzuri ya bure ambayo watafiti wengi hutumia kuona mfano ili kuhakikisha kuwa umejengwa vizuri. Pakua [Netron](https://github.com/lutzroeder/Netron) na fungua faili yako ya model.onnx. Unaweza kuona mfano wako rahisi ukiwa umeonyeshwa, na viingizo vyake 380 na uainishaji vilivyoorodheshwa:
+
+
+
+Netron ni zana muhimu ya kutazama mifano yako.
+
+Sasa uko tayari kutumia mfano huu mzuri katika programu ya wavuti. Hebu tujenge programu ambayo itakuwa muhimu unapochunguza jokofu lako na kujaribu kugundua mchanganyiko wa viungo vilivyobaki ambavyo unaweza kutumia kupika chakula fulani, kama ilivyoamuliwa na mfano wako.
+
+## Jenga programu ya wavuti ya mapendekezo
+
+Unaweza kutumia mfano wako moja kwa moja katika programu ya wavuti. Usanifu huu pia hukuruhusu kuendesha programu hiyo kwa ndani na hata nje ya mtandao ikiwa inahitajika. Anza kwa kuunda faili `index.html` katika folda ile ile ambapo ulihifadhi faili yako ya `model.onnx`.
+
+1. Katika faili hii _index.html_, ongeza markup ifuatayo:
+
+ ```html
+
+
+
+ Cuisine Matcher
+
+
+ ...
+
+
+ ```
+
+1. Sasa, ukifanya kazi ndani ya vitambulisho vya `body`, ongeza markup kidogo kuonyesha orodha ya visanduku vya kuangalia vinavyoonyesha baadhi ya viungo:
+
+ ```html
+
Check your refrigerator. What can you create?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ```
+
+ Kumbuka kwamba kila kisanduku cha kuangalia kimepewa thamani. Hii inaonyesha index ambapo kiungo kinapatikana kulingana na seti ya data. Apple, kwa mfano, katika orodha hii ya alfabeti, inachukua safu ya tano, kwa hivyo thamani yake ni '4' kwa kuwa tunaanza kuhesabu kutoka 0. Unaweza kushauriana na [spreadsheet ya viungo](../../../../4-Classification/data/ingredient_indexes.csv) kugundua index ya kiungo fulani.
+
+ Ukiendelea kufanya kazi katika faili ya index.html, ongeza block ya script ambapo mfano unaitwa baada ya kufunga mwisho ``.
+
+1. Kwanza, ingiza [Onnx Runtime](https://www.onnxruntime.ai/):
+
+ ```html
+
+ ```
+
+ > Onnx Runtime hutumika kuwezesha kuendesha mifano yako ya Onnx kwenye anuwai ya majukwaa ya vifaa, ikiwa ni pamoja na uboreshaji na API ya kutumia.
+
+1. Mara Runtime iko mahali, unaweza kuuita:
+
+ ```html
+
+ ```
+
+Katika msimbo huu, kuna mambo kadhaa yanayotokea:
+
+1. Uliunda safu ya thamani 380 zinazowezekana (1 au 0) kuwekwa na kutumwa kwa mfano kwa utabiri, kulingana na kama kisanduku cha kuangalia kimechaguliwa.
+2. Uliunda safu ya visanduku vya kuangalia na njia ya kuamua kama vilichaguliwa katika kazi ya `init` ambayo inaitwa wakati programu inaanza. Wakati kisanduku cha kuangalia kinachaguliwa, safu ya `ingredients` hubadilishwa kuonyesha kiungo kilichochaguliwa.
+3. Uliunda kazi ya `testCheckboxes` ambayo hukagua kama kisanduku chochote cha kuangalia kilichaguliwa.
+4. Unatumia kazi ya `startInference` wakati kitufe kinapobanwa, na, ikiwa kisanduku chochote cha kuangalia kimechaguliwa, unaanza utabiri.
+5. Utaratibu wa utabiri unajumuisha:
+ 1. Kuweka upakiaji wa mfano kwa njia ya asynchronous
+ 2. Kuunda muundo wa Tensor kutumwa kwa mfano
+ 3. Kuunda 'feeds' zinazoonyesha `float_input` uliounda wakati wa kufundisha mfano wako (unaweza kutumia Netron kuthibitisha jina hilo)
+ 4. Kutuma 'feeds' hizi kwa mfano na kusubiri majibu
+
+## Jaribu programu yako
+
+Fungua kikao cha terminal katika Visual Studio Code kwenye folda ambapo faili yako ya index.html iko. Hakikisha kuwa una [http-server](https://www.npmjs.com/package/http-server) imewekwa kimataifa, na andika `http-server` kwenye prompt. Seva ya localhost inapaswa kufunguka na unaweza kuona programu yako ya wavuti. Angalia ni chakula gani kinapendekezwa kulingana na viungo mbalimbali:
+
+
+
+Hongera, umeunda programu ya wavuti ya 'mapendekezo' yenye sehemu chache. Chukua muda kujenga mfumo huu zaidi!
+## 🚀Changamoto
+
+Programu yako ya wavuti ni ya msingi sana, kwa hivyo endelea kuijenga kwa kutumia viungo na index zao kutoka data ya [ingredient_indexes](../../../../4-Classification/data/ingredient_indexes.csv). Ni mchanganyiko gani wa ladha unafanya kazi kuunda chakula cha kitaifa fulani?
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Ingawa somo hili limegusia tu matumizi ya kujenga mfumo wa mapendekezo kwa viungo vya chakula, eneo hili la matumizi ya ML lina mifano mingi tajiri. Soma zaidi kuhusu jinsi mifumo hii inavyojengwa:
+
+- https://www.sciencedirect.com/topics/computer-science/recommendation-engine
+- https://www.technologyreview.com/2014/08/25/171547/the-ultimate-challenge-for-recommendation-engines/
+- https://www.technologyreview.com/2015/03/23/168831/everything-is-a-recommendation/
+
+## Kazi
+
+[Jenga mfumo mpya wa mapendekezo](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/4-Classification/4-Applied/assignment.md b/translations/sw/4-Classification/4-Applied/assignment.md
new file mode 100644
index 00000000..5b701e45
--- /dev/null
+++ b/translations/sw/4-Classification/4-Applied/assignment.md
@@ -0,0 +1,25 @@
+
+# Jenga pendekezo
+
+## Maelekezo
+
+Kwa kuzingatia mazoezi yako katika somo hili, sasa unajua jinsi ya kujenga programu ya wavuti inayotumia JavaScript kwa kutumia Onnx Runtime na modeli iliyobadilishwa ya Onnx. Jaribu kujenga pendekezo jipya ukitumia data kutoka masomo haya au kutoka mahali pengine (tafadhali toa sifa inapohitajika). Unaweza kuunda pendekezo la wanyama kipenzi kulingana na sifa mbalimbali za tabia, au pendekezo la aina ya muziki kulingana na hali ya mtu. Kuwa mbunifu!
+
+## Rubric
+
+| Vigezo | Bora kabisa | Inayotosheleza | Inahitaji Kuboresha |
+| ------- | --------------------------------------------------------------------- | ------------------------------------- | ---------------------------------- |
+| | Programu ya wavuti na daftari zinawasilishwa, zote zimeandikwa vizuri na zinafanya kazi | Moja kati ya hizo mbili haipo au ina kasoro | Zote mbili hazipo au zina kasoro |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati asilia 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
diff --git a/translations/sw/4-Classification/README.md b/translations/sw/4-Classification/README.md
new file mode 100644
index 00000000..f25820ae
--- /dev/null
+++ b/translations/sw/4-Classification/README.md
@@ -0,0 +1,41 @@
+
+# Kuanza na Uainishaji
+
+## Mada ya Kieneo: Mapishi Matamu ya Kiasia na Kihindi 🍜
+
+Barani Asia na India, mila za chakula ni tofauti sana na pia ni tamu mno! Hebu tuangalie data kuhusu mapishi ya kieneo ili kujaribu kuelewa viungo vyake.
+
+
+> Picha na Lisheng Chang kwenye Unsplash
+
+## Kile Utakachojifunza
+
+Katika sehemu hii, utaendeleza masomo yako ya awali kuhusu Usawazishaji (Regression) na kujifunza kuhusu aina nyingine za uainishaji ambazo unaweza kutumia ili kuelewa data vizuri zaidi.
+
+> Kuna zana rahisi za kutumia ambazo zinaweza kukusaidia kujifunza jinsi ya kufanya kazi na mifano ya uainishaji. Jaribu [Azure ML kwa kazi hii](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Masomo
+
+1. [Utangulizi wa uainishaji](1-Introduction/README.md)
+2. [Aina zaidi za uainishaji](2-Classifiers-1/README.md)
+3. [Aina nyingine za uainishaji](3-Classifiers-2/README.md)
+4. [ML ya vitendo: tengeneza programu ya wavuti](4-Applied/README.md)
+
+## Shukrani
+
+"Kuanza na uainishaji" iliandikwa kwa ♥️ na [Cassie Breviu](https://www.twitter.com/cassiebreviu) na [Jen Looper](https://www.twitter.com/jenlooper)
+
+Seti ya data ya mapishi matamu ilitolewa kutoka [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines).
+
+---
+
+**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
diff --git a/translations/sw/5-Clustering/1-Visualize/README.md b/translations/sw/5-Clustering/1-Visualize/README.md
new file mode 100644
index 00000000..938e1fee
--- /dev/null
+++ b/translations/sw/5-Clustering/1-Visualize/README.md
@@ -0,0 +1,347 @@
+
+# Utangulizi wa clustering
+
+Clustering ni aina ya [Unsupervised Learning](https://wikipedia.org/wiki/Unsupervised_learning) inayodhani kuwa dataset haina lebo au kwamba maingizo yake hayajafungamanishwa na matokeo yaliyotanguliwa. Inatumia algorithmi mbalimbali kuchambua data isiyo na lebo na kutoa makundi kulingana na mifumo inayotambua kwenye data.
+
+[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
+
+> 🎥 Bofya picha hapo juu kwa video. Unapojifunza machine learning kwa kutumia clustering, furahia nyimbo za Dance Hall za Nigeria - hii ni wimbo uliopendwa sana kutoka 2014 na PSquare.
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+### Utangulizi
+
+[Clustering](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) ni muhimu sana kwa uchunguzi wa data. Hebu tuone kama inaweza kusaidia kugundua mitindo na mifumo katika jinsi hadhira ya Nigeria inavyotumia muziki.
+
+✅ Chukua dakika moja kufikiria matumizi ya clustering. Katika maisha ya kila siku, clustering hutokea kila unapokuwa na rundo la nguo na unahitaji kupanga nguo za wanafamilia wako 🧦👕👖🩲. Katika data science, clustering hutokea unapojaribu kuchambua mapendeleo ya mtumiaji, au kubaini sifa za dataset yoyote isiyo na lebo. Kwa namna fulani, clustering husaidia kuleta mpangilio kwenye machafuko, kama droo ya soksi.
+
+[](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
+
+> 🎥 Bofya picha hapo juu kwa video: John Guttag wa MIT anatambulisha clustering.
+
+Katika mazingira ya kitaalamu, clustering inaweza kutumika kubaini mambo kama mgawanyiko wa soko, kubaini ni makundi ya umri gani yanayonunua bidhaa fulani, kwa mfano. Matumizi mengine yanaweza kuwa kugundua hali zisizo za kawaida, labda kugundua udanganyifu kutoka dataset ya miamala ya kadi za mkopo. Au unaweza kutumia clustering kubaini uvimbe katika kundi la picha za uchunguzi wa matibabu.
+
+✅ Fikiria kwa dakika moja jinsi unavyoweza kuwa umekutana na clustering 'katika mazingira halisi', katika benki, e-commerce, au mazingira ya biashara.
+
+> 🎓 Kwa kushangaza, uchambuzi wa makundi ulianzia katika nyanja za Anthropolojia na Saikolojia katika miaka ya 1930. Je, unaweza kufikiria jinsi ulivyotumika?
+
+Vinginevyo, unaweza kuitumia kwa kupanga matokeo ya utafutaji - kwa viungo vya ununuzi, picha, au hakiki, kwa mfano. Clustering ni muhimu unapokuwa na dataset kubwa unayotaka kupunguza na ambayo unataka kufanya uchambuzi wa kina zaidi, hivyo mbinu hii inaweza kutumika kujifunza kuhusu data kabla ya kujenga mifano mingine.
+
+✅ Mara data yako inapopangwa katika makundi, unaiwekea kitambulisho cha kundi, na mbinu hii inaweza kuwa muhimu katika kuhifadhi faragha ya dataset; badala yake unaweza kurejelea data kwa kitambulisho cha kundi, badala ya data inayoweza kufichua zaidi. Je, unaweza kufikiria sababu nyingine za kutumia kitambulisho cha kundi badala ya vipengele vingine vya kundi kuvitambua?
+
+Panua uelewa wako wa mbinu za clustering katika [Learn module](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)
+
+## Kuanza na clustering
+
+[Scikit-learn inatoa mbinu nyingi](https://scikit-learn.org/stable/modules/clustering.html) za kufanya clustering. Aina unayochagua itategemea matumizi yako. Kulingana na nyaraka, kila mbinu ina faida mbalimbali. Hapa kuna jedwali rahisi la mbinu zinazoungwa mkono na Scikit-learn na matumizi yake yanayofaa:
+
+| Jina la mbinu | Matumizi |
+| :--------------------------- | :---------------------------------------------------------------------- |
+| K-Means | matumizi ya jumla, inductive |
+| Affinity propagation | makundi mengi, yasiyo sawa, inductive |
+| Mean-shift | makundi mengi, yasiyo sawa, inductive |
+| Spectral clustering | makundi machache, sawa, transductive |
+| Ward hierarchical clustering | makundi mengi, yaliyowekewa mipaka, transductive |
+| Agglomerative clustering | makundi mengi, yaliyowekewa mipaka, umbali usio wa Euclidean, transductive |
+| DBSCAN | jiometri isiyo tambarare, makundi yasiyo sawa, transductive |
+| OPTICS | jiometri isiyo tambarare, makundi yasiyo sawa yenye msongamano tofauti, transductive |
+| Gaussian mixtures | jiometri tambarare, inductive |
+| BIRCH | dataset kubwa yenye outliers, inductive |
+
+> 🎓 Jinsi tunavyounda makundi inahusiana sana na jinsi tunavyokusanya pointi za data katika vikundi. Hebu tuchambue baadhi ya istilahi:
+>
+> 🎓 ['Transductive' vs. 'inductive'](https://wikipedia.org/wiki/Transduction_(machine_learning))
+>
+> Utoaji wa hitimisho wa transductive hutokana na kesi za mafunzo zilizotazamwa ambazo zinahusiana na kesi maalum za majaribio. Utoaji wa hitimisho wa inductive hutokana na kesi za mafunzo ambazo zinahusiana na sheria za jumla ambazo baadaye tu zinatumika kwa kesi za majaribio.
+>
+> Mfano: Fikiria una dataset ambayo imewekwa lebo kwa sehemu tu. Vitu vingine ni 'rekodi', vingine 'cds', na vingine havina lebo. Kazi yako ni kutoa lebo kwa data isiyo na lebo. Ukichagua mbinu ya inductive, ungefundisha mfano ukitafuta 'rekodi' na 'cds', na kutumia lebo hizo kwa data yako isiyo na lebo. Mbinu hii itakuwa na shida kuainisha vitu ambavyo kwa kweli ni 'kanda'. Mbinu ya transductive, kwa upande mwingine, hushughulikia data isiyojulikana kwa ufanisi zaidi kwani inafanya kazi kuunda vikundi vya vitu vinavyofanana na kisha kutumia lebo kwa kundi. Katika kesi hii, makundi yanaweza kuonyesha 'vitu vya muziki vya mviringo' na 'vitu vya muziki vya mraba'.
+>
+> 🎓 ['Jiometri isiyo tambarare' vs. 'jiometri tambarare'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
+>
+> Imetokana na istilahi za hisabati, jiometri isiyo tambarare vs. tambarare inahusu kipimo cha umbali kati ya pointi kwa njia ya 'tambarare' ([Euclidean](https://wikipedia.org/wiki/Euclidean_geometry)) au 'isiyo tambarare' (isiyo ya Euclidean).
+>
+>'Tambarare' katika muktadha huu inahusu jiometri ya Euclidean (sehemu zake hufundishwa kama jiometri ya 'plane'), na isiyo tambarare inahusu jiometri isiyo ya Euclidean. Jiometri inahusiana vipi na machine learning? Kweli, kama nyanja mbili zinazotokana na hisabati, lazima kuwe na njia ya kawaida ya kupima umbali kati ya pointi katika makundi, na hiyo inaweza kufanywa kwa njia ya 'tambarare' au 'isiyo tambarare', kulingana na asili ya data. [Umbali wa Euclidean](https://wikipedia.org/wiki/Euclidean_distance) hupimwa kama urefu wa sehemu ya mstari kati ya pointi mbili. [Umbali usio wa Euclidean](https://wikipedia.org/wiki/Non-Euclidean_geometry) hupimwa kando ya mkurva. Ikiwa data yako, ikionyeshwa, inaonekana haipo kwenye plane, unaweza kuhitaji kutumia algorithmi maalum kuishughulikia.
+>
+
+> Infographic na [Dasani Madipalli](https://twitter.com/dasani_decoded)
+>
+> 🎓 ['Umbali'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
+>
+> Makundi yanafafanuliwa na matrix ya umbali, yaani umbali kati ya pointi. Umbali huu unaweza kupimwa kwa njia kadhaa. Makundi ya Euclidean yanafafanuliwa na wastani wa thamani za pointi, na yana 'centroid' au pointi ya katikati. Umbali hupimwa kwa umbali hadi centroid hiyo. Umbali usio wa Euclidean unahusu 'clustroids', pointi iliyo karibu zaidi na pointi nyingine. Clustroids kwa upande wake zinaweza kufafanuliwa kwa njia mbalimbali.
+>
+> 🎓 ['Yaliyowekewa mipaka'](https://wikipedia.org/wiki/Constrained_clustering)
+>
+> [Clustering iliyowekewa mipaka](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) huanzisha 'semi-supervised' learning katika mbinu hii isiyo na usimamizi. Mahusiano kati ya pointi yanawekwa alama kama 'haiwezi kuunganishwa' au 'lazima yaunganishwe' hivyo sheria fulani zinapewa dataset.
+>
+>Mfano: Ikiwa algorithmi imeachwa huru kwenye kundi la data isiyo na lebo au yenye lebo kwa sehemu, makundi inayozalisha yanaweza kuwa ya ubora duni. Katika mfano hapo juu, makundi yanaweza kuunda 'vitu vya muziki vya mviringo' na 'vitu vya muziki vya mraba' na 'vitu vya pembetatu' na 'biskuti'. Ikiwa imepewa mipaka fulani, au sheria za kufuata ("kitu lazima kiwe cha plastiki", "kitu kinahitaji kuwa na uwezo wa kutoa muziki") hii inaweza kusaidia 'kuweka mipaka' kwa algorithmi kufanya chaguo bora.
+>
+> 🎓 'Msongamano'
+>
+> Data iliyo na 'kelele' inachukuliwa kuwa 'yenye msongamano'. Umbali kati ya pointi katika kila moja ya makundi yake unaweza kuonyesha, kwa uchunguzi, kuwa na msongamano zaidi au mdogo, au 'imejaa' na hivyo data hii inahitaji kuchambuliwa kwa mbinu sahihi ya clustering. [Makala hii](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) inaonyesha tofauti kati ya kutumia K-Means clustering vs. HDBSCAN algorithmi kuchunguza dataset yenye kelele na msongamano usio sawa.
+
+## Algorithmi za clustering
+
+Kuna zaidi ya algorithmi 100 za clustering, na matumizi yake yanategemea asili ya data iliyopo. Hebu tujadili baadhi ya zile kuu:
+
+- **Hierarchical clustering**. Ikiwa kitu kinaainishwa kwa ukaribu wake na kitu kilicho karibu, badala ya kile kilicho mbali zaidi, makundi yanaundwa kulingana na umbali wa wanachama wake kwa na kutoka kwa vitu vingine. Agglomerative clustering ya Scikit-learn ni hierarchical.
+
+ 
+ > Infographic na [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Centroid clustering**. Algorithmi hii maarufu inahitaji kuchagua 'k', au idadi ya makundi ya kuunda, baada ya hapo algorithmi huamua pointi ya katikati ya kundi na kukusanya data karibu na pointi hiyo. [K-means clustering](https://wikipedia.org/wiki/K-means_clustering) ni toleo maarufu la centroid clustering. Kituo kinaamuliwa na wastani wa karibu, hivyo jina. Umbali wa mraba kutoka kwa kundi hupunguzwa.
+
+ 
+ > Infographic na [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Distribution-based clustering**. Ikitokana na uundaji wa takwimu, distribution-based clustering inazingatia kubaini uwezekano kwamba pointi ya data inahusiana na kundi, na kuipangia ipasavyo. Mbinu za Gaussian mixture zinahusiana na aina hii.
+
+- **Density-based clustering**. Pointi za data zinapangiwa makundi kulingana na msongamano wao, au jinsi zinavyokusanyika karibu na kila moja. Pointi za data zilizo mbali na kundi zinachukuliwa kuwa outliers au kelele. DBSCAN, Mean-shift na OPTICS zinahusiana na aina hii ya clustering.
+
+- **Grid-based clustering**. Kwa datasets zenye vipimo vingi, gridi huundwa na data hugawanywa kati ya seli za gridi hiyo, hivyo kuunda makundi.
+
+## Zoezi - panga data yako
+
+Clustering kama mbinu inasaidiwa sana na uonyeshaji sahihi wa data, kwa hivyo hebu tuanze kwa kuonyesha data yetu ya muziki. Zoezi hili litatusaidia kuamua ni mbinu gani za clustering tunazopaswa kutumia kwa ufanisi zaidi kwa asili ya data hii.
+
+1. Fungua faili [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) katika folda hii.
+
+1. Leta pakiti ya `Seaborn` kwa uonyeshaji mzuri wa data.
+
+ ```python
+ !pip install seaborn
+ ```
+
+1. Ongeza data ya nyimbo kutoka [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Pakia dataframe yenye data fulani kuhusu nyimbo. Jiandae kuchunguza data hii kwa kuleta maktaba na kutoa data:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import pandas as pd
+
+ df = pd.read_csv("../data/nigerian-songs.csv")
+ df.head()
+ ```
+
+ Angalia mistari michache ya data:
+
+ | | jina | albamu | msanii | aina kuu ya msanii | tarehe ya kutolewa | urefu | umaarufu | uwezo wa kucheza | acousticness | nguvu | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
+ | --- | ------------------------ | ---------------------------- | ------------------- | ------------------ | ------------------ | ----- | -------- | ---------------- | ------------ | ----- | ---------------- | -------- | -------- | ----------- | ------- | -------------- |
+ | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 |
+ | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 |
+| 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 |
+| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 |
+| 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 |
+
+1. Pata maelezo kuhusu dataframe, kwa kutumia `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Matokeo yanaonekana kama hivi:
+
+ ```output
+
+ RangeIndex: 530 entries, 0 to 529
+ Data columns (total 16 columns):
+ # Column Non-Null Count Dtype
+ --- ------ -------------- -----
+ 0 name 530 non-null object
+ 1 album 530 non-null object
+ 2 artist 530 non-null object
+ 3 artist_top_genre 530 non-null object
+ 4 release_date 530 non-null int64
+ 5 length 530 non-null int64
+ 6 popularity 530 non-null int64
+ 7 danceability 530 non-null float64
+ 8 acousticness 530 non-null float64
+ 9 energy 530 non-null float64
+ 10 instrumentalness 530 non-null float64
+ 11 liveness 530 non-null float64
+ 12 loudness 530 non-null float64
+ 13 speechiness 530 non-null float64
+ 14 tempo 530 non-null float64
+ 15 time_signature 530 non-null int64
+ dtypes: float64(8), int64(4), object(4)
+ memory usage: 66.4+ KB
+ ```
+
+1. Hakikisha hakuna thamani za null, kwa kutumia `isnull()` na kuthibitisha jumla ni 0:
+
+ ```python
+ df.isnull().sum()
+ ```
+
+ Inaonekana vizuri:
+
+ ```output
+ name 0
+ album 0
+ artist 0
+ artist_top_genre 0
+ release_date 0
+ length 0
+ popularity 0
+ danceability 0
+ acousticness 0
+ energy 0
+ instrumentalness 0
+ liveness 0
+ loudness 0
+ speechiness 0
+ tempo 0
+ time_signature 0
+ dtype: int64
+ ```
+
+1. Eleza data:
+
+ ```python
+ df.describe()
+ ```
+
+ | | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
+ | ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- |
+ | count | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 |
+ | mean | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011 | 0.130748 | 116.487864 | 3.986792 |
+ | std | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 |
+ | min | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 |
+ | 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 |
+ | 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 |
+ | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
+ | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
+
+> 🤔 Ikiwa tunafanya kazi na clustering, mbinu isiyo ya usimamizi ambayo haihitaji data yenye lebo, kwa nini tunaonyesha data hii yenye lebo? Katika awamu ya uchunguzi wa data, zinafaa, lakini hazihitajiki kwa algorithms za clustering kufanya kazi. Unaweza tu kuondoa vichwa vya safu na kurejelea data kwa nambari ya safu.
+
+Angalia maadili ya jumla ya data. Kumbuka kuwa popularity inaweza kuwa '0', ambayo inaonyesha nyimbo ambazo hazina kiwango. Wacha tuondoe hizo muda mfupi.
+
+1. Tumia barplot kujua aina za muziki maarufu zaidi:
+
+ ```python
+ import seaborn as sns
+
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top[:5].index,y=top[:5].values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ 
+
+✅ Ikiwa ungependa kuona maadili zaidi ya juu, badilisha juu `[:5]` kwa thamani kubwa, au iondoe ili kuona yote.
+
+Kumbuka, wakati aina ya juu ya muziki inaelezewa kama 'Missing', hiyo inamaanisha kuwa Spotify haikuiweka daraja, kwa hivyo wacha tuiondoe.
+
+1. Ondoa data iliyokosekana kwa kuichuja:
+
+ ```python
+ df = df[df['artist_top_genre'] != 'Missing']
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+ Sasa angalia tena aina za muziki:
+
+ 
+
+1. Kwa mbali, aina tatu za juu za muziki zinatawala dataset hii. Wacha tuzingatie `afro dancehall`, `afropop`, na `nigerian pop`, na pia tuchuje dataset ili kuondoa chochote chenye thamani ya popularity ya 0 (inamaanisha haikuwekwa daraja na popularity katika dataset na inaweza kuchukuliwa kama kelele kwa madhumuni yetu):
+
+ ```python
+ df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
+ df = df[(df['popularity'] > 0)]
+ top = df['artist_top_genre'].value_counts()
+ plt.figure(figsize=(10,7))
+ sns.barplot(x=top.index,y=top.values)
+ plt.xticks(rotation=45)
+ plt.title('Top genres',color = 'blue')
+ ```
+
+1. Fanya jaribio la haraka kuona ikiwa data inahusiana kwa njia yenye nguvu:
+
+ ```python
+ corrmat = df.corr(numeric_only=True)
+ f, ax = plt.subplots(figsize=(12, 9))
+ sns.heatmap(corrmat, vmax=.8, square=True)
+ ```
+
+ 
+
+ Uhusiano pekee wenye nguvu ni kati ya `energy` na `loudness`, ambayo si ya kushangaza sana, ikizingatiwa kuwa muziki wenye sauti kubwa kawaida huwa na nguvu. Vinginevyo, uhusiano ni dhaifu. Itakuwa ya kuvutia kuona kile algorithm ya clustering inaweza kufanya na data hii.
+
+ > 🎓 Kumbuka kuwa uhusiano hauonyeshi sababu! Tuna ushahidi wa uhusiano lakini hakuna ushahidi wa sababu. [Tovuti ya kuchekesha](https://tylervigen.com/spurious-correlations) ina visuals zinazoonyesha hoja hii.
+
+Je, kuna mwelekeo wowote katika dataset hii kuhusu umaarufu wa wimbo na uwezo wake wa kuchezeka? FacetGrid inaonyesha kuwa kuna miduara inayojipanga, bila kujali aina ya muziki. Inaweza kuwa ladha za Nigeria zinajipanga katika kiwango fulani cha uwezo wa kuchezeka kwa aina hii ya muziki?
+
+✅ Jaribu pointi tofauti za data (energy, loudness, speechiness) na aina zaidi au tofauti za muziki. Unaweza kugundua nini? Angalia jedwali la `df.describe()` ili kuona mwelekeo wa jumla wa pointi za data.
+
+### Zoezi - usambazaji wa data
+
+Je, aina hizi tatu za muziki zinatofautiana kwa kiasi kikubwa katika mtazamo wa uwezo wa kuchezeka, kulingana na umaarufu wao?
+
+1. Chunguza usambazaji wa data wa aina zetu tatu za juu kwa umaarufu na uwezo wa kuchezeka kwenye x na y axis fulani.
+
+ ```python
+ sns.set_theme(style="ticks")
+
+ g = sns.jointplot(
+ data=df,
+ x="popularity", y="danceability", hue="artist_top_genre",
+ kind="kde",
+ )
+ ```
+
+ Unaweza kugundua miduara inayozunguka sehemu ya mwelekeo wa jumla, ikionyesha usambazaji wa pointi.
+
+ > 🎓 Kumbuka kuwa mfano huu unatumia grafu ya KDE (Kernel Density Estimate) ambayo inawakilisha data kwa kutumia curve ya probability density inayoendelea. Hii inatuwezesha kufasiri data tunapofanya kazi na usambazaji mwingi.
+
+ Kwa ujumla, aina hizi tatu za muziki zinajipanga kwa kiasi fulani kulingana na umaarufu wao na uwezo wa kuchezeka. Kuamua makundi katika data hii inayojipanga kwa kiasi fulani itakuwa changamoto:
+
+ 
+
+1. Unda scatter plot:
+
+ ```python
+ sns.FacetGrid(df, hue="artist_top_genre", height=5) \
+ .map(plt.scatter, "popularity", "danceability") \
+ .add_legend()
+ ```
+
+ Scatterplot ya axes zile zile inaonyesha mwelekeo sawa wa mwelekeo
+
+ 
+
+Kwa ujumla, kwa clustering, unaweza kutumia scatterplots kuonyesha makundi ya data, kwa hivyo kujifunza aina hii ya visualisation ni muhimu sana. Katika somo linalofuata, tutachukua data hii iliyochujwa na kutumia k-means clustering kugundua makundi katika data hii ambayo yanaonekana kuingiliana kwa njia za kuvutia.
+
+---
+
+## 🚀Changamoto
+
+Kwa maandalizi ya somo linalofuata, tengeneza chati kuhusu algorithms mbalimbali za clustering ambazo unaweza kugundua na kutumia katika mazingira ya uzalishaji. Ni aina gani za matatizo ambayo clustering inajaribu kushughulikia?
+
+## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio & Kujisomea
+
+Kabla ya kutumia algorithms za clustering, kama tulivyojifunza, ni wazo nzuri kuelewa asili ya dataset yako. Soma zaidi kuhusu mada hii [hapa](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
+
+[Makala hii ya msaada](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) inakutembeza kupitia njia tofauti ambazo algorithms za clustering zinavyofanya kazi, ikizingatiwa maumbo tofauti ya data.
+
+## Kazi
+
+[Chunguza visualizations nyingine za clustering](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/5-Clustering/1-Visualize/assignment.md b/translations/sw/5-Clustering/1-Visualize/assignment.md
new file mode 100644
index 00000000..78efd9e8
--- /dev/null
+++ b/translations/sw/5-Clustering/1-Visualize/assignment.md
@@ -0,0 +1,25 @@
+
+# Tafiti mbinu nyingine za kuona kwa makundi
+
+## Maelekezo
+
+Katika somo hili, umefanya kazi na mbinu kadhaa za kuona ili kupata ufahamu wa jinsi ya kuchora data yako kwa maandalizi ya kuigawanya katika makundi. Scatterplots, hasa, ni muhimu kwa kutafuta vikundi vya vitu. Tafiti njia tofauti na maktaba tofauti za kuunda scatterplots na uandike kazi yako katika daftari. Unaweza kutumia data kutoka somo hili, masomo mengine, au data unayopata mwenyewe (tafadhali toa chanzo chake, hata hivyo, katika daftari lako). Chora data ukitumia scatterplots na eleza unachogundua.
+
+## Rubric
+
+| Kigezo | Kiwango cha Juu | Kiwango cha Kawaida | Kinahitaji Kuboresha |
+| -------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------- |
+| | Daftari linaonyeshwa na scatterplots tano zilizoelezwa vizuri | Daftari linaonyeshwa na scatterplots chini ya tano na maelezo yake si ya kina | Daftari lisilokamilika linaonyeshwa |
+
+---
+
+**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
diff --git a/translations/sw/5-Clustering/1-Visualize/solution/Julia/README.md b/translations/sw/5-Clustering/1-Visualize/solution/Julia/README.md
new file mode 100644
index 00000000..6cec60ee
--- /dev/null
+++ b/translations/sw/5-Clustering/1-Visualize/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/5-Clustering/2-K-Means/README.md b/translations/sw/5-Clustering/2-K-Means/README.md
new file mode 100644
index 00000000..270a0c00
--- /dev/null
+++ b/translations/sw/5-Clustering/2-K-Means/README.md
@@ -0,0 +1,261 @@
+
+# K-Means clustering
+
+## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
+
+Katika somo hili, utajifunza jinsi ya kuunda makundi kwa kutumia Scikit-learn na seti ya data ya muziki wa Nigeria uliyoingiza awali. Tutazungumzia misingi ya K-Means kwa Clustering. Kumbuka kwamba, kama ulivyojifunza katika somo la awali, kuna njia nyingi za kufanya kazi na makundi, na mbinu unayotumia inategemea data yako. Tutajaribu K-Means kwa kuwa ni mbinu ya kawaida zaidi ya clustering. Twende kazi!
+
+Maneno utakayojifunza:
+
+- Silhouette scoring
+- Njia ya Elbow
+- Inertia
+- Variance
+
+## Utangulizi
+
+[K-Means Clustering](https://wikipedia.org/wiki/K-means_clustering) ni mbinu inayotokana na uwanja wa usindikaji wa ishara. Inatumika kugawanya na kupanga vikundi vya data katika makundi 'k' kwa kutumia mfululizo wa uchunguzi. Kila uchunguzi hufanya kazi ya kuunganisha kipengele cha data kilicho karibu zaidi na 'mean' yake, au kituo cha kundi.
+
+Makundi yanaweza kuonyeshwa kama [Voronoi diagrams](https://wikipedia.org/wiki/Voronoi_diagram), ambazo zinajumuisha nukta (au 'mbegu') na eneo lake linalohusiana.
+
+
+
+> infographic na [Jen Looper](https://twitter.com/jenlooper)
+
+Mchakato wa K-Means clustering [hufanyika kwa hatua tatu](https://scikit-learn.org/stable/modules/clustering.html#k-means):
+
+1. Algorithimu huchagua idadi ya vituo vya k kwa kuchukua sampuli kutoka seti ya data. Baada ya hapo, inarudia:
+ 1. Inapanga kila sampuli kwa kituo kilicho karibu zaidi.
+ 2. Inaunda vituo vipya kwa kuchukua thamani ya wastani ya sampuli zote zilizopangwa kwa vituo vya awali.
+ 3. Kisha, inahesabu tofauti kati ya vituo vipya na vya zamani na kurudia hadi vituo viwe thabiti.
+
+Changamoto moja ya kutumia K-Means ni kwamba unahitaji kuamua 'k', yaani idadi ya vituo. Kwa bahati nzuri, 'njia ya elbow' husaidia kukadiria thamani nzuri ya kuanzia kwa 'k'. Utajaribu muda si mrefu.
+
+## Mahitaji ya awali
+
+Utafanya kazi katika faili ya [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb) ya somo hili ambayo inajumuisha uingizaji wa data na usafishaji wa awali uliofanya katika somo la mwisho.
+
+## Zoezi - maandalizi
+
+Anza kwa kuangalia tena data ya nyimbo.
+
+1. Unda boxplot, ukitumia `boxplot()` kwa kila safu:
+
+ ```python
+ plt.figure(figsize=(20,20), dpi=200)
+
+ plt.subplot(4,3,1)
+ sns.boxplot(x = 'popularity', data = df)
+
+ plt.subplot(4,3,2)
+ sns.boxplot(x = 'acousticness', data = df)
+
+ plt.subplot(4,3,3)
+ sns.boxplot(x = 'energy', data = df)
+
+ plt.subplot(4,3,4)
+ sns.boxplot(x = 'instrumentalness', data = df)
+
+ plt.subplot(4,3,5)
+ sns.boxplot(x = 'liveness', data = df)
+
+ plt.subplot(4,3,6)
+ sns.boxplot(x = 'loudness', data = df)
+
+ plt.subplot(4,3,7)
+ sns.boxplot(x = 'speechiness', data = df)
+
+ plt.subplot(4,3,8)
+ sns.boxplot(x = 'tempo', data = df)
+
+ plt.subplot(4,3,9)
+ sns.boxplot(x = 'time_signature', data = df)
+
+ plt.subplot(4,3,10)
+ sns.boxplot(x = 'danceability', data = df)
+
+ plt.subplot(4,3,11)
+ sns.boxplot(x = 'length', data = df)
+
+ plt.subplot(4,3,12)
+ sns.boxplot(x = 'release_date', data = df)
+ ```
+
+ Data hii ina kelele kidogo: kwa kuangalia kila safu kama boxplot, unaweza kuona outliers.
+
+ 
+
+Unaweza kupitia seti ya data na kuondoa outliers hizi, lakini hiyo itafanya data kuwa ndogo sana.
+
+1. Kwa sasa, chagua safu ambazo utatumia kwa zoezi lako la clustering. Chagua zile zenye viwango vinavyofanana na encode safu ya `artist_top_genre` kama data ya nambari:
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+ le = LabelEncoder()
+
+ X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')]
+
+ y = df['artist_top_genre']
+
+ X['artist_top_genre'] = le.fit_transform(X['artist_top_genre'])
+
+ y = le.transform(y)
+ ```
+
+1. Sasa unahitaji kuchagua idadi ya makundi ya kulenga. Unajua kuna aina 3 za muziki ambazo tulizitambua kutoka seti ya data, kwa hivyo jaribu 3:
+
+ ```python
+ from sklearn.cluster import KMeans
+
+ nclusters = 3
+ seed = 0
+
+ km = KMeans(n_clusters=nclusters, random_state=seed)
+ km.fit(X)
+
+ # Predict the cluster for each data point
+
+ y_cluster_kmeans = km.predict(X)
+ y_cluster_kmeans
+ ```
+
+Unaona array iliyochapishwa na makundi yaliyotabiriwa (0, 1, au 2) kwa kila safu ya dataframe.
+
+1. Tumia array hii kuhesabu 'silhouette score':
+
+ ```python
+ from sklearn import metrics
+ score = metrics.silhouette_score(X, y_cluster_kmeans)
+ score
+ ```
+
+## Silhouette score
+
+Tafuta silhouette score iliyo karibu na 1. Alama hii inatofautiana kutoka -1 hadi 1, na ikiwa alama ni 1, kundi ni lenye msongamano na limetenganishwa vizuri na makundi mengine. Thamani karibu na 0 inawakilisha makundi yanayofuatana na sampuli zilizo karibu sana na mpaka wa maamuzi wa makundi jirani. [(Chanzo)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
+
+Alama yetu ni **.53**, kwa hivyo iko katikati. Hii inaonyesha kuwa data yetu haifai sana kwa aina hii ya clustering, lakini tuendelee.
+
+### Zoezi - unda modeli
+
+1. Ingiza `KMeans` na anza mchakato wa clustering.
+
+ ```python
+ from sklearn.cluster import KMeans
+ wcss = []
+
+ for i in range(1, 11):
+ kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)
+ kmeans.fit(X)
+ wcss.append(kmeans.inertia_)
+
+ ```
+
+ Kuna sehemu chache hapa zinazostahili maelezo.
+
+ > 🎓 range: Hizi ni marudio ya mchakato wa clustering
+
+ > 🎓 random_state: "Inaamua kizazi cha nambari za bahati nasibu kwa uanzishaji wa vituo." [Chanzo](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
+
+ > 🎓 WCSS: "jumla ya mraba ndani ya kundi" hupima umbali wa wastani wa mraba wa pointi zote ndani ya kundi hadi kituo cha kundi. [Chanzo](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
+
+ > 🎓 Inertia: Algorithimu za K-Means hujaribu kuchagua vituo ili kupunguza 'inertia', "kipimo cha jinsi makundi yalivyo thabiti ndani." [Chanzo](https://scikit-learn.org/stable/modules/clustering.html). Thamani inaongezwa kwenye variable ya wcss kwa kila marudio.
+
+ > 🎓 k-means++: Katika [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) unaweza kutumia optimization ya 'k-means++', ambayo "inaanzisha vituo kuwa (kwa ujumla) mbali kutoka kwa kila mmoja, na kusababisha matokeo bora zaidi kuliko uanzishaji wa bahati nasibu."
+
+### Njia ya Elbow
+
+Hapo awali, ulidhani kwamba, kwa kuwa umelenga aina 3 za muziki, unapaswa kuchagua makundi 3. Lakini je, ni kweli?
+
+1. Tumia 'njia ya elbow' kuhakikisha.
+
+ ```python
+ plt.figure(figsize=(10,5))
+ sns.lineplot(x=range(1, 11), y=wcss, marker='o', color='red')
+ plt.title('Elbow')
+ plt.xlabel('Number of clusters')
+ plt.ylabel('WCSS')
+ plt.show()
+ ```
+
+ Tumia variable ya `wcss` uliyounda katika hatua ya awali kuunda chati inayoonyesha mahali ambapo 'kink' katika elbow iko, ambayo inaonyesha idadi bora ya makundi. Labda ni **3**!
+
+ 
+
+## Zoezi - onyesha makundi
+
+1. Jaribu mchakato tena, wakati huu ukichagua makundi matatu, na onyesha makundi kama scatterplot:
+
+ ```python
+ from sklearn.cluster import KMeans
+ kmeans = KMeans(n_clusters = 3)
+ kmeans.fit(X)
+ labels = kmeans.predict(X)
+ plt.scatter(df['popularity'],df['danceability'],c = labels)
+ plt.xlabel('popularity')
+ plt.ylabel('danceability')
+ plt.show()
+ ```
+
+1. Angalia usahihi wa modeli:
+
+ ```python
+ labels = kmeans.labels_
+
+ correct_labels = sum(y == labels)
+
+ print("Result: %d out of %d samples were correctly labeled." % (correct_labels, y.size))
+
+ print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size)))
+ ```
+
+ Usahihi wa modeli hii si mzuri sana, na umbo la makundi linakupa dalili kwa nini.
+
+ 
+
+ Data hii haina uwiano mzuri, haina uhusiano wa kutosha, na kuna tofauti kubwa sana kati ya thamani za safu ili kuunda makundi vizuri. Kwa kweli, makundi yanayoundwa huenda yameathiriwa sana au yamepotoshwa na aina tatu za muziki tulizotambua hapo juu. Hii ilikuwa mchakato wa kujifunza!
+
+ Katika nyaraka za Scikit-learn, unaweza kuona kwamba modeli kama hii, yenye makundi yasiyo na mipaka dhahiri, ina tatizo la 'variance':
+
+ 
+ > Infographic kutoka Scikit-learn
+
+## Variance
+
+Variance inafafanuliwa kama "wastani wa tofauti za mraba kutoka kwa Mean" [(Chanzo)](https://www.mathsisfun.com/data/standard-deviation.html). Katika muktadha wa tatizo hili la clustering, inahusu data ambayo nambari za seti yetu ya data zina mwelekeo wa kutofautiana sana kutoka kwa wastani.
+
+✅ Huu ni wakati mzuri wa kufikiria njia zote unazoweza kutumia kurekebisha tatizo hili. Kuboresha data kidogo zaidi? Kutumia safu tofauti? Kutumia algorithimu tofauti? Kidokezo: Jaribu [kusawazisha data yako](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) ili kuifanya kuwa ya kawaida na ujaribu safu nyingine.
+
+> Jaribu '[kikokotoo cha variance](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' ili kuelewa dhana hii zaidi.
+
+---
+
+## 🚀Changamoto
+
+Tumia muda na notebook hii, ukibadilisha vigezo. Je, unaweza kuboresha usahihi wa modeli kwa kusafisha data zaidi (kwa mfano, kuondoa outliers)? Unaweza kutumia uzito ili kutoa uzito zaidi kwa sampuli fulani za data. Je, ni nini kingine unaweza kufanya ili kuunda makundi bora?
+
+Kidokezo: Jaribu kusawazisha data yako. Kuna msimbo ulio na maoni katika notebook unaoongeza scaling ya kawaida ili kufanya safu za data zifanane zaidi kwa karibu katika suala la viwango. Utagundua kwamba ingawa silhouette score inashuka, 'kink' katika grafu ya elbow inakuwa laini. Hii ni kwa sababu kuacha data bila kusawazishwa kunaruhusu data yenye tofauti ndogo kuwa na uzito zaidi. Soma zaidi kuhusu tatizo hili [hapa](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226).
+
+## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Angalia Simulator ya K-Means [kama hii](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). Unaweza kutumia zana hii kuonyesha pointi za data za sampuli na kuamua vituo vyake. Unaweza kuhariri nasibu ya data, idadi ya makundi na idadi ya vituo. Je, hii inakusaidia kupata wazo la jinsi data inaweza kugawanywa?
+
+Pia, angalia [handout hii kuhusu K-Means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) kutoka Stanford.
+
+## Kazi
+
+[Jaribu mbinu tofauti za clustering](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au 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
diff --git a/translations/sw/5-Clustering/2-K-Means/assignment.md b/translations/sw/5-Clustering/2-K-Means/assignment.md
new file mode 100644
index 00000000..f4160d11
--- /dev/null
+++ b/translations/sw/5-Clustering/2-K-Means/assignment.md
@@ -0,0 +1,25 @@
+
+# Jaribu Mbinu Tofauti za Kuweka Makundi
+
+## Maelekezo
+
+Katika somo hili ulijifunza kuhusu Kuweka Makundi kwa K-Means. Wakati mwingine K-Means haiwezi kufaa kwa data yako. Tengeneza daftari (notebook) ukitumia data kutoka kwenye masomo haya au kutoka mahali pengine (toa chanzo cha data yako) na onyesha mbinu tofauti ya kuweka makundi BILA kutumia K-Means. Umejifunza nini?
+
+## Rubric
+
+| Vigezo | Bora Kabisa | Inayokubalika | Inayohitaji Kuboreshwa |
+| -------- | -------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------- |
+| | Daftari linaoneshwa na lina mfano wa kuweka makundi ulioelezwa vizuri | Daftari linaoneshwa bila maelezo mazuri na/au halijakamilika | Kazi isiyokamilika inawasilishwa |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/5-Clustering/2-K-Means/solution/Julia/README.md b/translations/sw/5-Clustering/2-K-Means/solution/Julia/README.md
new file mode 100644
index 00000000..903c1142
--- /dev/null
+++ b/translations/sw/5-Clustering/2-K-Means/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/5-Clustering/README.md b/translations/sw/5-Clustering/README.md
new file mode 100644
index 00000000..d30f7d3b
--- /dev/null
+++ b/translations/sw/5-Clustering/README.md
@@ -0,0 +1,42 @@
+
+# Miundo ya Klasta kwa Kujifunza kwa Mashine
+
+Klasta ni kazi ya kujifunza kwa mashine ambapo inatafuta vitu vinavyofanana na kuviweka katika vikundi vinavyoitwa klasta. Kinachotofautisha klasta na mbinu nyingine za kujifunza kwa mashine ni kwamba mambo hufanyika kiotomatiki; kwa kweli, ni sahihi kusema ni kinyume cha kujifunza kwa usimamizi.
+
+## Mada ya Kikanda: Miundo ya Klasta kwa Ladha ya Muziki ya Watazamaji wa Nigeria 🎧
+
+Watazamaji wa Nigeria wana ladha mbalimbali za muziki. Tukitumia data iliyokusanywa kutoka Spotify (iliyopata msukumo kutoka [makala hii](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)), hebu tuangalie baadhi ya muziki maarufu nchini Nigeria. Seti hii ya data inajumuisha taarifa kuhusu alama za 'danceability', 'acousticness', sauti, 'speechiness', umaarufu, na nishati ya nyimbo mbalimbali. Itakuwa ya kuvutia kugundua mifumo katika data hii!
+
+
+
+> Picha na Marcela Laskoski kwenye Unsplash
+
+Katika mfululizo huu wa masomo, utagundua njia mpya za kuchambua data kwa kutumia mbinu za klasta. Klasta ni muhimu hasa pale ambapo seti yako ya data haina lebo. Ikiwa ina lebo, basi mbinu za uainishaji kama zile ulizojifunza katika masomo ya awali zinaweza kuwa na manufaa zaidi. Lakini katika hali ambapo unatafuta kuunda vikundi vya data isiyo na lebo, klasta ni njia nzuri ya kugundua mifumo.
+
+> Kuna zana za kiwango cha chini cha msimbo ambazo zinaweza kusaidia kujifunza kuhusu kufanya kazi na miundo ya klasta. Jaribu [Azure ML kwa kazi hii](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Masomo
+
+1. [Utangulizi wa klasta](1-Visualize/README.md)
+2. [K-Means klasta](2-K-Means/README.md)
+
+## Shukrani
+
+Masomo haya yaliandikwa kwa 🎶 na [Jen Looper](https://www.twitter.com/jenlooper) kwa msaada wa ukaguzi wa [Rishit Dagli](https://rishit_dagli) na [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan).
+
+Seti ya data ya [Nyimbo za Nigeria](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) ilitolewa kutoka Kaggle kama ilivyokusanywa kutoka Spotify.
+
+Mifano muhimu ya K-Means iliyosaidia kuunda somo hili ni pamoja na [uchambuzi wa iris](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), [notebook ya utangulizi](https://www.kaggle.com/prashant111/k-means-clustering-with-python), na [mfano wa NGO wa kubuni](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering).
+
+---
+
+**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
diff --git a/translations/sw/6-NLP/1-Introduction-to-NLP/README.md b/translations/sw/6-NLP/1-Introduction-to-NLP/README.md
new file mode 100644
index 00000000..de14711b
--- /dev/null
+++ b/translations/sw/6-NLP/1-Introduction-to-NLP/README.md
@@ -0,0 +1,179 @@
+
+# Utangulizi wa Usindikaji wa Lugha Asilia
+
+Somo hili linahusu historia fupi na dhana muhimu za *usindikaji wa lugha asilia*, tawi la *isimu ya kompyuta*.
+
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Utangulizi
+
+NLP, kama inavyojulikana kwa kawaida, ni mojawapo ya maeneo yanayojulikana zaidi ambapo ujifunzaji wa mashine umetumika na kutumika katika programu za uzalishaji.
+
+✅ Je, unaweza kufikiria programu unayotumia kila siku ambayo labda ina NLP ndani yake? Vipi kuhusu programu zako za kuandika maneno au programu za simu unazotumia mara kwa mara?
+
+Utajifunza kuhusu:
+
+- **Wazo la lugha**. Jinsi lugha zilivyoendelea na maeneo makuu ya masomo yalivyokuwa.
+- **Ufafanuzi na dhana**. Pia utajifunza ufafanuzi na dhana kuhusu jinsi kompyuta zinavyosindika maandishi, ikiwa ni pamoja na uchambuzi, sarufi, na kutambua nomino na vitenzi. Kuna baadhi ya kazi za kuandika programu katika somo hili, na dhana kadhaa muhimu zinatambulishwa ambazo utajifunza kuandika programu baadaye katika masomo yanayofuata.
+
+## Isimu ya Kompyuta
+
+Isimu ya kompyuta ni eneo la utafiti na maendeleo kwa miongo kadhaa ambalo linachunguza jinsi kompyuta zinavyoweza kufanya kazi na hata kuelewa, kutafsiri, na kuwasiliana na lugha. Usindikaji wa lugha asilia (NLP) ni uwanja unaohusiana unaolenga jinsi kompyuta zinavyoweza kusindika lugha 'asilia', au lugha za binadamu.
+
+### Mfano - Dikteta ya simu
+
+Ikiwa umewahi kuzungumza na simu yako badala ya kuandika au kuuliza msaidizi wa kidijitali swali, hotuba yako ilibadilishwa kuwa maandishi na kisha kusindika au *kuchambuliwa* kutoka lugha uliyosema. Maneno muhimu yaliyotambuliwa yalichakatwa kuwa muundo ambao simu au msaidizi angeweza kuelewa na kuchukua hatua.
+
+
+> Ufahamu halisi wa isimu ni mgumu! Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+### Teknolojia hii inawezekanaje?
+
+Hii inawezekana kwa sababu mtu aliandika programu ya kompyuta kufanya hivyo. Miongo kadhaa iliyopita, baadhi ya waandishi wa hadithi za kisayansi walitabiri kwamba watu wangezungumza zaidi na kompyuta zao, na kompyuta zingeelewa kila wanachomaanisha. Kwa bahati mbaya, ilibainika kuwa ni tatizo gumu zaidi kuliko wengi walivyodhani, na ingawa ni tatizo linaloeleweka vyema leo, kuna changamoto kubwa za kufanikisha usindikaji wa lugha asilia 'mkamilifu' linapokuja suala la kuelewa maana ya sentensi. Hili ni tatizo gumu hasa linapokuja suala la kuelewa ucheshi au kugundua hisia kama kejeli katika sentensi.
+
+Kwa wakati huu, unaweza kuwa unakumbuka masomo ya shule ambapo mwalimu alifundisha sehemu za sarufi katika sentensi. Katika baadhi ya nchi, wanafunzi hufundishwa sarufi na isimu kama somo maalum, lakini katika nyingi, mada hizi hujumuishwa kama sehemu ya kujifunza lugha: ama lugha yako ya kwanza shuleni (kujifunza kusoma na kuandika) na labda lugha ya pili baada ya shule ya msingi, au shule ya sekondari. Usijali ikiwa wewe si mtaalamu wa kutofautisha nomino na vitenzi au vielezi na vivumishi!
+
+Ikiwa unapata ugumu wa kutofautisha kati ya *wakati uliopo rahisi* na *wakati uliopo unaoendelea*, hauko peke yako. Hili ni jambo gumu kwa watu wengi, hata wazungumzaji wa lugha ya asili. Habari njema ni kwamba kompyuta ni nzuri sana katika kutumia sheria rasmi, na utajifunza kuandika programu inayoweza *kuchambua* sentensi kama binadamu. Changamoto kubwa zaidi utakayochunguza baadaye ni kuelewa *maana*, na *hisia*, za sentensi.
+
+## Mahitaji ya awali
+
+Kwa somo hili, hitaji kuu ni uwezo wa kusoma na kuelewa lugha ya somo hili. Hakuna matatizo ya hesabu au milinganyo ya kutatua. Ingawa mwandishi wa awali aliandika somo hili kwa Kiingereza, pia limetafsiriwa katika lugha nyingine, kwa hivyo unaweza kuwa unasoma tafsiri. Kuna mifano ambapo lugha kadhaa tofauti zinatumika (kulinganisha sheria tofauti za sarufi za lugha tofauti). Hizi *hazitafsiriwi*, lakini maandishi ya maelezo yanatafsiriwa, kwa hivyo maana inapaswa kuwa wazi.
+
+Kwa kazi za kuandika programu, utatumia Python na mifano inatumia Python 3.8.
+
+Katika sehemu hii, utahitaji, na kutumia:
+
+- **Uelewa wa Python 3**. Uelewa wa lugha ya programu ya Python 3, somo hili linatumia pembejeo, vigezo, usomaji wa faili, safu.
+- **Visual Studio Code + kiendelezi**. Tutatumia Visual Studio Code na kiendelezi chake cha Python. Unaweza pia kutumia IDE ya Python unayopendelea.
+- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) ni maktaba rahisi ya usindikaji wa maandishi kwa Python. Fuata maelekezo kwenye tovuti ya TextBlob ili kuisakinisha kwenye mfumo wako (sakinisha corpora pia, kama inavyoonyeshwa hapa chini):
+
+ ```bash
+ pip install -U textblob
+ python -m textblob.download_corpora
+ ```
+
+> 💡 Kidokezo: Unaweza kuendesha Python moja kwa moja katika mazingira ya VS Code. Angalia [docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) kwa maelezo zaidi.
+
+## Kuzungumza na mashine
+
+Historia ya kujaribu kufanya kompyuta kuelewa lugha ya binadamu inarudi miongo kadhaa, na mmoja wa wanasayansi wa mapema kuzingatia usindikaji wa lugha asilia alikuwa *Alan Turing*.
+
+### Jaribio la 'Turing'
+
+Wakati Turing alipokuwa akichunguza *akili bandia* katika miaka ya 1950, alifikiria ikiwa jaribio la mazungumzo linaweza kufanywa kwa binadamu na kompyuta (kupitia mawasiliano yaliyoandikwa) ambapo binadamu katika mazungumzo hakuwa na uhakika ikiwa alikuwa akizungumza na binadamu mwingine au kompyuta.
+
+Ikiwa, baada ya muda fulani wa mazungumzo, binadamu hangeweza kubaini kwamba majibu yalikuwa kutoka kwa kompyuta au la, basi je, kompyuta ingeweza kusemekana kuwa *inawaza*?
+
+### Msukumo - 'mchezo wa kuiga'
+
+Wazo hili lilitokana na mchezo wa sherehe uitwao *Mchezo wa Kuiga* ambapo mhojiwa yuko peke yake katika chumba na anapewa jukumu la kubaini ni nani kati ya watu wawili (katika chumba kingine) ni mwanamume na mwanamke mtawalia. Mhojiwa anaweza kutuma maelezo, na lazima ajaribu kufikiria maswali ambapo majibu yaliyoandikwa yanafichua jinsia ya mtu wa fumbo. Bila shaka, wachezaji katika chumba kingine wanajaribu kumdanganya mhojiwa kwa kujibu maswali kwa njia ya kupotosha au kuchanganya mhojiwa, huku wakitoa mwonekano wa kujibu kwa uaminifu.
+
+### Kuunda Eliza
+
+Katika miaka ya 1960 mwanasayansi wa MIT aitwaye *Joseph Weizenbaum* alitengeneza [*Eliza*](https://wikipedia.org/wiki/ELIZA), 'daktari wa kompyuta' ambaye angeuliza maswali ya binadamu na kutoa mwonekano wa kuelewa majibu yao. Hata hivyo, ingawa Eliza angeweza kuchambua sentensi na kutambua miundo fulani ya sarufi na maneno muhimu ili kutoa jibu la kuridhisha, haingeweza kusemekana kuwa *inaelewa* sentensi. Ikiwa Eliza ingepewa sentensi inayofuata muundo "**Mimi ni** huzuni" inaweza kupanga upya na kubadilisha maneno katika sentensi ili kuunda jibu "Umekuwa **wewe** huzuni kwa muda gani".
+
+Hii ilitoa mwonekano kwamba Eliza alielewa taarifa hiyo na alikuwa akiuliza swali la kufuatilia, ilhali kwa kweli, ilikuwa ikibadilisha wakati na kuongeza maneno fulani. Ikiwa Eliza haingeweza kutambua neno muhimu ambalo lilikuwa na jibu lake, badala yake ingetoa jibu la nasibu ambalo linaweza kutumika kwa taarifa nyingi tofauti. Eliza ingeweza kudanganywa kwa urahisi, kwa mfano ikiwa mtumiaji aliandika "**Wewe ni** baiskeli" inaweza kujibu "Umekuwa **mimi** baiskeli kwa muda gani?", badala ya jibu lenye mantiki zaidi.
+
+[](https://youtu.be/RMK9AphfLco "Mazungumzo na Eliza")
+
+> 🎥 Bofya picha hapo juu kwa video kuhusu programu ya awali ya ELIZA
+
+> Kidokezo: Unaweza kusoma maelezo ya awali ya [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) iliyochapishwa mwaka wa 1966 ikiwa una akaunti ya ACM. Vinginevyo, soma kuhusu Eliza kwenye [wikipedia](https://wikipedia.org/wiki/ELIZA)
+
+## Zoezi - kuandika programu ya bot ya mazungumzo ya msingi
+
+Bot ya mazungumzo, kama Eliza, ni programu inayochochea pembejeo ya mtumiaji na inaonekana kuelewa na kujibu kwa akili. Tofauti na Eliza, bot yetu haitakuwa na sheria kadhaa zinazotoa mwonekano wa kuwa na mazungumzo ya akili. Badala yake, bot yetu itakuwa na uwezo mmoja tu, kuendeleza mazungumzo kwa majibu ya nasibu ambayo yanaweza kufanya kazi katika mazungumzo yoyote ya kijuujuu.
+
+### Mpango
+
+Hatua zako unapoandika bot ya mazungumzo:
+
+1. Chapisha maelekezo yanayomshauri mtumiaji jinsi ya kuingiliana na bot
+2. Anzisha kitanzi
+ 1. Kubali pembejeo ya mtumiaji
+ 2. Ikiwa mtumiaji ameomba kutoka, basi toka
+ 3. Sindika pembejeo ya mtumiaji na uamue jibu (katika kesi hii, jibu ni chaguo la nasibu kutoka kwa orodha ya majibu yanayowezekana ya jumla)
+ 4. Chapisha jibu
+3. Rudi kwa hatua ya 2
+
+### Kuunda bot
+
+Hebu tuunde bot sasa. Tutaanza kwa kufafanua baadhi ya misemo.
+
+1. Unda bot hii mwenyewe kwa Python na majibu ya nasibu yafuatayo:
+
+ ```python
+ random_responses = ["That is quite interesting, please tell me more.",
+ "I see. Do go on.",
+ "Why do you say that?",
+ "Funny weather we've been having, isn't it?",
+ "Let's change the subject.",
+ "Did you catch the game last night?"]
+ ```
+
+ Hapa kuna baadhi ya matokeo ya sampuli ya kukuongoza (pembejeo ya mtumiaji iko kwenye mistari inayoanza na `>`):
+
+ ```output
+ Hello, I am Marvin, the simple robot.
+ You can end this conversation at any time by typing 'bye'
+ After typing each answer, press 'enter'
+ How are you today?
+ > I am good thanks
+ That is quite interesting, please tell me more.
+ > today I went for a walk
+ Did you catch the game last night?
+ > I did, but my team lost
+ Funny weather we've been having, isn't it?
+ > yes but I hope next week is better
+ Let's change the subject.
+ > ok, lets talk about music
+ Why do you say that?
+ > because I like music!
+ Why do you say that?
+ > bye
+ It was nice talking to you, goodbye!
+ ```
+
+ Suluhisho moja linalowezekana la kazi ni [hapa](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py)
+
+ ✅ Simama na fikiria
+
+ 1. Je, unadhani majibu ya nasibu yangemdanganya mtu kufikiria kwamba bot inaelewa kweli?
+ 2. Ni vipengele gani bot ingehitaji kuwa bora zaidi?
+ 3. Ikiwa bot ingeweza 'kuelewa' maana ya sentensi, je, ingehitaji 'kukumbuka' maana ya sentensi za awali katika mazungumzo pia?
+
+---
+
+## 🚀Changamoto
+
+Chagua mojawapo ya vipengele vya "simama na fikiria" hapo juu na ujaribu kuvitumia katika programu au andika suluhisho kwenye karatasi ukitumia pseudocode.
+
+Katika somo linalofuata, utajifunza kuhusu mbinu kadhaa za kuchambua lugha asilia na ujifunzaji wa mashine.
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Angalia marejeleo hapa chini kama fursa za kusoma zaidi.
+
+### Marejeleo
+
+1. Schubert, Lenhart, "Isimu ya Kompyuta", *The Stanford Encyclopedia of Philosophy* (Toleo la Spring 2020), Edward N. Zalta (ed.), URL = .
+2. Chuo Kikuu cha Princeton "Kuhusu WordNet." [WordNet](https://wordnet.princeton.edu/). Chuo Kikuu cha Princeton. 2010.
+
+## Kazi
+
+[Tafuta bot](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 asilia katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/6-NLP/1-Introduction-to-NLP/assignment.md b/translations/sw/6-NLP/1-Introduction-to-NLP/assignment.md
new file mode 100644
index 00000000..41264426
--- /dev/null
+++ b/translations/sw/6-NLP/1-Introduction-to-NLP/assignment.md
@@ -0,0 +1,25 @@
+
+# Tafuta roboti
+
+## Maelekezo
+
+Roboti zipo kila mahali. Kazi yako: tafuta moja na uifanye yako! Unaweza kuzipata kwenye tovuti, katika programu za benki, na kwenye simu, kwa mfano unapopiga simu kwa kampuni za huduma za kifedha kwa ushauri au taarifa za akaunti. Changanua roboti hiyo na uone kama unaweza kuichanganya. Ikiwa unaweza kuichanganya, kwa nini unadhani hilo limetokea? Andika karatasi fupi kuhusu uzoefu wako.
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inayohitaji Kuboresha |
+| -------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------- | ---------------------- |
+| | Karatasi kamili ya ukurasa mmoja imeandikwa, ikielezea muundo wa roboti unaodhaniwa na kuelezea uzoefu wako nayo | Karatasi haijakamilika au haijafanyiwa utafiti vizuri | Hakuna karatasi iliyowasilishwa |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/6-NLP/2-Tasks/README.md b/translations/sw/6-NLP/2-Tasks/README.md
new file mode 100644
index 00000000..e351aefb
--- /dev/null
+++ b/translations/sw/6-NLP/2-Tasks/README.md
@@ -0,0 +1,228 @@
+
+# Kazi za kawaida za usindikaji wa lugha asilia na mbinu zake
+
+Kwa kazi nyingi za *usindikaji wa lugha asilia*, maandishi yanayopaswa kusindikiwa lazima yagawanywe, kuchunguzwa, na matokeo yake kuhifadhiwa au kulinganishwa na sheria na seti za data. Kazi hizi zinamruhusu mpangaji programu kupata _maana_, _nia_, au tu _mara kwa mara_ ya maneno na misemo katika maandishi.
+
+## [Jaribio la awali la somo](https://ff-quizzes.netlify.app/en/ml/)
+
+Hebu tujifunze mbinu za kawaida zinazotumika katika usindikaji wa maandishi. Zikichanganywa na ujifunzaji wa mashine, mbinu hizi zinakusaidia kuchambua kiasi kikubwa cha maandishi kwa ufanisi. Kabla ya kutumia ML kwa kazi hizi, hata hivyo, hebu tuelewe changamoto zinazokumbana na mtaalamu wa NLP.
+
+## Kazi za kawaida za NLP
+
+Kuna njia tofauti za kuchambua maandishi unayofanyia kazi. Kuna kazi unazoweza kutekeleza, na kupitia kazi hizi unaweza kuelewa maandishi na kutoa hitimisho. Kawaida unatekeleza kazi hizi kwa mpangilio.
+
+### Ugawanyaji wa maneno (Tokenization)
+
+Labda jambo la kwanza ambalo algorithimu nyingi za NLP zinapaswa kufanya ni kugawanya maandishi katika tokeni, au maneno. Ingawa hili linaweza kuonekana rahisi, kuzingatia alama za uakifishaji na mipaka ya sentensi na maneno katika lugha tofauti kunaweza kuwa changamoto. Unaweza kulazimika kutumia mbinu mbalimbali kuamua mipaka.
+
+
+> Kugawanya sentensi kutoka **Pride and Prejudice**. Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+### Uwakilishi wa maneno (Embeddings)
+
+[Uwakilishi wa maneno](https://wikipedia.org/wiki/Word_embedding) ni njia ya kubadilisha data yako ya maandishi kuwa nambari. Uwakilishi hufanywa kwa njia ambayo maneno yenye maana sawa au maneno yanayotumika pamoja yanajikusanya pamoja.
+
+
+> "Nawaheshimu sana mishipa yako, ni marafiki wangu wa zamani." - Uwakilishi wa maneno kwa sentensi kutoka **Pride and Prejudice**. Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+✅ Jaribu [chombo hiki cha kuvutia](https://projector.tensorflow.org/) ili kufanya majaribio na uwakilishi wa maneno. Kubonyeza neno moja kunaonyesha makundi ya maneno yanayofanana: 'toy' linajikusanya na 'disney', 'lego', 'playstation', na 'console'.
+
+### Uchambuzi wa muundo na Tagi za Sehemu ya Hotuba (Parsing & Part-of-speech Tagging)
+
+Kila neno lililogawanywa linaweza kutagiwa kama sehemu ya hotuba - nomino, kitenzi, au kivumishi. Sentensi `the quick red fox jumped over the lazy brown dog` inaweza kutagiwa kama fox = nomino, jumped = kitenzi.
+
+
+
+> Kuchambua sentensi kutoka **Pride and Prejudice**. Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+Uchambuzi wa muundo ni kutambua maneno yanayohusiana katika sentensi - kwa mfano `the quick red fox jumped` ni mfuatano wa kivumishi-nomino-kitenzi ambao ni tofauti na mfuatano wa `lazy brown dog`.
+
+### Mara kwa mara ya Maneno na Misemo
+
+Njia muhimu wakati wa kuchambua maandishi mengi ni kujenga kamusi ya kila neno au msemo wa kuvutia na jinsi unavyojitokeza mara kwa mara. Msemo `the quick red fox jumped over the lazy brown dog` una mara kwa mara ya neno 2 kwa the.
+
+Hebu tuangalie mfano wa maandishi ambapo tunahesabu mara kwa mara ya maneno. Shairi la Rudyard Kipling The Winners lina aya ifuatayo:
+
+```output
+What the moral? Who rides may read.
+When the night is thick and the tracks are blind
+A friend at a pinch is a friend, indeed,
+But a fool to wait for the laggard behind.
+Down to Gehenna or up to the Throne,
+He travels the fastest who travels alone.
+```
+
+Kwa kuwa mara kwa mara ya misemo inaweza kuwa bila kujali herufi kubwa au ndogo kama inavyohitajika, msemo `a friend` una mara kwa mara ya 2 na `the` una mara kwa mara ya 6, na `travels` ni 2.
+
+### N-grams
+
+Maandishi yanaweza kugawanywa katika mfuatano wa maneno ya urefu fulani, neno moja (unigram), maneno mawili (bigrams), maneno matatu (trigrams) au idadi yoyote ya maneno (n-grams).
+
+Kwa mfano `the quick red fox jumped over the lazy brown dog` na alama ya n-gram ya 2 inazalisha n-grams zifuatazo:
+
+1. the quick
+2. quick red
+3. red fox
+4. fox jumped
+5. jumped over
+6. over the
+7. the lazy
+8. lazy brown
+9. brown dog
+
+Inaweza kuwa rahisi kuiona kama sanduku linalosonga juu ya sentensi. Hapa kuna mfano wa n-grams ya maneno 3, n-gram iko kwa herufi nzito katika kila sentensi:
+
+1. **the quick red** fox jumped over the lazy brown dog
+2. the **quick red fox** jumped over the lazy brown dog
+3. the quick **red fox jumped** over the lazy brown dog
+4. the quick red **fox jumped over** the lazy brown dog
+5. the quick red fox **jumped over the** lazy brown dog
+6. the quick red fox jumped **over the lazy** brown dog
+7. the quick red fox jumped over **the lazy brown** dog
+8. the quick red fox jumped over the **lazy brown dog**
+
+
+
+> Thamani ya N-gram ya 3: Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+### Uchimbaji wa Misemo ya Nomino
+
+Katika sentensi nyingi, kuna nomino ambayo ni somo au kitu cha sentensi. Katika Kiingereza, mara nyingi inaweza kutambulika kwa kuwa na 'a' au 'an' au 'the' kabla yake. Kutambua somo au kitu cha sentensi kwa 'kuchimba msemo wa nomino' ni kazi ya kawaida katika NLP wakati wa kujaribu kuelewa maana ya sentensi.
+
+✅ Katika sentensi "I cannot fix on the hour, or the spot, or the look or the words, which laid the foundation. It is too long ago. I was in the middle before I knew that I had begun.", unaweza kutambua misemo ya nomino?
+
+Katika sentensi `the quick red fox jumped over the lazy brown dog` kuna misemo 2 ya nomino: **quick red fox** na **lazy brown dog**.
+
+### Uchambuzi wa Hisia
+
+Sentensi au maandishi yanaweza kuchambuliwa kwa hisia, au jinsi *chanya* au *hasi* ilivyo. Hisia hupimwa kwa *polarity* na *objectivity/subjectivity*. Polarity hupimwa kutoka -1.0 hadi 1.0 (hasi hadi chanya) na 0.0 hadi 1.0 (yawezekana zaidi hadi ya kibinafsi zaidi).
+
+✅ Baadaye utajifunza kuwa kuna njia tofauti za kuamua hisia kwa kutumia ujifunzaji wa mashine, lakini njia moja ni kuwa na orodha ya maneno na misemo ambayo imeainishwa kama chanya au hasi na mtaalamu wa binadamu na kutumia mfano huo kwa maandishi ili kuhesabu alama ya polarity. Unaweza kuona jinsi hii ingeweza kufanya kazi katika hali fulani na si vizuri katika hali nyingine?
+
+### Mabadiliko ya Maneno (Inflection)
+
+Mabadiliko ya maneno yanakuwezesha kuchukua neno na kupata umoja au wingi wa neno hilo.
+
+### Lemmatization
+
+*Lemma* ni mzizi au neno la kichwa kwa seti ya maneno, kwa mfano *flew*, *flies*, *flying* yana lemma ya kitenzi *fly*.
+
+Pia kuna hifadhidata muhimu zinazopatikana kwa mtafiti wa NLP, hasa:
+
+### WordNet
+
+[WordNet](https://wordnet.princeton.edu/) ni hifadhidata ya maneno, visawe, maneno kinyume na maelezo mengine mengi kwa kila neno katika lugha nyingi tofauti. Ni muhimu sana wakati wa kujaribu kujenga tafsiri, ukaguzi wa tahajia, au zana za lugha za aina yoyote.
+
+## Maktaba za NLP
+
+Kwa bahati nzuri, huhitaji kujenga mbinu hizi zote mwenyewe, kwani kuna maktaba bora za Python zinazopatikana ambazo zinawafanya waendelezaji wasio maalum katika usindikaji wa lugha asilia au ujifunzaji wa mashine kufikia kwa urahisi. Masomo yanayofuata yanajumuisha mifano zaidi ya hizi, lakini hapa utajifunza mifano muhimu kukusaidia na kazi inayofuata.
+
+### Zoezi - kutumia maktaba ya `TextBlob`
+
+Hebu tutumie maktaba inayoitwa TextBlob kwani ina API za kusaidia kushughulikia aina hizi za kazi. TextBlob "inasimama juu ya mabega makubwa ya [NLTK](https://nltk.org) na [pattern](https://github.com/clips/pattern), na inafanya kazi vizuri na zote mbili." Ina kiasi kikubwa cha ML kilichojumuishwa katika API yake.
+
+> Kumbuka: Mwongozo wa [Quick Start](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) unapatikana kwa TextBlob ambao unapendekezwa kwa waendelezaji wenye uzoefu wa Python.
+
+Wakati wa kujaribu kutambua *misemo ya nomino*, TextBlob inatoa chaguo kadhaa za wachimbaji wa kupata misemo ya nomino.
+
+1. Angalia `ConllExtractor`.
+
+ ```python
+ from textblob import TextBlob
+ from textblob.np_extractors import ConllExtractor
+ # import and create a Conll extractor to use later
+ extractor = ConllExtractor()
+
+ # later when you need a noun phrase extractor:
+ user_input = input("> ")
+ user_input_blob = TextBlob(user_input, np_extractor=extractor) # note non-default extractor specified
+ np = user_input_blob.noun_phrases
+ ```
+
+ > Nini kinaendelea hapa? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) ni "Kichimbaji cha misemo ya nomino kinachotumia uchambuzi wa vipande vilivyofundishwa na hifadhidata ya mafunzo ya ConLL-2000." ConLL-2000 inahusu Mkutano wa 2000 wa Kujifunza Lugha Asilia kwa Kompyuta. Kila mwaka mkutano huo ulifanya warsha ya kushughulikia tatizo gumu la NLP, na mwaka 2000 ilikuwa uchambuzi wa vipande vya nomino. Mfano ulifundishwa kwenye Wall Street Journal, na "sehemu 15-18 kama data ya mafunzo (tokeni 211727) na sehemu ya 20 kama data ya majaribio (tokeni 47377)". Unaweza kuangalia taratibu zilizotumika [hapa](https://www.clips.uantwerpen.be/conll2000/chunking/) na [matokeo](https://ifarm.nl/erikt/research/np-chunking.html).
+
+### Changamoto - kuboresha bot yako kwa NLP
+
+Katika somo lililopita ulijenga bot rahisi ya Maswali na Majibu. Sasa, utamfanya Marvin awe na huruma zaidi kwa kuchambua maoni yako kwa hisia na kuchapisha jibu linalolingana na hisia hizo. Pia utahitaji kutambua `noun_phrase` na kuuliza kuhusu hilo.
+
+Hatua zako wakati wa kujenga bot bora ya mazungumzo:
+
+1. Chapisha maelekezo yanayoshauri mtumiaji jinsi ya kuingiliana na bot
+2. Anzisha mzunguko
+ 1. Kubali maoni ya mtumiaji
+ 2. Ikiwa mtumiaji ameomba kuondoka, basi ondoka
+ 3. Chakata maoni ya mtumiaji na uamue jibu linalofaa la hisia
+ 4. Ikiwa msemo wa nomino umetambuliwa katika hisia, fanya wingi wake na uliza maoni zaidi kuhusu mada hiyo
+ 5. Chapisha jibu
+3. rudi hatua ya 2
+
+Hapa kuna kipande cha msimbo wa kuamua hisia kwa kutumia TextBlob. Kumbuka kuna *viwango* vinne tu vya jibu la hisia (unaweza kuwa na zaidi ikiwa unapenda):
+
+```python
+if user_input_blob.polarity <= -0.5:
+ response = "Oh dear, that sounds bad. "
+elif user_input_blob.polarity <= 0:
+ response = "Hmm, that's not great. "
+elif user_input_blob.polarity <= 0.5:
+ response = "Well, that sounds positive. "
+elif user_input_blob.polarity <= 1:
+ response = "Wow, that sounds great. "
+```
+
+Hapa kuna baadhi ya matokeo ya sampuli ya kuongoza (maoni ya mtumiaji yako kwenye mistari inayoanza na >):
+
+```output
+Hello, I am Marvin, the friendly robot.
+You can end this conversation at any time by typing 'bye'
+After typing each answer, press 'enter'
+How are you today?
+> I am ok
+Well, that sounds positive. Can you tell me more?
+> I went for a walk and saw a lovely cat
+Well, that sounds positive. Can you tell me more about lovely cats?
+> cats are the best. But I also have a cool dog
+Wow, that sounds great. Can you tell me more about cool dogs?
+> I have an old hounddog but he is sick
+Hmm, that's not great. Can you tell me more about old hounddogs?
+> bye
+It was nice talking to you, goodbye!
+```
+
+Suluhisho moja linalowezekana kwa kazi hiyo ni [hapa](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py)
+
+✅ Uhakiki wa Maarifa
+
+1. Je, unadhani majibu yenye huruma yanaweza 'kumdanganya' mtu kufikiria kwamba bot inaelewa kweli?
+2. Je, kutambua msemo wa nomino kunafanya bot iwe ya 'kuaminika' zaidi?
+3. Kwa nini kuchimba 'msemo wa nomino' kutoka sentensi ni jambo muhimu kufanya?
+
+---
+
+Tekeleza bot katika uhakiki wa maarifa wa awali na ujaribu kwa rafiki. Je, inaweza kuwahadaa? Je, unaweza kufanya bot yako iwe ya 'kuaminika' zaidi?
+
+## 🚀Changamoto
+
+Chukua kazi katika uhakiki wa maarifa wa awali na jaribu kuitekeleza. Jaribu bot kwa rafiki. Je, inaweza kuwahadaa? Je, unaweza kufanya bot yako iwe ya 'kuaminika' zaidi?
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Katika masomo yanayofuata utajifunza zaidi kuhusu uchambuzi wa hisia. Tafiti mbinu hii ya kuvutia katika makala kama hizi kwenye [KDNuggets](https://www.kdnuggets.com/tag/nlp)
+
+## Kazi
+
+[Fanya bot izungumze](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
diff --git a/translations/sw/6-NLP/2-Tasks/assignment.md b/translations/sw/6-NLP/2-Tasks/assignment.md
new file mode 100644
index 00000000..356a4ed2
--- /dev/null
+++ b/translations/sw/6-NLP/2-Tasks/assignment.md
@@ -0,0 +1,25 @@
+
+# Tengeneza Bot Ijibu
+
+## Maelekezo
+
+Katika masomo yaliyopita, uliunda bot ya msingi ya kuzungumza nayo. Bot hii inatoa majibu ya nasibu hadi useme 'bye'. Je, unaweza kufanya majibu yawe na mpangilio kidogo, na kuchochea majibu ikiwa utasema mambo maalum, kama 'kwa nini' au 'vipi'? Fikiria jinsi ujifunzaji wa mashine unaweza kufanya kazi hii iwe rahisi zaidi unapoendeleza bot yako. Unaweza kutumia maktaba za NLTK au TextBlob ili kurahisisha kazi zako.
+
+## Rubric
+
+| Kigezo | Kilele | Kinachokubalika | Kinachohitaji Kuboresha |
+| -------- | --------------------------------------------- | ---------------------------------------------- | ----------------------- |
+| | Faili mpya ya bot.py imewasilishwa na kuandikwa | Faili mpya ya bot imewasilishwa lakini ina kasoro | Faili haijawasilishwa |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/6-NLP/3-Translation-Sentiment/README.md b/translations/sw/6-NLP/3-Translation-Sentiment/README.md
new file mode 100644
index 00000000..2835760e
--- /dev/null
+++ b/translations/sw/6-NLP/3-Translation-Sentiment/README.md
@@ -0,0 +1,200 @@
+
+# Tafsiri na uchambuzi wa hisia kwa kutumia ML
+
+Katika masomo ya awali ulijifunza jinsi ya kujenga bot ya msingi kwa kutumia `TextBlob`, maktaba inayotumia ML nyuma ya pazia kutekeleza kazi za msingi za NLP kama uchimbaji wa misemo ya nomino. Changamoto nyingine muhimu katika isimu ya kompyuta ni tafsiri sahihi ya sentensi kutoka lugha moja ya mazungumzo au maandishi kwenda nyingine.
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+Tafsiri ni tatizo gumu sana linalochangiwa na ukweli kwamba kuna maelfu ya lugha na kila moja inaweza kuwa na sheria tofauti za sarufi. Njia moja ni kubadilisha sheria rasmi za sarufi za lugha moja, kama Kiingereza, kuwa muundo usioegemea lugha, kisha kutafsiri kwa kubadilisha tena kuwa lugha nyingine. Njia hii inahusisha hatua zifuatazo:
+
+1. **Utambulisho**. Tambua au weka alama maneno katika lugha ya ingizo kama nomino, vitenzi, n.k.
+2. **Unda tafsiri**. Tengeneza tafsiri ya moja kwa moja ya kila neno katika muundo wa lugha lengwa.
+
+### Mfano wa sentensi, Kiingereza hadi Kiarishi
+
+Katika 'Kiingereza', sentensi _I feel happy_ ina maneno matatu kwa mpangilio:
+
+- **somo** (I)
+- **kitenzi** (feel)
+- **kivumishi** (happy)
+
+Hata hivyo, katika lugha ya 'Kiarishi', sentensi hiyo hiyo ina muundo tofauti kabisa wa kisarufi - hisia kama "*happy*" au "*sad*" zinaonyeshwa kama ziko *juu yako*.
+
+Kifungu cha Kiingereza `I feel happy` katika Kiarishi kingekuwa `Tá athas orm`. Tafsiri ya *moja kwa moja* ingekuwa `Happy is upon me`.
+
+Mzungumzaji wa Kiarishi akitafsiri kwenda Kiingereza atasema `I feel happy`, si `Happy is upon me`, kwa sababu anaelewa maana ya sentensi, hata kama maneno na muundo wa sentensi ni tofauti.
+
+Mpangilio rasmi wa sentensi katika Kiarishi ni:
+
+- **kitenzi** (Tá au is)
+- **kivumishi** (athas, au happy)
+- **somu** (orm, au upon me)
+
+## Tafsiri
+
+Programu ya tafsiri ya kijinga inaweza kutafsiri maneno pekee, ikipuuza muundo wa sentensi.
+
+✅ Ikiwa umejifunza lugha ya pili (au ya tatu au zaidi) kama mtu mzima, huenda ulianza kwa kufikiria katika lugha yako ya asili, ukitafsiri dhana neno kwa neno kichwani mwako kwenda lugha ya pili, kisha ukazungumza tafsiri yako. Hii ni sawa na kile programu za kompyuta za tafsiri ya kijinga zinavyofanya. Ni muhimu kupita hatua hii ili kufikia ufasaha!
+
+Tafsiri ya kijinga husababisha tafsiri mbaya (na wakati mwingine za kuchekesha): `I feel happy` inatafsiriwa moja kwa moja kuwa `Mise bhraitheann athas` katika Kiarishi. Hii inamaanisha (moja kwa moja) `me feel happy` na si sentensi sahihi ya Kiarishi. Ingawa Kiingereza na Kiarishi ni lugha zinazozungumzwa kwenye visiwa viwili vilivyo karibu sana, ni lugha tofauti kabisa zenye miundo tofauti ya sarufi.
+
+> Unaweza kutazama baadhi ya video kuhusu mila za lugha ya Kiarishi kama [hii](https://www.youtube.com/watch?v=mRIaLSdRMMs)
+
+### Njia za kujifunza kwa mashine
+
+Hadi sasa, umejifunza kuhusu njia ya sheria rasmi kwa usindikaji wa lugha asilia. Njia nyingine ni kupuuza maana ya maneno, na _badala yake kutumia kujifunza kwa mashine kutambua mifumo_. Hii inaweza kufanya kazi katika tafsiri ikiwa una maandishi mengi (*corpus*) au maandishi (*corpora*) katika lugha ya asili na lengwa.
+
+Kwa mfano, fikiria kesi ya *Pride and Prejudice*, riwaya maarufu ya Kiingereza iliyoandikwa na Jane Austen mwaka wa 1813. Ikiwa utachunguza kitabu hicho kwa Kiingereza na tafsiri ya binadamu ya kitabu hicho kwa *Kifaransa*, unaweza kutambua misemo katika moja ambayo imetafsiriwa _kiidiomatikali_ katika nyingine. Utafanya hivyo kwa muda mfupi.
+
+Kwa mfano, wakati kifungu cha Kiingereza kama `I have no money` kinatafsiriwa moja kwa moja kuwa Kifaransa, kinaweza kuwa `Je n'ai pas de monnaie`. "Monnaie" ni neno la Kifaransa lenye maana ya 'false cognate', kwani 'money' na 'monnaie' si sawa. Tafsiri bora ambayo binadamu anaweza kufanya ingekuwa `Je n'ai pas d'argent`, kwa sababu inawasilisha vyema maana kwamba huna pesa (badala ya 'chenji' ambayo ndiyo maana ya 'monnaie').
+
+
+
+> Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+Ikiwa modeli ya ML ina tafsiri za binadamu za kutosha kujenga modeli, inaweza kuboresha usahihi wa tafsiri kwa kutambua mifumo ya kawaida katika maandishi ambayo yamewahi kutafsiriwa na wataalamu wa binadamu wa lugha zote mbili.
+
+### Zoezi - tafsiri
+
+Unaweza kutumia `TextBlob` kutafsiri sentensi. Jaribu mstari maarufu wa kwanza wa **Pride and Prejudice**:
+
+```python
+from textblob import TextBlob
+
+blob = TextBlob(
+ "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
+)
+print(blob.translate(to="fr"))
+
+```
+
+`TextBlob` inafanya kazi nzuri sana katika tafsiri: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
+
+Inaweza kusemwa kwamba tafsiri ya TextBlob ni sahihi zaidi, kwa kweli, kuliko tafsiri ya Kifaransa ya 1932 ya kitabu hicho na V. Leconte na Ch. Pressoir:
+
+"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."
+
+Katika kesi hii, tafsiri iliyoongozwa na ML inafanya kazi bora zaidi kuliko mtafsiri wa binadamu ambaye anaweka maneno yasiyo ya lazima katika mdomo wa mwandishi wa asili kwa 'ufafanuzi'.
+
+> Nini kinaendelea hapa? Na kwa nini TextBlob ni nzuri sana katika tafsiri? Naam, nyuma ya pazia, inatumia Google translate, AI ya kisasa inayoweza kuchanganua mamilioni ya misemo kutabiri mistari bora kwa kazi husika. Hakuna kitu cha mwongozo kinachoendelea hapa na unahitaji muunganisho wa mtandao kutumia `blob.translate`.
+
+✅ Jaribu sentensi zaidi. Ipi ni bora, ML au tafsiri ya binadamu? Katika hali zipi?
+
+## Uchambuzi wa hisia
+
+Eneo lingine ambapo kujifunza kwa mashine kunaweza kufanya kazi vizuri sana ni uchambuzi wa hisia. Njia isiyo ya ML ya hisia ni kutambua maneno na misemo ambayo ni 'chanya' na 'hasi'. Kisha, ukizingatia kipande kipya cha maandishi, hesabu thamani ya jumla ya maneno chanya, hasi na ya kawaida ili kutambua hisia za jumla.
+
+Njia hii inaweza kudanganywa kwa urahisi kama ulivyoona katika kazi ya Marvin - sentensi `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` ni sentensi ya hisia hasi ya kejeli, lakini algoriti rahisi hugundua 'great', 'wonderful', 'glad' kama chanya na 'waste', 'lost' na 'dark' kama hasi. Hisia za jumla zinavurugwa na maneno haya yanayokinzana.
+
+✅ Simama kidogo na fikiria jinsi tunavyowasilisha kejeli kama wazungumzaji wa binadamu. Miondoko ya sauti ina jukumu kubwa. Jaribu kusema kifungu "Well, that film was awesome" kwa njia tofauti ili kugundua jinsi sauti yako inavyowasilisha maana.
+
+### Njia za ML
+
+Njia ya ML ingekuwa kukusanya kwa mikono maandishi hasi na chanya - tweets, au hakiki za filamu, au chochote ambacho binadamu ametoa alama *na* maoni yaliyoandikwa. Kisha mbinu za NLP zinaweza kutumika kwa maoni na alama, ili mifumo ijitokeze (mfano, hakiki chanya za filamu huwa na kifungu 'Oscar worthy' zaidi kuliko hakiki hasi za filamu, au hakiki chanya za migahawa husema 'gourmet' zaidi kuliko 'disgusting').
+
+> ⚖️ **Mfano**: Ikiwa unafanya kazi katika ofisi ya mwanasiasa na kuna sheria mpya inayojadiliwa, wapiga kura wanaweza kuandika barua pepe kwa ofisi hiyo wakiiunga mkono au kupinga sheria hiyo mpya. Tuseme umepewa jukumu la kusoma barua pepe na kuzipanga katika mafungu 2, *kwa* na *dhidi*. Ikiwa kuna barua pepe nyingi, unaweza kuzidiwa ukijaribu kuzisoma zote. Je, si ingekuwa vizuri ikiwa bot ingeweza kuzisoma zote kwa niaba yako, kuzielewa na kukuambia barua pepe ipi inapaswa kuwa katika fungu gani?
+>
+> Njia moja ya kufanikisha hilo ni kutumia Kujifunza kwa Mashine. Ungefundisha modeli kwa sehemu ya barua pepe za *dhidi* na sehemu ya barua pepe za *kwa*. Modeli ingekuwa na mwelekeo wa kuhusisha misemo na maneno na upande wa dhidi na upande wa kwa, *lakini haingeweza kuelewa maudhui yoyote*, isipokuwa kwamba maneno na mifumo fulani ina uwezekano mkubwa wa kuonekana katika barua pepe za *dhidi* au *kwa*. Ungeijaribu na barua pepe ambazo hukuzitumia kufundisha modeli, na kuona ikiwa inafikia hitimisho sawa na ulilofikia. Kisha, mara tu unapokuwa na furaha na usahihi wa modeli, ungeweza kushughulikia barua pepe za baadaye bila kulazimika kusoma kila moja.
+
+✅ Je, mchakato huu unafanana na michakato uliyotumia katika masomo ya awali?
+
+## Zoezi - sentensi za hisia
+
+Hisia hupimwa kwa *polarity* ya -1 hadi 1, ikimaanisha -1 ni hisia hasi zaidi, na 1 ni hisia chanya zaidi. Hisia pia hupimwa kwa alama ya 0 - 1 kwa usawa (0) na maoni binafsi (1).
+
+Angalia tena *Pride and Prejudice* ya Jane Austen. Maandishi yanapatikana hapa [Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm). Sampuli hapa chini inaonyesha programu fupi inayochambua hisia za sentensi za kwanza na za mwisho kutoka kitabu hicho na kuonyesha polarity ya hisia zake na alama ya usawa/maoni binafsi.
+
+Unapaswa kutumia maktaba ya `TextBlob` (iliyotajwa hapo juu) kuamua `sentiment` (huna haja ya kuandika kikokotoo chako cha hisia) katika kazi ifuatayo.
+
+```python
+from textblob import TextBlob
+
+quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""
+
+quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""
+
+sentiment1 = TextBlob(quote1).sentiment
+sentiment2 = TextBlob(quote2).sentiment
+
+print(quote1 + " has a sentiment of " + str(sentiment1))
+print(quote2 + " has a sentiment of " + str(sentiment2))
+```
+
+Unaona matokeo yafuatayo:
+
+```output
+It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)
+
+Darcy, as well as Elizabeth, really loved them; and they were
+ both ever sensible of the warmest gratitude towards the persons
+ who, by bringing her into Derbyshire, had been the means of
+ uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)
+```
+
+## Changamoto - angalia polarity ya hisia
+
+Kazi yako ni kuamua, kwa kutumia polarity ya hisia, ikiwa *Pride and Prejudice* ina sentensi chanya kabisa zaidi kuliko hasi kabisa. Kwa kazi hii, unaweza kudhani kwamba alama ya polarity ya 1 au -1 ni chanya kabisa au hasi kabisa mtawalia.
+
+**Hatua:**
+
+1. Pakua [nakala ya Pride and Prejudice](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) kutoka Project Gutenberg kama faili ya .txt. Ondoa metadata mwanzoni na mwishoni mwa faili, ukiacha maandishi ya asili pekee
+2. Fungua faili hiyo katika Python na uchukue yaliyomo kama kamba
+3. Unda TextBlob kwa kutumia kamba ya kitabu
+4. Changanua kila sentensi katika kitabu kwa mzunguko
+ 1. Ikiwa polarity ni 1 au -1 hifadhi sentensi hiyo katika array au orodha ya ujumbe chanya au hasi
+5. Mwishoni, chapisha sentensi zote chanya na hasi (kando) na idadi ya kila moja.
+
+Hapa kuna [suluhisho la sampuli](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb).
+
+✅ Maswali ya Maarifa
+
+1. Hisia zinategemea maneno yanayotumika katika sentensi, lakini je, msimbo *unaelewa* maneno hayo?
+2. Je, unadhani polarity ya hisia ni sahihi, au kwa maneno mengine, je, *unakubaliana* na alama hizo?
+ 1. Hasa, je, unakubaliana au hukubaliani na polarity chanya kabisa ya sentensi zifuatazo?
+ * “What an excellent father you have, girls!” said she, when the door was shut.
+ * “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect.
+ * How wonderfully these sort of things occur!
+ * I have the greatest dislike in the world to that sort of thing.
+ * Charlotte is an excellent manager, I dare say.
+ * “This is delightful indeed!
+ * I am so happy!
+ * Your idea of the ponies is delightful.
+ 2. Sentensi 3 zifuatazo zilipimwa na polarity chanya kabisa, lakini ukisoma kwa makini, si sentensi chanya. Kwa nini uchambuzi wa hisia ulifikiri ni sentensi chanya?
+ * Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power.
+ * If I could but see you as happy!
+ * Our distress, my dear Lizzy, is very great.
+ 3. Je, unakubaliana au hukubaliani na polarity hasi kabisa ya sentensi zifuatazo?
+ - Everybody is disgusted with his pride.
+ - “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful.
+ - The pause was to Elizabeth’s feelings dreadful.
+ - It would be dreadful!
+
+✅ Mpenzi yeyote wa Jane Austen ataelewa kwamba mara nyingi hutumia vitabu vyake kukosoa vipengele vya kipuuzi vya jamii ya Kiingereza ya Regency. Elizabeth Bennett, mhusika mkuu katika *Pride and Prejudice*, ni mwangalizi wa kijamii mwenye makini (kama mwandishi) na lugha yake mara nyingi ina maana nzito. Hata Mr. Darcy (mpenzi wa hadithi) anabainisha matumizi ya Elizabeth ya lugha ya kucheza na ya kejeli: "I have had the pleasure of your acquaintance long enough to know that you find great enjoyment in occasionally professing opinions which in fact are not your own."
+
+---
+
+## 🚀Changamoto
+
+Je, unaweza kumfanya Marvin kuwa bora zaidi kwa kuchambua vipengele vingine kutoka kwa maoni ya mtumiaji?
+
+## [Maswali ya baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+Kuna njia nyingi za kuchambua hisia kutoka kwa maandishi. Fikiria matumizi ya kibiashara ambayo yanaweza kutumia mbinu hii. Fikiria jinsi inaweza kwenda kombo. Soma zaidi kuhusu mifumo ya kisasa inayofaa kwa biashara ambayo huchambua hisia kama [Azure Text Analysis](https://docs.microsoft.com/azure/cognitive-services/Text-Analytics/how-tos/text-analytics-how-to-sentiment-analysis?tabs=version-3-1?WT.mc_id=academic-77952-leestott). Jaribu baadhi ya sentensi kutoka "Pride and Prejudice" hapo juu na uone kama inaweza kugundua nyongeza ya maana.
+
+## Kazi
+
+[Leseni ya kishairi](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
diff --git a/translations/sw/6-NLP/3-Translation-Sentiment/assignment.md b/translations/sw/6-NLP/3-Translation-Sentiment/assignment.md
new file mode 100644
index 00000000..078143c9
--- /dev/null
+++ b/translations/sw/6-NLP/3-Translation-Sentiment/assignment.md
@@ -0,0 +1,25 @@
+
+# Leseni ya Ushairi
+
+## Maelekezo
+
+Katika [notebook hii](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) unaweza kupata zaidi ya mashairi 500 ya Emily Dickinson ambayo tayari yamechambuliwa kwa hisia kwa kutumia huduma ya Azure text analytics. Kutumia seti hii ya data, ichambue kwa kutumia mbinu zilizoelezwa katika somo. Je, hisia zilizopendekezwa za shairi zinapatana na uamuzi wa huduma ya Azure yenye ujuzi zaidi? Kwa nini au kwa nini siyo, kwa maoni yako? Je, kuna kitu chochote kinachokushangaza?
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inahitaji Kuboresha |
+| -------- | -------------------------------------------------------------------------- | --------------------------------------------------- | ------------------------ |
+| | Notebook inawasilishwa ikiwa na uchambuzi thabiti wa sampuli ya mwandishi | Notebook haijakamilika au haifanyi uchambuzi | Hakuna notebook iliyowasilishwa |
+
+---
+
+**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, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/6-NLP/3-Translation-Sentiment/solution/Julia/README.md b/translations/sw/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
new file mode 100644
index 00000000..039ffb85
--- /dev/null
+++ b/translations/sw/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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 kiasili 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
diff --git a/translations/sw/6-NLP/3-Translation-Sentiment/solution/R/README.md b/translations/sw/6-NLP/3-Translation-Sentiment/solution/R/README.md
new file mode 100644
index 00000000..2e2b40eb
--- /dev/null
+++ b/translations/sw/6-NLP/3-Translation-Sentiment/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/6-NLP/4-Hotel-Reviews-1/README.md b/translations/sw/6-NLP/4-Hotel-Reviews-1/README.md
new file mode 100644
index 00000000..7d8e13f8
--- /dev/null
+++ b/translations/sw/6-NLP/4-Hotel-Reviews-1/README.md
@@ -0,0 +1,417 @@
+
+# Uchambuzi wa hisia kwa maoni ya hoteli - kuchakata data
+
+Katika sehemu hii utatumia mbinu ulizojifunza katika masomo ya awali kufanya uchambuzi wa data wa awali kwenye seti kubwa ya data. Mara utakapopata uelewa mzuri wa umuhimu wa safu mbalimbali, utajifunza:
+
+- jinsi ya kuondoa safu zisizo za lazima
+- jinsi ya kuhesabu data mpya kulingana na safu zilizopo
+- jinsi ya kuhifadhi seti ya data iliyosindikwa kwa matumizi katika changamoto ya mwisho
+
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+### Utangulizi
+
+Hadi sasa umejifunza jinsi data ya maandishi inavyotofautiana na aina za data za nambari. Ikiwa ni maandishi yaliyoandikwa au kusemwa na binadamu, yanaweza kuchambuliwa ili kupata mifumo na marudio, hisia na maana. Somo hili linakuletea seti halisi ya data na changamoto halisi: **[Maoni ya Hoteli 515K Barani Ulaya](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)** ambayo ina [Leseni ya CC0: Public Domain](https://creativecommons.org/publicdomain/zero/1.0/). Data hii ilikusanywa kutoka Booking.com kupitia vyanzo vya umma. Muundaji wa seti ya data ni Jiashen Liu.
+
+### Maandalizi
+
+Utahitaji:
+
+* Uwezo wa kuendesha .ipynb notebooks kwa kutumia Python 3
+* pandas
+* NLTK, [ambayo unapaswa kusakinisha kwa ndani](https://www.nltk.org/install.html)
+* Seti ya data inayopatikana kwenye Kaggle [Maoni ya Hoteli 515K Barani Ulaya](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe). Ina ukubwa wa takriban 230 MB baada ya kufunguliwa. Pakua kwenye folda ya mizizi `/data` inayohusiana na masomo haya ya NLP.
+
+## Uchambuzi wa data wa awali
+
+Changamoto hii inadhani kuwa unajenga roboti ya mapendekezo ya hoteli kwa kutumia uchambuzi wa hisia na alama za maoni ya wageni. Seti ya data unayotumia inajumuisha maoni ya hoteli 1493 katika miji 6.
+
+Kwa kutumia Python, seti ya data ya maoni ya hoteli, na uchambuzi wa hisia wa NLTK unaweza kugundua:
+
+* Ni maneno na misemo gani inayotumika mara nyingi zaidi katika maoni?
+* Je, *lebo* rasmi zinazofafanua hoteli zinahusiana na alama za maoni (kwa mfano, je, maoni hasi zaidi kwa hoteli fulani yanatoka kwa *Familia yenye watoto wadogo* kuliko *Msafiri peke yake*, labda ikionyesha kuwa ni bora kwa *Wasafiri peke yao*)?
+* Je, alama za hisia za NLTK 'zinakubaliana' na alama ya nambari ya mtoa maoni wa hoteli?
+
+#### Seti ya data
+
+Hebu tuchunguze seti ya data uliyopakua na kuhifadhi kwa ndani. Fungua faili katika mhariri kama VS Code au hata Excel.
+
+Vichwa vya safu katika seti ya data ni kama ifuatavyo:
+
+*Hotel_Address, Additional_Number_of_Scoring, Review_Date, Average_Score, Hotel_Name, Reviewer_Nationality, Negative_Review, Review_Total_Negative_Word_Counts, Total_Number_of_Reviews, Positive_Review, Review_Total_Positive_Word_Counts, Total_Number_of_Reviews_Reviewer_Has_Given, Reviewer_Score, Tags, days_since_review, lat, lng*
+
+Hapa vimepangwa kwa njia ambayo inaweza kuwa rahisi kuchunguza:
+##### Safu za hoteli
+
+* `Hotel_Name`, `Hotel_Address`, `lat` (latitudo), `lng` (longitudo)
+ * Kwa kutumia *lat* na *lng* unaweza kuchora ramani kwa Python inayoonyesha maeneo ya hoteli (labda kwa rangi tofauti kwa maoni hasi na chanya)
+ * Hotel_Address haionekani kuwa na manufaa kwetu, na labda tutaibadilisha na nchi kwa urahisi wa kupanga na kutafuta
+
+**Safu za meta-maoni ya hoteli**
+
+* `Average_Score`
+ * Kulingana na muundaji wa seti ya data, safu hii ni *Alama ya wastani ya hoteli, iliyohesabiwa kulingana na maoni ya hivi karibuni katika mwaka uliopita*. Hii inaonekana kama njia isiyo ya kawaida ya kuhesabu alama, lakini ni data iliyokusanywa kwa hivyo tunaweza kuichukua kama ilivyo kwa sasa.
+
+ ✅ Kulingana na safu nyingine katika data hii, unaweza kufikiria njia nyingine ya kuhesabu alama ya wastani?
+
+* `Total_Number_of_Reviews`
+ * Jumla ya idadi ya maoni ambayo hoteli hii imepokea - haijabainishwa (bila kuandika msimbo) ikiwa hii inahusu maoni katika seti ya data.
+* `Additional_Number_of_Scoring`
+ * Hii inamaanisha alama ya maoni ilitolewa lakini hakuna maoni chanya au hasi yaliyoandikwa na mtoa maoni
+
+**Safu za maoni**
+
+- `Reviewer_Score`
+ - Hii ni thamani ya nambari yenye desimali moja kati ya thamani ya chini na ya juu 2.5 na 10
+ - Haijafafanuliwa kwa nini 2.5 ndiyo alama ya chini inayowezekana
+- `Negative_Review`
+ - Ikiwa mtoa maoni hakuandika chochote, safu hii itakuwa na "**No Negative**"
+ - Kumbuka kuwa mtoa maoni anaweza kuandika maoni chanya katika safu ya maoni hasi (kwa mfano, "hakuna kitu kibaya kuhusu hoteli hii")
+- `Review_Total_Negative_Word_Counts`
+ - Idadi kubwa ya maneno hasi inaonyesha alama ya chini (bila kuangalia hisia)
+- `Positive_Review`
+ - Ikiwa mtoa maoni hakuandika chochote, safu hii itakuwa na "**No Positive**"
+ - Kumbuka kuwa mtoa maoni anaweza kuandika maoni hasi katika safu ya maoni chanya (kwa mfano, "hakuna kitu kizuri kuhusu hoteli hii kabisa")
+- `Review_Total_Positive_Word_Counts`
+ - Idadi kubwa ya maneno chanya inaonyesha alama ya juu (bila kuangalia hisia)
+- `Review_Date` na `days_since_review`
+ - Kipimo cha ukale au upya kinaweza kutumika kwa maoni (maoni ya zamani yanaweza kuwa si sahihi kama ya hivi karibuni kwa sababu usimamizi wa hoteli umebadilika, au ukarabati umefanyika, au bwawa limeongezwa n.k.)
+- `Tags`
+ - Hizi ni maelezo mafupi ambayo mtoa maoni anaweza kuchagua kuelezea aina ya mgeni aliyekuwa (kwa mfano, peke yake au familia), aina ya chumba alichokuwa nacho, muda wa kukaa na jinsi maoni yalivyowasilishwa.
+ - Kwa bahati mbaya, kutumia lebo hizi ni changamoto, angalia sehemu hapa chini inayojadili umuhimu wake
+
+**Safu za mtoa maoni**
+
+- `Total_Number_of_Reviews_Reviewer_Has_Given`
+ - Hii inaweza kuwa sababu katika modeli ya mapendekezo, kwa mfano, ikiwa unaweza kubaini kuwa watoa maoni wenye maoni mengi zaidi ya mamia walikuwa na uwezekano mkubwa wa kuwa hasi kuliko chanya. Hata hivyo, mtoa maoni wa maoni yoyote maalum hajabainishwa kwa msimbo wa kipekee, na kwa hivyo hawezi kuunganishwa na seti ya maoni. Kuna watoa maoni 30 wenye maoni 100 au zaidi, lakini ni vigumu kuona jinsi hii inaweza kusaidia modeli ya mapendekezo.
+- `Reviewer_Nationality`
+ - Watu wengine wanaweza kufikiria kuwa mataifa fulani yana uwezekano mkubwa wa kutoa maoni chanya au hasi kwa sababu ya mwelekeo wa kitaifa. Kuwa makini kujenga maoni ya aina hii ya kimazungumzo katika modeli zako. Hizi ni dhana za kitaifa (na wakati mwingine za kikabila), na kila mtoa maoni alikuwa mtu binafsi aliyeandika maoni kulingana na uzoefu wake. Inaweza kuwa imechujwa kupitia lenzi nyingi kama vile kukaa kwake kwa hoteli za awali, umbali aliosafiri, na tabia yake binafsi. Kufikiria kuwa utaifa wao ndio sababu ya alama ya maoni ni vigumu kuthibitisha.
+
+##### Mifano
+
+| Alama ya Wastani | Jumla ya Maoni | Alama ya Mtoa Maoni | Maoni Hasi | Maoni Chanya | Lebo |
+| ---------------- | -------------- | ------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
+| 7.8 | 1945 | 2.5 | Hii kwa sasa si hoteli bali ni eneo la ujenzi Niliteswa kutoka asubuhi na mapema na siku nzima na kelele za ujenzi zisizokubalika wakati wa kupumzika baada ya safari ndefu na kufanya kazi katika chumba Watu walikuwa wakifanya kazi siku nzima kwa kutumia mashine za kuchimba katika vyumba vya karibu Niliomba kubadilisha chumba lakini hakuna chumba kimya kilichopatikana Ili kufanya mambo kuwa mabaya zaidi nilitozwa zaidi Niliondoka jioni kwa kuwa nilikuwa na safari ya mapema sana na kupokea bili inayofaa Siku moja baadaye hoteli ilifanya malipo mengine bila idhini yangu zaidi ya bei iliyowekwa Ni mahali pabaya Usijiteshe kwa kuweka nafasi hapa | Hakuna kitu kibaya Mahali pabaya Epuka | Safari ya kibiashara Wenzi Chumba cha kawaida cha kitanda mara mbili Kukaa usiku 2 |
+
+Kama unavyoona, mgeni huyu hakuwa na kukaa kwa furaha katika hoteli hii. Hoteli ina alama nzuri ya wastani ya 7.8 na maoni 1945, lakini mtoa maoni huyu aliipa 2.5 na kuandika maneno 115 kuhusu jinsi kukaa kwake kulivyokuwa hasi. Ikiwa hakuandika chochote kabisa katika safu ya Maoni_Chanya, unaweza kudhani hakukuwa na kitu chanya, lakini kwa bahati mbaya aliandika maneno 7 ya onyo. Ikiwa tungehesabu maneno badala ya maana, au hisia za maneno, tunaweza kuwa na mtazamo uliopotoshwa wa nia ya mtoa maoni. Kwa kushangaza, alama yake ya 2.5 inachanganya, kwa sababu ikiwa kukaa kwake katika hoteli hiyo kulikuwa mbaya sana, kwa nini kutoa alama yoyote? Kuchunguza seti ya data kwa karibu, utaona kuwa alama ya chini kabisa inayowezekana ni 2.5, si 0. Alama ya juu kabisa inayowezekana ni 10.
+
+##### Lebo
+
+Kama ilivyotajwa hapo juu, kwa mtazamo wa kwanza, wazo la kutumia `Tags` kuainisha data lina mantiki. Kwa bahati mbaya lebo hizi hazijasanifishwa, ambayo inamaanisha kuwa katika hoteli fulani, chaguo zinaweza kuwa *Chumba cha mtu mmoja*, *Chumba cha mapacha*, na *Chumba cha kitanda mara mbili*, lakini katika hoteli nyingine, ni *Chumba cha mtu mmoja cha kifahari*, *Chumba cha kifalme cha kawaida*, na *Chumba cha kifalme cha mtendaji*. Hizi zinaweza kuwa vitu sawa, lakini kuna tofauti nyingi sana kwamba chaguo linakuwa:
+
+1. Jaribu kubadilisha maneno yote kuwa kiwango kimoja, ambayo ni ngumu sana, kwa sababu haijabainishwa njia ya ubadilishaji itakuwa nini katika kila kesi (kwa mfano, *Chumba cha kawaida cha mtu mmoja* kinafanana na *Chumba cha mtu mmoja* lakini *Chumba cha kifalme cha kifahari na bustani ya ua au mwonekano wa jiji* ni ngumu zaidi kuoanisha)
+
+1. Tunaweza kuchukua mbinu ya NLP na kupima marudio ya maneno fulani kama *Peke yake*, *Msafiri wa kibiashara*, au *Familia yenye watoto wadogo* jinsi yanavyotumika kwa kila hoteli, na kuingiza hilo katika mapendekezo
+
+Lebo kwa kawaida (lakini si kila mara) ni safu moja inayojumuisha orodha ya thamani 5 hadi 6 zilizotenganishwa kwa koma zinazolingana na *Aina ya safari*, *Aina ya wageni*, *Aina ya chumba*, *Idadi ya usiku*, na *Aina ya kifaa maoni yalivyowasilishwa*. Hata hivyo, kwa sababu watoa maoni wengine hawajazijaza kila sehemu (wanaweza kuacha moja tupu), thamani hazipo kila mara kwa mpangilio sawa.
+
+Kwa mfano, chukua *Aina ya kikundi*. Kuna uwezekano 1025 wa kipekee katika safu hii ya `Tags`, na kwa bahati mbaya ni baadhi tu yao yanayorejelea kikundi (baadhi ni aina ya chumba n.k.). Ikiwa utachuja tu zile zinazotaja familia, matokeo yanajumuisha aina nyingi za *Chumba cha familia*. Ikiwa utajumuisha neno *na*, yaani, hesabu thamani za *Familia na*, matokeo ni bora, na zaidi ya 80,000 kati ya matokeo 515,000 yanajumuisha maneno "Familia yenye watoto wadogo" au "Familia yenye watoto wakubwa".
+
+Hii inamaanisha safu ya lebo si bure kabisa kwetu, lakini itahitaji kazi ili iwe na manufaa.
+
+##### Alama ya wastani ya hoteli
+
+Kuna idadi ya mambo ya ajabu au tofauti na seti ya data ambayo siwezi kuelewa, lakini yameonyeshwa hapa ili uweze kuyatambua unapojenga modeli zako. Ikiwa utayagundua, tafadhali tujulishe katika sehemu ya majadiliano!
+
+Seti ya data ina safu zifuatazo zinazohusiana na alama ya wastani na idadi ya maoni:
+
+1. Hotel_Name
+2. Additional_Number_of_Scoring
+3. Average_Score
+4. Total_Number_of_Reviews
+5. Reviewer_Score
+
+Hoteli moja yenye idadi kubwa zaidi ya maoni katika seti hii ya data ni *Britannia International Hotel Canary Wharf* yenye maoni 4789 kati ya 515,000. Lakini ikiwa tutaangalia thamani ya `Total_Number_of_Reviews` kwa hoteli hii, ni 9086. Unaweza kudhani kuwa kuna alama nyingi zaidi bila maoni, kwa hivyo labda tunapaswa kuongeza thamani ya safu ya `Additional_Number_of_Scoring`. Thamani hiyo ni 2682, na kuiongeza kwa 4789 inatufikisha 7471 ambayo bado ni pungufu ya 1615 kutoka kwa `Total_Number_of_Reviews`.
+
+Ikiwa utachukua safu ya `Average_Score`, unaweza kudhani ni wastani wa maoni katika seti ya data, lakini maelezo kutoka Kaggle ni "*Alama ya wastani ya hoteli, iliyohesabiwa kulingana na maoni ya hivi karibuni katika mwaka uliopita*". Hii haionekani kuwa na manufaa, lakini tunaweza kuhesabu wastani wetu wenyewe kulingana na alama za maoni katika seti ya data. Kwa kutumia hoteli hiyo hiyo kama mfano, alama ya wastani ya hoteli inatolewa kama 7.1 lakini alama iliyohesabiwa (wastani wa alama za mtoa maoni *katika* seti ya data) ni 6.8. Hii ni karibu, lakini si thamani sawa, na tunaweza tu kudhani kuwa alama zilizotolewa katika maoni ya `Additional_Number_of_Scoring` ziliongeza wastani hadi 7.1. Kwa bahati mbaya bila njia ya kujaribu au kuthibitisha dhana hiyo, ni vigumu kutumia au kuamini `Average_Score`, `Additional_Number_of_Scoring` na `Total_Number_of_Reviews` wakati zinategemea, au zinarejelea, data ambayo hatuna.
+
+Ili kufanya mambo kuwa magumu zaidi, hoteli yenye idadi ya pili ya juu ya maoni ina alama ya wastani iliyohesabiwa ya 8.12 na `Average_Score` ya seti ya data ni 8.1. Je, alama hii sahihi ni bahati mbaya au hoteli ya kwanza ni tofauti?
+
+Kwa uwezekano kwamba hoteli hizi zinaweza kuwa tofauti, na kwamba labda thamani nyingi zinahesabu (lakini baadhi hazihesabu kwa sababu fulani) tutaandika programu fupi ijayo kuchunguza thamani katika seti ya data na kubaini matumizi sahihi (au kutotumia) ya thamani.
+> 🚨 Tahadhari muhimu
+>
+> Unapofanya kazi na seti hii ya data, utaandika msimbo unaohesabu kitu kutoka kwa maandishi bila kulazimika kusoma au kuchambua maandishi mwenyewe. Hii ndiyo kiini cha NLP, kutafsiri maana au hisia bila kumhusisha binadamu moja kwa moja. Hata hivyo, kuna uwezekano kwamba utaona baadhi ya maoni hasi. Ningekushauri usifanye hivyo, kwa sababu huna haja ya kufanya hivyo. Baadhi ya maoni hayo ni ya kipuuzi, au hayana umuhimu, kama vile maoni hasi kuhusu hoteli yanayosema "Hali ya hewa haikuwa nzuri," jambo ambalo liko nje ya uwezo wa hoteli, au mtu yeyote. Lakini kuna upande wa giza kwa baadhi ya maoni pia. Wakati mwingine maoni hasi yanaweza kuwa ya kibaguzi, ya kijinsia, au ya umri. Hili ni jambo la kusikitisha lakini linaweza kutarajiwa katika seti ya data iliyokusanywa kutoka tovuti ya umma. Baadhi ya watu huacha maoni ambayo unaweza kuyachukia, kukosa raha, au kuhuzunika. Ni bora kuruhusu msimbo kupima hisia badala ya kuyasoma mwenyewe na kuhisi huzuni. Hata hivyo, ni wachache wanaoandika mambo kama hayo, lakini bado yapo.
+## Zoezi - Uchunguzi wa Takwimu
+### Pakia Takwimu
+
+Hiyo inatosha kuangalia takwimu kwa macho, sasa utaandika msimbo na kupata majibu! Sehemu hii inatumia maktaba ya pandas. Kazi yako ya kwanza ni kuhakikisha unaweza kupakia na kusoma data ya CSV. Maktaba ya pandas ina kipakiaji cha haraka cha CSV, na matokeo huwekwa kwenye dataframe, kama ilivyo kwenye masomo ya awali. CSV tunayoipakia ina zaidi ya nusu milioni ya safu, lakini ina safu 17 tu. Pandas inakupa njia nyingi zenye nguvu za kuingiliana na dataframe, ikiwa ni pamoja na uwezo wa kufanya operesheni kwenye kila safu.
+
+Kuanzia hapa katika somo hili, kutakuwa na vipande vya msimbo na maelezo ya msimbo pamoja na majadiliano kuhusu maana ya matokeo. Tumia _notebook.ipynb_ iliyojumuishwa kwa msimbo wako.
+
+Tuanzie kwa kupakia faili ya data utakayotumia:
+
+```python
+# Load the hotel reviews from CSV
+import pandas as pd
+import time
+# importing time so the start and end time can be used to calculate file loading time
+print("Loading data file now, this could take a while depending on file size")
+start = time.time()
+# df is 'DataFrame' - make sure you downloaded the file to the data folder
+df = pd.read_csv('../../data/Hotel_Reviews.csv')
+end = time.time()
+print("Loading took " + str(round(end - start, 2)) + " seconds")
+```
+
+Sasa data imepakuliwa, tunaweza kufanya operesheni kadhaa juu yake. Weka msimbo huu juu ya programu yako kwa sehemu inayofuata.
+
+## Chunguza Takwimu
+
+Katika hali hii, data tayari ni *safi*, maana yake ni kwamba iko tayari kufanyiwa kazi, na haina herufi katika lugha nyingine ambazo zinaweza kusababisha matatizo kwa algorithimu zinazotarajia herufi za Kiingereza pekee.
+
+✅ Unaweza kulazimika kufanya kazi na data inayohitaji usindikaji wa awali ili kuipanga kabla ya kutumia mbinu za NLP, lakini si wakati huu. Ikiwa ungetakiwa, ungewezaje kushughulikia herufi zisizo za Kiingereza?
+
+Chukua muda kuhakikisha kwamba mara data inapopakuliwa, unaweza kuichunguza kwa msimbo. Ni rahisi kutaka kuzingatia safu za `Negative_Review` na `Positive_Review`. Zimejaa maandishi ya asili kwa algorithimu zako za NLP kuchakata. Lakini subiri! Kabla ya kuingia kwenye NLP na hisia, unapaswa kufuata msimbo hapa chini ili kuthibitisha kama maadili yaliyotolewa kwenye seti ya data yanalingana na maadili unayohesabu kwa pandas.
+
+## Operesheni za Dataframe
+
+Kazi ya kwanza katika somo hili ni kuangalia kama madai yafuatayo ni sahihi kwa kuandika msimbo unaochunguza dataframe (bila kuibadilisha).
+
+> Kama ilivyo kwa kazi nyingi za programu, kuna njia kadhaa za kukamilisha hili, lakini ushauri mzuri ni kufanya kwa njia rahisi na rahisi unavyoweza, hasa ikiwa itakuwa rahisi kuelewa unapokuja tena kwenye msimbo huu siku zijazo. Kwa dataframes, kuna API ya kina ambayo mara nyingi itakuwa na njia ya kufanya unachotaka kwa ufanisi.
+
+Chukulia maswali yafuatayo kama kazi za kuandika msimbo na jaribu kuyajibu bila kuangalia suluhisho.
+
+1. Chapisha *umbo* la dataframe uliyopakia (umbo ni idadi ya safu na safu wima)
+2. Hesabu idadi ya mara kwa mara ya uraia wa wakaguzi:
+ 1. Kuna maadili mangapi tofauti kwa safu wima `Reviewer_Nationality` na ni yapi?
+ 2. Uraia gani wa wakaguzi ni wa kawaida zaidi kwenye seti ya data (chapisha nchi na idadi ya ukaguzi)?
+ 3. Ni uraia gani 10 wa juu zaidi unaopatikana mara kwa mara, na idadi yao ya mara kwa mara?
+3. Hoteli ipi ilikaguliwa mara nyingi zaidi kwa kila moja ya uraia 10 wa juu wa wakaguzi?
+4. Kuna ukaguzi wangapi kwa kila hoteli (idadi ya mara kwa mara ya hoteli) kwenye seti ya data?
+5. Ingawa kuna safu wima ya `Average_Score` kwa kila hoteli kwenye seti ya data, unaweza pia kuhesabu wastani wa alama (kupata wastani wa alama zote za wakaguzi kwenye seti ya data kwa kila hoteli). Ongeza safu mpya kwenye dataframe yako yenye kichwa cha safu wima `Calc_Average_Score` inayojumuisha wastani uliokokotwa.
+6. Je, kuna hoteli yoyote yenye `Average_Score` na `Calc_Average_Score` sawa (imezungushwa hadi sehemu moja ya desimali)?
+ 1. Jaribu kuandika kazi ya Python inayochukua Series (safu) kama hoja na kulinganisha maadili, ikichapisha ujumbe wakati maadili hayalingani. Kisha tumia njia ya `.apply()` kuchakata kila safu kwa kazi hiyo.
+7. Hesabu na chapisha idadi ya safu zenye maadili ya safu wima `Negative_Review` ya "No Negative"
+8. Hesabu na chapisha idadi ya safu zenye maadili ya safu wima `Positive_Review` ya "No Positive"
+9. Hesabu na chapisha idadi ya safu zenye maadili ya safu wima `Positive_Review` ya "No Positive" **na** `Negative_Review` ya "No Negative"
+
+### Majibu ya Msimbo
+
+1. Chapisha *umbo* la dataframe uliyopakia (umbo ni idadi ya safu na safu wima)
+
+ ```python
+ print("The shape of the data (rows, cols) is " + str(df.shape))
+ > The shape of the data (rows, cols) is (515738, 17)
+ ```
+
+2. Hesabu idadi ya mara kwa mara ya uraia wa wakaguzi:
+
+ 1. Kuna maadili mangapi tofauti kwa safu wima `Reviewer_Nationality` na ni yapi?
+ 2. Uraia gani wa wakaguzi ni wa kawaida zaidi kwenye seti ya data (chapisha nchi na idadi ya ukaguzi)?
+
+ ```python
+ # value_counts() creates a Series object that has index and values in this case, the country and the frequency they occur in reviewer nationality
+ nationality_freq = df["Reviewer_Nationality"].value_counts()
+ print("There are " + str(nationality_freq.size) + " different nationalities")
+ # print first and last rows of the Series. Change to nationality_freq.to_string() to print all of the data
+ print(nationality_freq)
+
+ There are 227 different nationalities
+ United Kingdom 245246
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ ...
+ Comoros 1
+ Palau 1
+ Northern Mariana Islands 1
+ Cape Verde 1
+ Guinea 1
+ Name: Reviewer_Nationality, Length: 227, dtype: int64
+ ```
+
+ 3. Ni uraia gani 10 wa juu zaidi unaopatikana mara kwa mara, na idadi yao ya mara kwa mara?
+
+ ```python
+ print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.")
+ # Notice there is a leading space on the values, strip() removes that for printing
+ # What is the top 10 most common nationalities and their frequencies?
+ print("The next 10 highest frequency reviewer nationalities are:")
+ print(nationality_freq[1:11].to_string())
+
+ The highest frequency reviewer nationality is United Kingdom with 245246 reviews.
+ The next 10 highest frequency reviewer nationalities are:
+ United States of America 35437
+ Australia 21686
+ Ireland 14827
+ United Arab Emirates 10235
+ Saudi Arabia 8951
+ Netherlands 8772
+ Switzerland 8678
+ Germany 7941
+ Canada 7894
+ France 7296
+ ```
+
+3. Hoteli ipi ilikaguliwa mara nyingi zaidi kwa kila moja ya uraia 10 wa juu wa wakaguzi?
+
+ ```python
+ # What was the most frequently reviewed hotel for the top 10 nationalities
+ # Normally with pandas you will avoid an explicit loop, but wanted to show creating a new dataframe using criteria (don't do this with large amounts of data because it could be very slow)
+ for nat in nationality_freq[:10].index:
+ # First, extract all the rows that match the criteria into a new dataframe
+ nat_df = df[df["Reviewer_Nationality"] == nat]
+ # Now get the hotel freq
+ freq = nat_df["Hotel_Name"].value_counts()
+ print("The most reviewed hotel for " + str(nat).strip() + " was " + str(freq.index[0]) + " with " + str(freq[0]) + " reviews.")
+
+ The most reviewed hotel for United Kingdom was Britannia International Hotel Canary Wharf with 3833 reviews.
+ The most reviewed hotel for United States of America was Hotel Esther a with 423 reviews.
+ The most reviewed hotel for Australia was Park Plaza Westminster Bridge London with 167 reviews.
+ The most reviewed hotel for Ireland was Copthorne Tara Hotel London Kensington with 239 reviews.
+ The most reviewed hotel for United Arab Emirates was Millennium Hotel London Knightsbridge with 129 reviews.
+ The most reviewed hotel for Saudi Arabia was The Cumberland A Guoman Hotel with 142 reviews.
+ The most reviewed hotel for Netherlands was Jaz Amsterdam with 97 reviews.
+ The most reviewed hotel for Switzerland was Hotel Da Vinci with 97 reviews.
+ The most reviewed hotel for Germany was Hotel Da Vinci with 86 reviews.
+ The most reviewed hotel for Canada was St James Court A Taj Hotel London with 61 reviews.
+ ```
+
+4. Kuna ukaguzi wangapi kwa kila hoteli (idadi ya mara kwa mara ya hoteli) kwenye seti ya data?
+
+ ```python
+ # First create a new dataframe based on the old one, removing the uneeded columns
+ hotel_freq_df = df.drop(["Hotel_Address", "Additional_Number_of_Scoring", "Review_Date", "Average_Score", "Reviewer_Nationality", "Negative_Review", "Review_Total_Negative_Word_Counts", "Positive_Review", "Review_Total_Positive_Word_Counts", "Total_Number_of_Reviews_Reviewer_Has_Given", "Reviewer_Score", "Tags", "days_since_review", "lat", "lng"], axis = 1)
+
+ # Group the rows by Hotel_Name, count them and put the result in a new column Total_Reviews_Found
+ hotel_freq_df['Total_Reviews_Found'] = hotel_freq_df.groupby('Hotel_Name').transform('count')
+
+ # Get rid of all the duplicated rows
+ hotel_freq_df = hotel_freq_df.drop_duplicates(subset = ["Hotel_Name"])
+ display(hotel_freq_df)
+ ```
+ | Hotel_Name | Total_Number_of_Reviews | Total_Reviews_Found |
+ | :----------------------------------------: | :---------------------: | :-----------------: |
+ | Britannia International Hotel Canary Wharf | 9086 | 4789 |
+ | Park Plaza Westminster Bridge London | 12158 | 4169 |
+ | Copthorne Tara Hotel London Kensington | 7105 | 3578 |
+ | ... | ... | ... |
+ | Mercure Paris Porte d Orleans | 110 | 10 |
+ | Hotel Wagner | 135 | 10 |
+ | Hotel Gallitzinberg | 173 | 8 |
+
+ Unaweza kugundua kuwa matokeo ya *kuhesabiwa kwenye seti ya data* hayalingani na thamani katika `Total_Number_of_Reviews`. Haijulikani kama thamani hii kwenye seti ya data iliwakilisha idadi ya ukaguzi hoteli iliyo nayo, lakini si zote zilichanganuliwa, au hesabu nyingine. `Total_Number_of_Reviews` haitumiki kwenye modeli kwa sababu ya kutokueleweka huku.
+
+5. Ingawa kuna safu wima ya `Average_Score` kwa kila hoteli kwenye seti ya data, unaweza pia kuhesabu wastani wa alama (kupata wastani wa alama zote za wakaguzi kwenye seti ya data kwa kila hoteli). Ongeza safu mpya kwenye dataframe yako yenye kichwa cha safu wima `Calc_Average_Score` inayojumuisha wastani uliokokotwa. Chapisha safu wima `Hotel_Name`, `Average_Score`, na `Calc_Average_Score`.
+
+ ```python
+ # define a function that takes a row and performs some calculation with it
+ def get_difference_review_avg(row):
+ return row["Average_Score"] - row["Calc_Average_Score"]
+
+ # 'mean' is mathematical word for 'average'
+ df['Calc_Average_Score'] = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+
+ # Add a new column with the difference between the two average scores
+ df["Average_Score_Difference"] = df.apply(get_difference_review_avg, axis = 1)
+
+ # Create a df without all the duplicates of Hotel_Name (so only 1 row per hotel)
+ review_scores_df = df.drop_duplicates(subset = ["Hotel_Name"])
+
+ # Sort the dataframe to find the lowest and highest average score difference
+ review_scores_df = review_scores_df.sort_values(by=["Average_Score_Difference"])
+
+ display(review_scores_df[["Average_Score_Difference", "Average_Score", "Calc_Average_Score", "Hotel_Name"]])
+ ```
+
+ Unaweza pia kushangaa kuhusu thamani ya `Average_Score` na kwa nini wakati mwingine ni tofauti na wastani uliokokotwa. Kwa kuwa hatuwezi kujua kwa nini baadhi ya maadili yanalingana, lakini mengine yana tofauti, ni salama katika hali hii kutumia alama za ukaguzi tulizo nazo kuhesabu wastani wenyewe. Hata hivyo, tofauti hizo kwa kawaida ni ndogo sana, hapa kuna hoteli zenye tofauti kubwa zaidi kati ya wastani wa seti ya data na wastani uliokokotwa:
+
+ | Average_Score_Difference | Average_Score | Calc_Average_Score | Hotel_Name |
+ | :----------------------: | :-----------: | :----------------: | ------------------------------------------: |
+ | -0.8 | 7.7 | 8.5 | Best Western Hotel Astoria |
+ | -0.7 | 8.8 | 9.5 | Hotel Stendhal Place Vend me Paris MGallery |
+ | -0.7 | 7.5 | 8.2 | Mercure Paris Porte d Orleans |
+ | -0.7 | 7.9 | 8.6 | Renaissance Paris Vendome Hotel |
+ | -0.5 | 7.0 | 7.5 | Hotel Royal Elys es |
+ | ... | ... | ... | ... |
+ | 0.7 | 7.5 | 6.8 | Mercure Paris Op ra Faubourg Montmartre |
+ | 0.8 | 7.1 | 6.3 | Holiday Inn Paris Montparnasse Pasteur |
+ | 0.9 | 6.8 | 5.9 | Villa Eugenie |
+ | 0.9 | 8.6 | 7.7 | MARQUIS Faubourg St Honor Relais Ch teaux |
+ | 1.3 | 7.2 | 5.9 | Kube Hotel Ice Bar |
+
+ Kwa kuwa hoteli moja tu ina tofauti ya alama kubwa zaidi ya 1, ina maana tunaweza kupuuza tofauti hiyo na kutumia wastani uliokokotwa.
+
+6. Hesabu na chapisha idadi ya safu zenye maadili ya safu wima `Negative_Review` ya "No Negative"
+
+7. Hesabu na chapisha idadi ya safu zenye maadili ya safu wima `Positive_Review` ya "No Positive"
+
+8. Hesabu na chapisha idadi ya safu zenye maadili ya safu wima `Positive_Review` ya "No Positive" **na** `Negative_Review` ya "No Negative"
+
+ ```python
+ # with lambdas:
+ start = time.time()
+ no_negative_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" else False , axis=1)
+ print("Number of No Negative reviews: " + str(len(no_negative_reviews[no_negative_reviews == True].index)))
+
+ no_positive_reviews = df.apply(lambda x: True if x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of No Positive reviews: " + str(len(no_positive_reviews[no_positive_reviews == True].index)))
+
+ both_no_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" and x['Positive_Review'] == "No Positive" else False , axis=1)
+ print("Number of both No Negative and No Positive reviews: " + str(len(both_no_reviews[both_no_reviews == True].index)))
+ end = time.time()
+ print("Lambdas took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Lambdas took 9.64 seconds
+ ```
+
+## Njia Nyingine
+
+Njia nyingine ya kuhesabu vitu bila Lambdas, na kutumia sum kuhesabu safu:
+
+ ```python
+ # without lambdas (using a mixture of notations to show you can use both)
+ start = time.time()
+ no_negative_reviews = sum(df.Negative_Review == "No Negative")
+ print("Number of No Negative reviews: " + str(no_negative_reviews))
+
+ no_positive_reviews = sum(df["Positive_Review"] == "No Positive")
+ print("Number of No Positive reviews: " + str(no_positive_reviews))
+
+ both_no_reviews = sum((df.Negative_Review == "No Negative") & (df.Positive_Review == "No Positive"))
+ print("Number of both No Negative and No Positive reviews: " + str(both_no_reviews))
+
+ end = time.time()
+ print("Sum took " + str(round(end - start, 2)) + " seconds")
+
+ Number of No Negative reviews: 127890
+ Number of No Positive reviews: 35946
+ Number of both No Negative and No Positive reviews: 127
+ Sum took 0.19 seconds
+ ```
+
+ Unaweza kugundua kuwa kuna safu 127 zenye maadili ya "No Negative" na "No Positive" kwa safu wima `Negative_Review` na `Positive_Review` mtawalia. Hii ina maana kwamba mkaguzi alitoa hoteli alama ya nambari, lakini alikataa kuandika ukaguzi chanya au hasi. Kwa bahati nzuri, hii ni idadi ndogo ya safu (127 kati ya 515738, au 0.02%), kwa hivyo labda haitapotosha modeli yetu au matokeo kwa mwelekeo wowote, lakini huenda hukutarajia seti ya data ya ukaguzi kuwa na safu bila ukaguzi, kwa hivyo ni vyema kuchunguza data ili kugundua safu kama hizi.
+
+Sasa kwa kuwa umechunguza seti ya data, katika somo linalofuata utachuja data na kuongeza uchambuzi wa hisia.
+
+---
+## 🚀Changamoto
+
+Somo hili linaonyesha, kama tulivyoona katika masomo ya awali, jinsi ilivyo muhimu sana kuelewa data yako na kasoro zake kabla ya kufanya operesheni juu yake. Data inayotegemea maandishi, hasa, inahitaji uchunguzi wa makini. Chunguza seti mbalimbali za data zenye maandishi mengi na uone kama unaweza kugundua maeneo ambayo yanaweza kuingiza upendeleo au hisia zilizopotoka kwenye modeli.
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio & Kujifunza Mwenyewe
+
+Chukua [Njia hii ya Kujifunza kuhusu NLP](https://docs.microsoft.com/learn/paths/explore-natural-language-processing/?WT.mc_id=academic-77952-leestott) ili kugundua zana za kujaribu wakati wa kujenga modeli zenye maandishi na sauti nyingi.
+
+## Kazi
+
+[NLTK](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 kutokuelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
\ No newline at end of file
diff --git a/translations/sw/6-NLP/4-Hotel-Reviews-1/assignment.md b/translations/sw/6-NLP/4-Hotel-Reviews-1/assignment.md
new file mode 100644
index 00000000..a01ac18d
--- /dev/null
+++ b/translations/sw/6-NLP/4-Hotel-Reviews-1/assignment.md
@@ -0,0 +1,19 @@
+
+# NLTK
+
+## Maelekezo
+
+NLTK ni maktaba inayojulikana kwa matumizi katika isimu ya kompyuta na NLP. Chukua fursa hii kusoma '[kitabu cha NLTK](https://www.nltk.org/book/)' na ujaribu mazoezi yake. Katika kazi hii isiyo na alama, utapata kujifunza zaidi kuhusu maktaba hii.
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md b/translations/sw/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
new file mode 100644
index 00000000..59f565b4
--- /dev/null
+++ b/translations/sw/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/6-NLP/4-Hotel-Reviews-1/solution/R/README.md b/translations/sw/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
new file mode 100644
index 00000000..47904f49
--- /dev/null
+++ b/translations/sw/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/6-NLP/5-Hotel-Reviews-2/README.md b/translations/sw/6-NLP/5-Hotel-Reviews-2/README.md
new file mode 100644
index 00000000..4f9acdc2
--- /dev/null
+++ b/translations/sw/6-NLP/5-Hotel-Reviews-2/README.md
@@ -0,0 +1,389 @@
+
+# Uchambuzi wa Hisia kwa Maoni ya Hoteli
+
+Sasa kwa kuwa umechunguza seti ya data kwa undani, ni wakati wa kuchuja safu na kisha kutumia mbinu za NLP kwenye seti ya data ili kupata maarifa mapya kuhusu hoteli.
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+### Uendeshaji wa Kuchuja na Uchambuzi wa Hisia
+
+Kama ulivyogundua, seti ya data ina masuala kadhaa. Baadhi ya safu zimejaa taarifa zisizo na maana, nyingine zinaonekana kuwa si sahihi. Ikiwa ni sahihi, haijulikani jinsi zilivyohesabiwa, na majibu hayawezi kuthibitishwa kwa uhuru kupitia hesabu zako mwenyewe.
+
+## Zoezi: Usindikaji wa data zaidi kidogo
+
+Safisha data kidogo zaidi. Ongeza safu ambazo zitakuwa muhimu baadaye, badilisha maadili katika safu nyingine, na futa safu fulani kabisa.
+
+1. Usindikaji wa awali wa safu
+
+ 1. Futa `lat` na `lng`
+
+ 2. Badilisha maadili ya `Hotel_Address` na maadili yafuatayo (ikiwa anwani ina jina la jiji na nchi, ibadilishe kuwa jiji na nchi tu).
+
+ Haya ndiyo majiji na nchi pekee katika seti ya data:
+
+ Amsterdam, Netherlands
+
+ Barcelona, Spain
+
+ London, United Kingdom
+
+ Milan, Italy
+
+ Paris, France
+
+ Vienna, Austria
+
+ ```python
+ def replace_address(row):
+ if "Netherlands" in row["Hotel_Address"]:
+ return "Amsterdam, Netherlands"
+ elif "Barcelona" in row["Hotel_Address"]:
+ return "Barcelona, Spain"
+ elif "United Kingdom" in row["Hotel_Address"]:
+ return "London, United Kingdom"
+ elif "Milan" in row["Hotel_Address"]:
+ return "Milan, Italy"
+ elif "France" in row["Hotel_Address"]:
+ return "Paris, France"
+ elif "Vienna" in row["Hotel_Address"]:
+ return "Vienna, Austria"
+
+ # Replace all the addresses with a shortened, more useful form
+ df["Hotel_Address"] = df.apply(replace_address, axis = 1)
+ # The sum of the value_counts() should add up to the total number of reviews
+ print(df["Hotel_Address"].value_counts())
+ ```
+
+ Sasa unaweza kuuliza data ya kiwango cha nchi:
+
+ ```python
+ display(df.groupby("Hotel_Address").agg({"Hotel_Name": "nunique"}))
+ ```
+
+ | Hotel_Address | Hotel_Name |
+ | :--------------------- | :--------: |
+ | Amsterdam, Netherlands | 105 |
+ | Barcelona, Spain | 211 |
+ | London, United Kingdom | 400 |
+ | Milan, Italy | 162 |
+ | Paris, France | 458 |
+ | Vienna, Austria | 158 |
+
+2. Usindikaji wa safu za Meta-review za Hoteli
+
+ 1. Futa `Additional_Number_of_Scoring`
+
+ 1. Badilisha `Total_Number_of_Reviews` na idadi ya jumla ya maoni ya hoteli hiyo ambayo kwa kweli yako kwenye seti ya data
+
+ 1. Badilisha `Average_Score` na alama yetu iliyohesabiwa wenyewe
+
+ ```python
+ # Drop `Additional_Number_of_Scoring`
+ df.drop(["Additional_Number_of_Scoring"], axis = 1, inplace=True)
+ # Replace `Total_Number_of_Reviews` and `Average_Score` with our own calculated values
+ df.Total_Number_of_Reviews = df.groupby('Hotel_Name').transform('count')
+ df.Average_Score = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)
+ ```
+
+3. Usindikaji wa safu za maoni
+
+ 1. Futa `Review_Total_Negative_Word_Counts`, `Review_Total_Positive_Word_Counts`, `Review_Date` na `days_since_review`
+
+ 2. Weka `Reviewer_Score`, `Negative_Review`, na `Positive_Review` kama zilivyo,
+
+ 3. Weka `Tags` kwa sasa
+
+ - Tutafanya baadhi ya operesheni za kuchuja za ziada kwenye tags katika sehemu inayofuata na kisha tags zitafutwa
+
+4. Usindikaji wa safu za mtoa maoni
+
+ 1. Futa `Total_Number_of_Reviews_Reviewer_Has_Given`
+
+ 2. Weka `Reviewer_Nationality`
+
+### Safu za Tag
+
+Safu ya `Tag` ni tatizo kwa kuwa ni orodha (katika mfumo wa maandishi) iliyohifadhiwa kwenye safu. Kwa bahati mbaya, mpangilio na idadi ya sehemu ndogo katika safu hii si sawa kila wakati. Ni vigumu kwa binadamu kutambua misemo sahihi ya kuvutiwa nayo, kwa sababu kuna safu 515,000, na hoteli 1427, na kila moja ina chaguo tofauti kidogo ambazo mtoa maoni anaweza kuchagua. Hapa ndipo NLP inang'aa. Unaweza kuchanganua maandishi na kupata misemo ya kawaida zaidi, na kuhesabu.
+
+Kwa bahati mbaya, hatuvutiwi na maneno moja, bali misemo ya maneno mengi (mfano *Safari ya Biashara*). Kuendesha algoriti ya usambazaji wa maneno mengi kwenye data nyingi (6762646 maneno) inaweza kuchukua muda mwingi sana, lakini bila kuangalia data, inaonekana kuwa ni gharama ya lazima. Hapa ndipo uchambuzi wa data wa uchunguzi unakuwa muhimu, kwa sababu umeona sampuli ya tags kama `[' Business trip ', ' Solo traveler ', ' Single Room ', ' Stayed 5 nights ', ' Submitted from a mobile device ']`, unaweza kuanza kuuliza ikiwa inawezekana kupunguza sana usindikaji unaohitaji kufanya. Kwa bahati nzuri, inawezekana - lakini kwanza unahitaji kufuata hatua chache ili kuthibitisha tags za kuvutiwa nazo.
+
+### Kuchuja tags
+
+Kumbuka kuwa lengo la seti ya data ni kuongeza hisia na safu ambazo zitakusaidia kuchagua hoteli bora (kwa ajili yako mwenyewe au labda mteja anayekuagiza kutengeneza bot ya mapendekezo ya hoteli). Unahitaji kujiuliza ikiwa tags ni muhimu au la katika seti ya data ya mwisho. Hapa kuna tafsiri moja (ikiwa unahitaji seti ya data kwa sababu nyingine tags tofauti zinaweza kubaki/kutolewa):
+
+1. Aina ya safari ni muhimu, na hiyo inapaswa kubaki
+2. Aina ya kikundi cha wageni ni muhimu, na hiyo inapaswa kubaki
+3. Aina ya chumba, suite, au studio ambayo mgeni alikaa si muhimu (hoteli zote zina vyumba vya msingi sawa)
+4. Kifaa ambacho maoni yalitumwa nacho si muhimu
+5. Idadi ya usiku mtoa maoni alikaa *inaweza* kuwa muhimu ikiwa unahusisha kukaa kwa muda mrefu na wao kupenda hoteli zaidi, lakini ni jambo la kubahatisha, na labda si muhimu
+
+Kwa muhtasari, **weka aina 2 za tags na ondoa zingine**.
+
+Kwanza, hutaki kuhesabu tags hadi ziwe katika muundo bora, kwa hivyo hiyo inamaanisha kuondoa mabano ya mraba na nukuu. Unaweza kufanya hivi kwa njia kadhaa, lakini unataka njia ya haraka zaidi kwa kuwa inaweza kuchukua muda mrefu kusindika data nyingi. Kwa bahati nzuri, pandas ina njia rahisi ya kufanya kila moja ya hatua hizi.
+
+```Python
+# Remove opening and closing brackets
+df.Tags = df.Tags.str.strip("[']")
+# remove all quotes too
+df.Tags = df.Tags.str.replace(" ', '", ",", regex = False)
+```
+
+Kila tag inakuwa kitu kama: `Business trip, Solo traveler, Single Room, Stayed 5 nights, Submitted from a mobile device`.
+
+Kisha tunakutana na tatizo. Baadhi ya maoni, au safu, zina safu 5, nyingine 3, nyingine 6. Hii ni matokeo ya jinsi seti ya data ilivyoundwa, na ni vigumu kurekebisha. Unataka kupata hesabu ya mara kwa mara ya kila msemo, lakini ziko katika mpangilio tofauti katika kila maoni, kwa hivyo hesabu inaweza kuwa si sahihi, na hoteli inaweza kukosa tag ambayo ilistahili.
+
+Badala yake utatumia mpangilio tofauti kwa faida yetu, kwa sababu kila tag ni maneno mengi lakini pia imetenganishwa na koma! Njia rahisi ya kufanya hivi ni kuunda safu 6 za muda na kila tag ikijazwa kwenye safu inayolingana na mpangilio wake katika tag. Kisha unaweza kuunganisha safu 6 kuwa safu moja kubwa na kuendesha njia ya `value_counts()` kwenye safu inayotokana. Ukiichapisha, utaona kulikuwa na tags 2428 za kipekee. Hapa kuna sampuli ndogo:
+
+| Tag | Count |
+| ------------------------------ | ------ |
+| Leisure trip | 417778 |
+| Submitted from a mobile device | 307640 |
+| Couple | 252294 |
+| Stayed 1 night | 193645 |
+| Stayed 2 nights | 133937 |
+| Solo traveler | 108545 |
+| Stayed 3 nights | 95821 |
+| Business trip | 82939 |
+| Group | 65392 |
+| Family with young children | 61015 |
+| Stayed 4 nights | 47817 |
+| Double Room | 35207 |
+| Standard Double Room | 32248 |
+| Superior Double Room | 31393 |
+| Family with older children | 26349 |
+| Deluxe Double Room | 24823 |
+| Double or Twin Room | 22393 |
+| Stayed 5 nights | 20845 |
+| Standard Double or Twin Room | 17483 |
+| Classic Double Room | 16989 |
+| Superior Double or Twin Room | 13570 |
+| 2 rooms | 12393 |
+
+Baadhi ya tags za kawaida kama `Submitted from a mobile device` hazina maana kwetu, kwa hivyo inaweza kuwa jambo la busara kuziondoa kabla ya kuhesabu mara za msemo, lakini ni operesheni ya haraka sana unaweza kuziacha na kuzipuuza.
+
+### Kuondoa tags za muda wa kukaa
+
+Kuondoa tags hizi ni hatua ya kwanza, inapunguza idadi ya tags zinazozingatiwa kidogo. Kumbuka huziondoi kutoka kwenye seti ya data, unachagua tu kuziondoa kutoka kwa kuzingatiwa kama maadili ya kuhesabu/kubaki kwenye seti ya data ya maoni.
+
+| Length of stay | Count |
+| ---------------- | ------ |
+| Stayed 1 night | 193645 |
+| Stayed 2 nights | 133937 |
+| Stayed 3 nights | 95821 |
+| Stayed 4 nights | 47817 |
+| Stayed 5 nights | 20845 |
+| Stayed 6 nights | 9776 |
+| Stayed 7 nights | 7399 |
+| Stayed 8 nights | 2502 |
+| Stayed 9 nights | 1293 |
+| ... | ... |
+
+Kuna aina mbalimbali za vyumba, suites, studio, vyumba vya ghorofa na kadhalika. Vyote vinamaanisha takriban kitu kimoja na si muhimu kwako, kwa hivyo ondoa kutoka kwa kuzingatiwa.
+
+| Type of room | Count |
+| ----------------------------- | ----- |
+| Double Room | 35207 |
+| Standard Double Room | 32248 |
+| Superior Double Room | 31393 |
+| Deluxe Double Room | 24823 |
+| Double or Twin Room | 22393 |
+| Standard Double or Twin Room | 17483 |
+| Classic Double Room | 16989 |
+| Superior Double or Twin Room | 13570 |
+
+Hatimaye, na hili ni jambo la kufurahisha (kwa sababu halikuchukua usindikaji mwingi hata kidogo), utabaki na tags zifuatazo *muhimu*:
+
+| Tag | Count |
+| --------------------------------------------- | ------ |
+| Leisure trip | 417778 |
+| Couple | 252294 |
+| Solo traveler | 108545 |
+| Business trip | 82939 |
+| Group (combined with Travellers with friends) | 67535 |
+| Family with young children | 61015 |
+| Family with older children | 26349 |
+| With a pet | 1405 |
+
+Unaweza kusema kwamba `Travellers with friends` ni sawa na `Group` kwa kiasi fulani, na hilo lingekuwa jambo la haki kuunganisha mbili kama ilivyo hapo juu. Nambari ya kutambua tags sahihi iko [katika daftari la Tags](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb).
+
+Hatua ya mwisho ni kuunda safu mpya kwa kila moja ya tags hizi. Kisha, kwa kila safu ya maoni, ikiwa safu ya `Tag` inalingana na moja ya safu mpya, ongeza 1, ikiwa sivyo, ongeza 0. Matokeo ya mwisho yatakuwa hesabu ya ni watoa maoni wangapi walichagua hoteli hii (kwa jumla) kwa, tuseme, biashara dhidi ya burudani, au kuleta mnyama, na hii ni taarifa muhimu wakati wa kupendekeza hoteli.
+
+```python
+# Process the Tags into new columns
+# The file Hotel_Reviews_Tags.py, identifies the most important tags
+# Leisure trip, Couple, Solo traveler, Business trip, Group combined with Travelers with friends,
+# Family with young children, Family with older children, With a pet
+df["Leisure_trip"] = df.Tags.apply(lambda tag: 1 if "Leisure trip" in tag else 0)
+df["Couple"] = df.Tags.apply(lambda tag: 1 if "Couple" in tag else 0)
+df["Solo_traveler"] = df.Tags.apply(lambda tag: 1 if "Solo traveler" in tag else 0)
+df["Business_trip"] = df.Tags.apply(lambda tag: 1 if "Business trip" in tag else 0)
+df["Group"] = df.Tags.apply(lambda tag: 1 if "Group" in tag or "Travelers with friends" in tag else 0)
+df["Family_with_young_children"] = df.Tags.apply(lambda tag: 1 if "Family with young children" in tag else 0)
+df["Family_with_older_children"] = df.Tags.apply(lambda tag: 1 if "Family with older children" in tag else 0)
+df["With_a_pet"] = df.Tags.apply(lambda tag: 1 if "With a pet" in tag else 0)
+
+```
+
+### Hifadhi faili yako
+
+Hatimaye, hifadhi seti ya data kama ilivyo sasa na jina jipya.
+
+```python
+df.drop(["Review_Total_Negative_Word_Counts", "Review_Total_Positive_Word_Counts", "days_since_review", "Total_Number_of_Reviews_Reviewer_Has_Given"], axis = 1, inplace=True)
+
+# Saving new data file with calculated columns
+print("Saving results to Hotel_Reviews_Filtered.csv")
+df.to_csv(r'../data/Hotel_Reviews_Filtered.csv', index = False)
+```
+
+## Uendeshaji wa Uchambuzi wa Hisia
+
+Katika sehemu hii ya mwisho, utatumia uchambuzi wa hisia kwenye safu za maoni na kuhifadhi matokeo kwenye seti ya data.
+
+## Zoezi: pakia na hifadhi data iliyochujwa
+
+Kumbuka kuwa sasa unapakia seti ya data iliyochujwa ambayo ilihifadhiwa katika sehemu iliyopita, **si** seti ya data ya awali.
+
+```python
+import time
+import pandas as pd
+import nltk as nltk
+from nltk.corpus import stopwords
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+nltk.download('vader_lexicon')
+
+# Load the filtered hotel reviews from CSV
+df = pd.read_csv('../../data/Hotel_Reviews_Filtered.csv')
+
+# You code will be added here
+
+
+# Finally remember to save the hotel reviews with new NLP data added
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r'../data/Hotel_Reviews_NLP.csv', index = False)
+```
+
+### Kuondoa maneno ya kawaida
+
+Ikiwa ungeendesha Uchambuzi wa Hisia kwenye safu za maoni ya Negativity na Positivity, inaweza kuchukua muda mrefu. Imejaribiwa kwenye kompyuta ya majaribio yenye CPU ya haraka, ilichukua dakika 12 - 14 kulingana na ni maktaba gani ya hisia iliyotumika. Huo ni muda mrefu (kwa kiasi), kwa hivyo inafaa kuchunguza ikiwa inaweza kuharakishwa.
+
+Kuondoa maneno ya kawaida, au maneno ya Kiingereza ya kawaida ambayo hayabadilishi hisia za sentensi, ni hatua ya kwanza. Kwa kuyaondoa, uchambuzi wa hisia unapaswa kuendeshwa haraka, lakini usiwe na usahihi mdogo (kwa kuwa maneno ya kawaida hayabadilishi hisia, lakini yanapunguza kasi ya uchambuzi).
+
+Maoni ya Negativity yaliyo marefu zaidi yalikuwa na maneno 395, lakini baada ya kuondoa maneno ya kawaida, yanakuwa na maneno 195.
+
+Kuondoa maneno ya kawaida pia ni operesheni ya haraka, kuondoa maneno ya kawaida kutoka safu 2 za maoni zaidi ya safu 515,000 ilichukua sekunde 3.3 kwenye kifaa cha majaribio. Inaweza kuchukua muda kidogo zaidi au kidogo kwako kulingana na kasi ya CPU ya kifaa chako, RAM, ikiwa una SSD au la, na baadhi ya mambo mengine. Ushorti wa operesheni unamaanisha kwamba ikiwa inaboresha muda wa uchambuzi wa hisia, basi inafaa kufanya.
+
+```python
+from nltk.corpus import stopwords
+
+# Load the hotel reviews from CSV
+df = pd.read_csv("../../data/Hotel_Reviews_Filtered.csv")
+
+# Remove stop words - can be slow for a lot of text!
+# Ryan Han (ryanxjhan on Kaggle) has a great post measuring performance of different stop words removal approaches
+# https://www.kaggle.com/ryanxjhan/fast-stop-words-removal # using the approach that Ryan recommends
+start = time.time()
+cache = set(stopwords.words("english"))
+def remove_stopwords(review):
+ text = " ".join([word for word in review.split() if word not in cache])
+ return text
+
+# Remove the stop words from both columns
+df.Negative_Review = df.Negative_Review.apply(remove_stopwords)
+df.Positive_Review = df.Positive_Review.apply(remove_stopwords)
+```
+
+### Kufanya uchambuzi wa hisia
+
+Sasa unapaswa kuhesabu uchambuzi wa hisia kwa safu za maoni ya Negativity na Positivity, na kuhifadhi matokeo kwenye safu mpya 2. Jaribio la hisia litakuwa kulinganisha na alama ya mtoa maoni kwa maoni hayo hayo. Kwa mfano, ikiwa hisia zinafikiri maoni ya Negativity yalikuwa na hisia ya 1 (hisia chanya sana) na hisia ya maoni ya Positivity ya 1, lakini mtoa maoni alitoa hoteli alama ya chini kabisa, basi ama maandishi ya maoni hayalingani na alama, au mchanganuzi wa hisia haukuweza kutambua hisia kwa usahihi. Unapaswa kutarajia baadhi ya alama za hisia kuwa si sahihi kabisa, na mara nyingi hilo litakuwa linaelezeka, mfano maoni yanaweza kuwa ya kejeli sana "Bila shaka NILIPENDA kulala kwenye chumba bila joto" na mchanganuzi wa hisia anafikiri hiyo ni hisia chanya, ingawa binadamu anayesoma angejua ni kejeli.
+NLTK hutoa wachambuzi mbalimbali wa hisia za kujifunza, na unaweza kubadilisha na kuona kama hisia ni sahihi zaidi au chini. Uchambuzi wa hisia wa VADER umetumika hapa.
+
+> Hutto, C.J. & Gilbert, E.E. (2014). VADER: Mfano Rahisi wa Kanuni kwa Uchambuzi wa Hisia za Maandishi ya Mitandao ya Kijamii. Mkutano wa Nane wa Kimataifa wa Weblogs na Mitandao ya Kijamii (ICWSM-14). Ann Arbor, MI, Juni 2014.
+
+```python
+from nltk.sentiment.vader import SentimentIntensityAnalyzer
+
+# Create the vader sentiment analyser (there are others in NLTK you can try too)
+vader_sentiment = SentimentIntensityAnalyzer()
+# Hutto, C.J. & Gilbert, E.E. (2014). VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text. Eighth International Conference on Weblogs and Social Media (ICWSM-14). Ann Arbor, MI, June 2014.
+
+# There are 3 possibilities of input for a review:
+# It could be "No Negative", in which case, return 0
+# It could be "No Positive", in which case, return 0
+# It could be a review, in which case calculate the sentiment
+def calc_sentiment(review):
+ if review == "No Negative" or review == "No Positive":
+ return 0
+ return vader_sentiment.polarity_scores(review)["compound"]
+```
+
+Baadaye katika programu yako, unapokuwa tayari kuhesabu hisia, unaweza kuitumia kwa kila tathmini kama ifuatavyo:
+
+```python
+# Add a negative sentiment and positive sentiment column
+print("Calculating sentiment columns for both positive and negative reviews")
+start = time.time()
+df["Negative_Sentiment"] = df.Negative_Review.apply(calc_sentiment)
+df["Positive_Sentiment"] = df.Positive_Review.apply(calc_sentiment)
+end = time.time()
+print("Calculating sentiment took " + str(round(end - start, 2)) + " seconds")
+```
+
+Hii inachukua takriban sekunde 120 kwenye kompyuta yangu, lakini itatofautiana kwa kila kompyuta. Ikiwa unataka kuchapisha matokeo na kuona kama hisia zinalingana na tathmini:
+
+```python
+df = df.sort_values(by=["Negative_Sentiment"], ascending=True)
+print(df[["Negative_Review", "Negative_Sentiment"]])
+df = df.sort_values(by=["Positive_Sentiment"], ascending=True)
+print(df[["Positive_Review", "Positive_Sentiment"]])
+```
+
+Jambo la mwisho kabisa kufanya na faili kabla ya kuitumia katika changamoto ni kuihifadhi! Unapaswa pia kuzingatia kupanga upya safu zako mpya zote ili ziwe rahisi kufanya kazi nazo (kwa binadamu, ni mabadiliko ya muonekano).
+
+```python
+# Reorder the columns (This is cosmetic, but to make it easier to explore the data later)
+df = df.reindex(["Hotel_Name", "Hotel_Address", "Total_Number_of_Reviews", "Average_Score", "Reviewer_Score", "Negative_Sentiment", "Positive_Sentiment", "Reviewer_Nationality", "Leisure_trip", "Couple", "Solo_traveler", "Business_trip", "Group", "Family_with_young_children", "Family_with_older_children", "With_a_pet", "Negative_Review", "Positive_Review"], axis=1)
+
+print("Saving results to Hotel_Reviews_NLP.csv")
+df.to_csv(r"../data/Hotel_Reviews_NLP.csv", index = False)
+```
+
+Unapaswa kuendesha msimbo mzima wa [daftari la uchambuzi](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) (baada ya kuendesha [daftari lako la kuchuja](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) ili kuzalisha faili ya Hotel_Reviews_Filtered.csv).
+
+Kwa muhtasari, hatua ni:
+
+1. Faili ya dataset ya awali **Hotel_Reviews.csv** ilichunguzwa katika somo lililopita na [daftari la uchunguzi](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb)
+2. Hotel_Reviews.csv ilichujwa na [daftari la kuchuja](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) na kusababisha **Hotel_Reviews_Filtered.csv**
+3. Hotel_Reviews_Filtered.csv ilichakatwa na [daftari la uchambuzi wa hisia](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) na kusababisha **Hotel_Reviews_NLP.csv**
+4. Tumia Hotel_Reviews_NLP.csv katika Changamoto ya NLP hapa chini
+
+### Hitimisho
+
+Ulipoanza, ulikuwa na dataset yenye safu na data lakini si yote iliyoweza kuthibitishwa au kutumika. Umechunguza data, ukachuja kile usichohitaji, ukabadilisha vitambulisho kuwa kitu cha maana, ukahesabu wastani wako mwenyewe, ukaongeza safu za hisia na pengine, umejifunza mambo ya kuvutia kuhusu uchakataji wa maandishi asilia.
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Changamoto
+
+Sasa kwa kuwa dataset yako imechambuliwa kwa hisia, jaribu kutumia mikakati uliyojifunza katika mtaala huu (labda clustering?) ili kubaini mifumo inayohusiana na hisia.
+
+## Mapitio na Kujisomea
+
+Chukua [moduli hii ya Kujifunza](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott) ili kujifunza zaidi na kutumia zana tofauti kuchunguza hisia katika maandishi.
+
+## Kazi
+
+[Jaribu dataset tofauti](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
diff --git a/translations/sw/6-NLP/5-Hotel-Reviews-2/assignment.md b/translations/sw/6-NLP/5-Hotel-Reviews-2/assignment.md
new file mode 100644
index 00000000..15ec7aad
--- /dev/null
+++ b/translations/sw/6-NLP/5-Hotel-Reviews-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Jaribu seti tofauti ya data
+
+## Maelekezo
+
+Sasa kwa kuwa umejifunza kuhusu kutumia NLTK kuhusisha hisia na maandishi, jaribu seti tofauti ya data. Huenda ukahitaji kufanya usindikaji wa data kuhusiana nayo, kwa hivyo unda daftari na ueleze mchakato wako wa mawazo. Unagundua nini?
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inahitaji Kuboresha |
+| -------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------- | ---------------------- |
+| | Daftari kamili na seti ya data vinawasilishwa na seli zilizoelezwa vizuri kuhusu jinsi hisia zinavyohusishwa | Daftari linakosa maelezo mazuri | Daftari lina kasoro |
+
+---
+
+**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
diff --git a/translations/sw/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md b/translations/sw/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
new file mode 100644
index 00000000..c31e6f32
--- /dev/null
+++ b/translations/sw/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/6-NLP/5-Hotel-Reviews-2/solution/R/README.md b/translations/sw/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
new file mode 100644
index 00000000..df7704f8
--- /dev/null
+++ b/translations/sw/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/6-NLP/README.md b/translations/sw/6-NLP/README.md
new file mode 100644
index 00000000..3095816e
--- /dev/null
+++ b/translations/sw/6-NLP/README.md
@@ -0,0 +1,38 @@
+
+# Kuanza na usindikaji wa lugha asilia
+
+Usindikaji wa lugha asilia (NLP) ni uwezo wa programu ya kompyuta kuelewa lugha ya binadamu kama inavyoongelewa na kuandikwa -- inayojulikana kama lugha asilia. Ni sehemu ya akili bandia (AI). NLP imekuwepo kwa zaidi ya miaka 50 na ina mizizi katika uwanja wa isimu. Uwanja mzima unalenga kusaidia mashine kuelewa na kushughulikia lugha ya binadamu. Hii inaweza kutumika kutekeleza majukumu kama ukaguzi wa tahajia au tafsiri ya mashine. Ina matumizi mbalimbali ya ulimwengu halisi katika nyanja kadhaa, ikiwa ni pamoja na utafiti wa matibabu, injini za utafutaji na ujasusi wa biashara.
+
+## Mada ya kikanda: Lugha za Ulaya na fasihi na hoteli za kimapenzi za Ulaya ❤️
+
+Katika sehemu hii ya mtaala, utatambulishwa kwa moja ya matumizi yanayoenea sana ya ujifunzaji wa mashine: usindikaji wa lugha asilia (NLP). Ikitokana na isimu ya kompyuta, kategoria hii ya akili bandia ni daraja kati ya binadamu na mashine kupitia mawasiliano ya sauti au maandishi.
+
+Katika masomo haya tutajifunza misingi ya NLP kwa kujenga roboti ndogo za mazungumzo ili kujifunza jinsi ujifunzaji wa mashine unavyosaidia kufanya mazungumzo haya kuwa 'ya akili' zaidi. Utasafiri kurudi nyuma kwa wakati, ukizungumza na Elizabeth Bennett na Bw. Darcy kutoka kwa riwaya ya Jane Austen, **Pride and Prejudice**, iliyochapishwa mwaka 1813. Kisha, utaongeza maarifa yako kwa kujifunza kuhusu uchambuzi wa hisia kupitia maoni ya hoteli za Ulaya.
+
+
+> Picha na Elaine Howlin kwenye Unsplash
+
+## Masomo
+
+1. [Utangulizi wa usindikaji wa lugha asilia](1-Introduction-to-NLP/README.md)
+2. [Majukumu na mbinu za kawaida za NLP](2-Tasks/README.md)
+3. [Tafsiri na uchambuzi wa hisia kwa kutumia ujifunzaji wa mashine](3-Translation-Sentiment/README.md)
+4. [Kuandaa data yako](4-Hotel-Reviews-1/README.md)
+5. [NLTK kwa Uchambuzi wa Hisia](5-Hotel-Reviews-2/README.md)
+
+## Credits
+
+Masomo haya ya usindikaji wa lugha asilia yaliandikwa kwa ☕ na [Stephen Howell](https://twitter.com/Howell_MSFT)
+
+---
+
+**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
diff --git a/translations/sw/6-NLP/data/README.md b/translations/sw/6-NLP/data/README.md
new file mode 100644
index 00000000..b101b1ff
--- /dev/null
+++ b/translations/sw/6-NLP/data/README.md
@@ -0,0 +1,15 @@
+
+Pakua data ya mapitio ya hoteli kwenye folda hii.
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati asilia 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
diff --git a/translations/sw/7-TimeSeries/1-Introduction/README.md b/translations/sw/7-TimeSeries/1-Introduction/README.md
new file mode 100644
index 00000000..2d2f12fd
--- /dev/null
+++ b/translations/sw/7-TimeSeries/1-Introduction/README.md
@@ -0,0 +1,199 @@
+
+# Utangulizi wa utabiri wa mfululizo wa muda
+
+
+
+> Sketchnote na [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Katika somo hili na linalofuata, utajifunza kidogo kuhusu utabiri wa mfululizo wa muda, sehemu ya kuvutia na yenye thamani katika ujuzi wa mwanasayansi wa ML ambayo haijulikani sana ikilinganishwa na mada nyingine. Utabiri wa mfululizo wa muda ni kama 'kioo cha uchawi': kwa kuzingatia utendaji wa zamani wa kigezo kama bei, unaweza kutabiri thamani yake ya baadaye.
+
+[](https://youtu.be/cBojo1hsHiI "Utangulizi wa utabiri wa mfululizo wa muda")
+
+> 🎥 Bofya picha hapo juu kwa video kuhusu utabiri wa mfululizo wa muda
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+Ni uwanja wa manufaa na wa kuvutia wenye thamani halisi kwa biashara, kutokana na matumizi yake ya moja kwa moja katika masuala ya bei, hesabu, na masuala ya mnyororo wa ugavi. Ingawa mbinu za kujifunza kwa kina zimeanza kutumika kupata maarifa zaidi ili kutabiri utendaji wa baadaye, utabiri wa mfululizo wa muda bado ni uwanja unaotegemea sana mbinu za kawaida za ML.
+
+> Mtaala wa mfululizo wa muda wa Penn State unaweza kupatikana [hapa](https://online.stat.psu.edu/stat510/lesson/1)
+
+## Utangulizi
+
+Fikiria unadhibiti safu ya mita za maegesho za kisasa zinazotoa data kuhusu mara ngapi zinatumiwa na kwa muda gani kwa kipindi fulani.
+
+> Je, ungeweza kutabiri, kwa kuzingatia utendaji wa zamani wa mita, thamani yake ya baadaye kulingana na sheria za usambazaji na mahitaji?
+
+Kutabiri kwa usahihi wakati wa kuchukua hatua ili kufanikisha lengo lako ni changamoto inayoweza kushughulikiwa na utabiri wa mfululizo wa muda. Ingawa haitawafurahisha watu kutozwa zaidi wakati wa nyakati za shughuli nyingi wanapotafuta nafasi ya maegesho, itakuwa njia ya uhakika ya kuzalisha mapato ya kusafisha mitaa!
+
+Hebu tuchunguze baadhi ya aina za algoriti za mfululizo wa muda na tuanze daftari la kusafisha na kuandaa data. Data utakayochambua imetolewa kutoka kwa mashindano ya utabiri ya GEFCom2014. Inajumuisha miaka 3 ya mzigo wa umeme wa kila saa na thamani za joto kati ya 2012 na 2014. Kwa kuzingatia mifumo ya kihistoria ya mzigo wa umeme na joto, unaweza kutabiri thamani za baadaye za mzigo wa umeme.
+
+Katika mfano huu, utajifunza jinsi ya kutabiri hatua moja mbele ya muda, kwa kutumia data ya mzigo wa kihistoria pekee. Kabla ya kuanza, hata hivyo, ni muhimu kuelewa kinachoendelea nyuma ya pazia.
+
+## Baadhi ya ufafanuzi
+
+Unapokutana na neno 'mfululizo wa muda' unahitaji kuelewa matumizi yake katika muktadha tofauti.
+
+🎓 **Mfululizo wa muda**
+
+Katika hisabati, "mfululizo wa muda ni mfululizo wa alama za data zilizoorodheshwa (au zilizoorodheshwa au kuchorwa) kwa mpangilio wa muda. Mara nyingi zaidi, mfululizo wa muda ni mlolongo uliochukuliwa kwa vipindi vya muda vilivyopangwa sawa." Mfano wa mfululizo wa muda ni thamani ya kufunga ya kila siku ya [Dow Jones Industrial Average](https://wikipedia.org/wiki/Time_series). Matumizi ya michoro ya mfululizo wa muda na uundaji wa takwimu mara nyingi hukutana katika usindikaji wa ishara, utabiri wa hali ya hewa, utabiri wa matetemeko ya ardhi, na nyanja nyingine ambapo matukio hutokea na alama za data zinaweza kuchorwa kwa muda.
+
+🎓 **Uchambuzi wa mfululizo wa muda**
+
+Uchambuzi wa mfululizo wa muda ni uchambuzi wa data ya mfululizo wa muda iliyotajwa hapo juu. Data ya mfululizo wa muda inaweza kuchukua aina tofauti, ikiwa ni pamoja na 'mfululizo wa muda uliokatizwa' ambao hugundua mifumo katika mabadiliko ya mfululizo wa muda kabla na baada ya tukio linalokatiza. Aina ya uchambuzi inayohitajika kwa mfululizo wa muda inategemea asili ya data. Data ya mfululizo wa muda yenyewe inaweza kuchukua fomu ya mfululizo wa namba au herufi.
+
+Uchambuzi unaofanywa hutumia mbinu mbalimbali, ikiwa ni pamoja na uwanja wa masafa na uwanja wa muda, mstari na usio mstari, na zaidi. [Jifunze zaidi](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) kuhusu njia nyingi za kuchambua aina hii ya data.
+
+🎓 **Utabiri wa mfululizo wa muda**
+
+Utabiri wa mfululizo wa muda ni matumizi ya mfano kutabiri thamani za baadaye kulingana na mifumo inayoonyeshwa na data iliyokusanywa hapo awali kama ilivyotokea zamani. Ingawa inawezekana kutumia mifano ya regression kuchunguza data ya mfululizo wa muda, na fahirisi za muda kama vigezo vya x kwenye mchoro, data kama hiyo inachambuliwa vyema kwa kutumia aina maalum za mifano.
+
+Data ya mfululizo wa muda ni orodha ya uchunguzi ulioamriwa, tofauti na data inayoweza kuchambuliwa kwa regression ya mstari. Mfano wa kawaida ni ARIMA, kifupi cha "Autoregressive Integrated Moving Average".
+
+[Mifano ya ARIMA](https://online.stat.psu.edu/stat510/lesson/1/1.1) "inaunganisha thamani ya sasa ya mfululizo na thamani za zamani na makosa ya utabiri ya zamani." Zinafaa zaidi kwa kuchambua data ya uwanja wa muda, ambapo data imepangwa kwa muda.
+
+> Kuna aina kadhaa za mifano ya ARIMA, ambayo unaweza kujifunza kuhusu [hapa](https://people.duke.edu/~rnau/411arim.htm) na ambayo utagusia katika somo linalofuata.
+
+Katika somo linalofuata, utajenga mfano wa ARIMA kwa kutumia [Mfululizo wa Muda wa Kigezo Kimoja](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm), ambao unazingatia kigezo kimoja kinachobadilisha thamani yake kwa muda. Mfano wa aina hii ya data ni [seti ya data hii](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) inayorekodi mkusanyiko wa CO2 wa kila mwezi katika Maobservatori ya Mauna Loa:
+
+| CO2 | YearMonth | Year | Month |
+| :----: | :-------: | :---: | :---: |
+| 330.62 | 1975.04 | 1975 | 1 |
+| 331.40 | 1975.13 | 1975 | 2 |
+| 331.87 | 1975.21 | 1975 | 3 |
+| 333.18 | 1975.29 | 1975 | 4 |
+| 333.92 | 1975.38 | 1975 | 5 |
+| 333.43 | 1975.46 | 1975 | 6 |
+| 331.85 | 1975.54 | 1975 | 7 |
+| 330.01 | 1975.63 | 1975 | 8 |
+| 328.51 | 1975.71 | 1975 | 9 |
+| 328.41 | 1975.79 | 1975 | 10 |
+| 329.25 | 1975.88 | 1975 | 11 |
+| 330.97 | 1975.96 | 1975 | 12 |
+
+✅ Tambua kigezo kinachobadilika kwa muda katika seti hii ya data.
+
+## Tabia za data ya mfululizo wa muda za kuzingatia
+
+Unapochunguza data ya mfululizo wa muda, unaweza kugundua kuwa ina [tabia fulani](https://online.stat.psu.edu/stat510/lesson/1/1.1) unazohitaji kuzingatia na kupunguza ili kuelewa vyema mifumo yake. Ukizingatia data ya mfululizo wa muda kama inayoweza kutoa 'ishara' unayotaka kuchambua, tabia hizi zinaweza kufikiriwa kama 'kelele'. Mara nyingi utahitaji kupunguza 'kelele' hii kwa kupunguza baadhi ya tabia hizi kwa kutumia mbinu za takwimu.
+
+Hapa kuna dhana unazopaswa kujua ili kuweza kufanya kazi na mfululizo wa muda:
+
+🎓 **Mwelekeo**
+
+Mwelekeo hufafanuliwa kama ongezeko na upungufu unaoweza kupimwa kwa muda. [Soma zaidi](https://machinelearningmastery.com/time-series-trends-in-python). Katika muktadha wa mfululizo wa muda, ni kuhusu jinsi ya kutumia na, ikiwa ni lazima, kuondoa mwelekeo kutoka kwa mfululizo wako wa muda.
+
+🎓 **[Msimu](https://machinelearningmastery.com/time-series-seasonality-with-python/)**
+
+Msimu hufafanuliwa kama mabadiliko ya mara kwa mara, kama vile msimu wa sikukuu ambao unaweza kuathiri mauzo, kwa mfano. [Angalia](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm) jinsi aina tofauti za michoro zinavyoonyesha msimu katika data.
+
+🎓 **Vipimo vya mbali**
+
+Vipimo vya mbali viko mbali sana na tofauti ya kawaida ya data.
+
+🎓 **Mzunguko wa muda mrefu**
+
+Huru na msimu, data inaweza kuonyesha mzunguko wa muda mrefu kama vile kushuka kwa uchumi kunakodumu zaidi ya mwaka mmoja.
+
+🎓 **Tofauti ya mara kwa mara**
+
+Kwa muda, data fulani huonyesha mabadiliko ya mara kwa mara, kama vile matumizi ya nishati kwa siku na usiku.
+
+🎓 **Mabadiliko ya ghafla**
+
+Data inaweza kuonyesha mabadiliko ya ghafla ambayo yanaweza kuhitaji uchambuzi zaidi. Kufungwa kwa ghafla kwa biashara kutokana na COVID, kwa mfano, kulisababisha mabadiliko katika data.
+
+✅ Hapa kuna [mchoro wa mfululizo wa muda wa mfano](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) unaoonyesha matumizi ya sarafu ya ndani ya mchezo kwa siku kwa miaka michache. Je, unaweza kutambua yoyote ya tabia zilizoorodheshwa hapo juu katika data hii?
+
+
+
+## Zoezi - kuanza na data ya matumizi ya umeme
+
+Hebu tuanze kuunda mfano wa mfululizo wa muda ili kutabiri matumizi ya umeme ya baadaye kwa kuzingatia matumizi ya zamani.
+
+> Data katika mfano huu imetolewa kutoka kwa mashindano ya utabiri ya GEFCom2014. Inajumuisha miaka 3 ya mzigo wa umeme wa kila saa na thamani za joto kati ya 2012 na 2014.
+>
+> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli na Rob J. Hyndman, "Utabiri wa nishati wa uwezekano: Mashindano ya Utabiri wa Nishati ya Kimataifa 2014 na zaidi", Jarida la Kimataifa la Utabiri, vol.32, no.3, uk. 896-913, Julai-Septemba, 2016.
+
+1. Katika folda ya `working` ya somo hili, fungua faili _notebook.ipynb_. Anza kwa kuongeza maktaba zitakazokusaidia kupakia na kuona data
+
+ ```python
+ import os
+ import matplotlib.pyplot as plt
+ from common.utils import load_data
+ %matplotlib inline
+ ```
+
+ Kumbuka, unatumia faili kutoka folda ya `common` iliyojumuishwa ambayo inaweka mazingira yako na kushughulikia upakuaji wa data.
+
+2. Kisha, chunguza data kama dataframe kwa kuita `load_data()` na `head()`:
+
+ ```python
+ data_dir = './data'
+ energy = load_data(data_dir)[['load']]
+ energy.head()
+ ```
+
+ Unaweza kuona kuwa kuna safu mbili zinazowakilisha tarehe na mzigo:
+
+ | | load |
+ | :-----------------: | :----: |
+ | 2012-01-01 00:00:00 | 2698.0 |
+ | 2012-01-01 01:00:00 | 2558.0 |
+ | 2012-01-01 02:00:00 | 2444.0 |
+ | 2012-01-01 03:00:00 | 2402.0 |
+ | 2012-01-01 04:00:00 | 2403.0 |
+
+3. Sasa, chora data kwa kuita `plot()`:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+4. Sasa, chora wiki ya kwanza ya Julai 2014, kwa kuipatia kama ingizo kwa `energy` katika muundo wa `[kutoka tarehe]: [hadi tarehe]`:
+
+ ```python
+ energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Mchoro mzuri! Angalia michoro hii na uone kama unaweza kubaini yoyote ya tabia zilizoorodheshwa hapo juu. Tunaweza kusema nini kwa kuona data?
+
+Katika somo linalofuata, utaunda mfano wa ARIMA ili kuunda baadhi ya utabiri.
+
+---
+
+## 🚀Changamoto
+
+Tengeneza orodha ya sekta zote na maeneo ya uchunguzi unayoweza kufikiria ambayo yangefaidika na utabiri wa mfululizo wa muda. Je, unaweza kufikiria matumizi ya mbinu hizi katika sanaa? Katika Uchumi? Ikolojia? Uuzaji? Sekta? Fedha? Wapi kwingine?
+
+## [Maswali ya baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Ingawa hatutazungumzia hapa, mitandao ya neva wakati mwingine hutumika kuboresha mbinu za kawaida za utabiri wa mfululizo wa muda. Soma zaidi kuhusu hayo [katika makala hii](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412)
+
+## Kazi
+
+[Chora mfululizo wa muda zaidi](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
diff --git a/translations/sw/7-TimeSeries/1-Introduction/assignment.md b/translations/sw/7-TimeSeries/1-Introduction/assignment.md
new file mode 100644
index 00000000..6f3cbf5f
--- /dev/null
+++ b/translations/sw/7-TimeSeries/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Onyesha Mfululizo wa Wakati Zaidi
+
+## Maelekezo
+
+Umeanza kujifunza kuhusu Utabiri wa Mfululizo wa Wakati kwa kuangalia aina ya data inayohitaji uundaji huu maalum. Umeonyesha data fulani kuhusu nishati. Sasa, tafuta data nyingine ambayo ingeweza kufaidika na Utabiri wa Mfululizo wa Wakati. Tafuta mifano mitatu (jaribu [Kaggle](https://kaggle.com) na [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)) na unda daftari la kazi ili kuonyesha data hiyo. Eleza sifa zozote maalum walizonazo (msimu, mabadiliko ya ghafla, au mwenendo mwingine) katika daftari la kazi.
+
+## Rubric
+
+| Vigezo | Bora | Inayotosheleza | Inayohitaji Kuboresha |
+| -------- | ------------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------- |
+| | Seti tatu za data zimeonyeshwa na kuelezewa katika daftari la kazi | Seti mbili za data zimeonyeshwa na kuelezewa katika daftari la kazi | Seti chache za data zimeonyeshwa au kuelezewa katika daftari la kazi au data iliyotolewa haitoshi |
+
+---
+
+**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
diff --git a/translations/sw/7-TimeSeries/1-Introduction/solution/Julia/README.md b/translations/sw/7-TimeSeries/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..5305fe81
--- /dev/null
+++ b/translations/sw/7-TimeSeries/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/7-TimeSeries/1-Introduction/solution/R/README.md b/translations/sw/7-TimeSeries/1-Introduction/solution/R/README.md
new file mode 100644
index 00000000..df4cbeea
--- /dev/null
+++ b/translations/sw/7-TimeSeries/1-Introduction/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/7-TimeSeries/2-ARIMA/README.md b/translations/sw/7-TimeSeries/2-ARIMA/README.md
new file mode 100644
index 00000000..19ece4ba
--- /dev/null
+++ b/translations/sw/7-TimeSeries/2-ARIMA/README.md
@@ -0,0 +1,408 @@
+
+# Utabiri wa mfululizo wa muda kwa kutumia ARIMA
+
+Katika somo lililopita, ulijifunza kidogo kuhusu utabiri wa mfululizo wa muda na ukapakia seti ya data inayoonyesha mabadiliko ya mzigo wa umeme kwa kipindi fulani cha muda.
+
+[](https://youtu.be/IUSk-YDau10 "Utangulizi wa ARIMA")
+
+> 🎥 Bofya picha hapo juu kwa video: Utangulizi mfupi wa mifano ya ARIMA. Mfano umefanywa kwa R, lakini dhana ni za ulimwengu wote.
+
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Utangulizi
+
+Katika somo hili, utagundua njia maalum ya kujenga mifano kwa kutumia [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average). Mifano ya ARIMA inafaa hasa kwa data inayoonyesha [kutokuwa na stationarity](https://wikipedia.org/wiki/Stationary_process).
+
+## Dhana za jumla
+
+Ili uweze kufanya kazi na ARIMA, kuna dhana kadhaa unazohitaji kujua:
+
+- 🎓 **Stationarity**. Katika muktadha wa takwimu, stationarity inahusu data ambayo usambazaji wake hauwezi kubadilika inapohamishwa kwa muda. Data isiyo na stationarity, basi, inaonyesha mabadiliko kutokana na mwenendo ambayo lazima ibadilishwe ili kuchambuliwa. Msimu, kwa mfano, unaweza kuleta mabadiliko katika data na inaweza kuondolewa kwa mchakato wa 'seasonal-differencing'.
+
+- 🎓 **[Differencing](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**. Differencing ya data, tena kutoka muktadha wa takwimu, inahusu mchakato wa kubadilisha data isiyo na stationarity ili kuifanya iwe stationary kwa kuondoa mwenendo wake usio wa mara kwa mara. "Differencing huondoa mabadiliko katika kiwango cha mfululizo wa muda, kuondoa mwenendo na msimu na hivyo kuimarisha wastani wa mfululizo wa muda." [Karatasi ya Shixiong et al](https://arxiv.org/abs/1904.07632)
+
+## ARIMA katika muktadha wa mfululizo wa muda
+
+Hebu tuchambue sehemu za ARIMA ili kuelewa vyema jinsi inavyotusaidia kuunda mifano ya mfululizo wa muda na kutusaidia kufanya utabiri dhidi yake.
+
+- **AR - kwa AutoRegressive**. Mifano ya autoregressive, kama jina linavyopendekeza, huangalia 'nyuma' kwa muda ili kuchambua thamani za awali katika data yako na kufanya dhana kuhusu thamani hizo. Thamani hizi za awali zinaitwa 'lags'. Mfano ungekuwa data inayoonyesha mauzo ya kila mwezi ya penseli. Jumla ya mauzo ya kila mwezi ingechukuliwa kama 'kigezo kinachobadilika' katika seti ya data. Mfano huu unajengwa kama "kigezo kinachobadilika cha maslahi kinatabiriwa kwa thamani zake za awali zilizocheleweshwa (yaani, za awali)." [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)
+
+- **I - kwa Integrated**. Tofauti na mifano inayofanana ya 'ARMA', 'I' katika ARIMA inahusu kipengele chake cha *[integrated](https://wikipedia.org/wiki/Order_of_integration)*. Data inakuwa 'integrated' wakati hatua za differencing zinatumika ili kuondoa kutokuwa na stationarity.
+
+- **MA - kwa Moving Average**. Kipengele cha [moving-average](https://wikipedia.org/wiki/Moving-average_model) cha mfano huu kinahusu kigezo cha matokeo ambacho kinaamuliwa kwa kuzingatia thamani za sasa na za awali za lags.
+
+Kwa ufupi: ARIMA hutumika kuunda mfano unaofaa zaidi kwa aina maalum ya data ya mfululizo wa muda.
+
+## Zoezi - unda mfano wa ARIMA
+
+Fungua folda [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) katika somo hili na pata faili [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb).
+
+1. Endesha notebook ili kupakia maktaba ya Python `statsmodels`; utahitaji hii kwa mifano ya ARIMA.
+
+1. Pakia maktaba muhimu.
+
+1. Sasa, pakia maktaba zaidi zinazofaa kwa kuchora data:
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from pandas.plotting import autocorrelation_plot
+ from statsmodels.tsa.statespace.sarimax import SARIMAX
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ from IPython.display import Image
+
+ %matplotlib inline
+ pd.options.display.float_format = '{:,.2f}'.format
+ np.set_printoptions(precision=2)
+ warnings.filterwarnings("ignore") # specify to ignore warning messages
+ ```
+
+1. Pakia data kutoka faili `/data/energy.csv` kwenye dataframe ya Pandas na uitazame:
+
+ ```python
+ energy = load_data('./data')[['load']]
+ energy.head(10)
+ ```
+
+1. Chora data yote ya nishati inayopatikana kutoka Januari 2012 hadi Desemba 2014. Hakutakuwa na mshangao kwani tuliona data hii katika somo lililopita:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ Sasa, hebu tujenge mfano!
+
+### Unda seti za mafunzo na majaribio
+
+Sasa data yako imepakiwa, unaweza kuigawanya katika seti za mafunzo na majaribio. Utaufundisha mfano wako kwenye seti ya mafunzo. Kama kawaida, baada ya mfano kumaliza mafunzo, utatathmini usahihi wake kwa kutumia seti ya majaribio. Unahitaji kuhakikisha kuwa seti ya majaribio inashughulikia kipindi cha baadaye kutoka seti ya mafunzo ili kuhakikisha kuwa mfano haupati taarifa kutoka vipindi vya baadaye.
+
+1. Toa kipindi cha miezi miwili kutoka Septemba 1 hadi Oktoba 31, 2014 kwa seti ya mafunzo. Seti ya majaribio itajumuisha kipindi cha miezi miwili kutoka Novemba 1 hadi Desemba 31, 2014:
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+ Kwa kuwa data hii inaonyesha matumizi ya nishati ya kila siku, kuna muundo wa msimu wenye nguvu, lakini matumizi yanafanana zaidi na matumizi ya siku za hivi karibuni.
+
+1. Onyesha tofauti:
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Kwa hivyo, kutumia dirisha ndogo ya muda kwa mafunzo ya data inapaswa kutosha.
+
+ > Kumbuka: Kwa kuwa kazi tunayotumia kufaa mfano wa ARIMA hutumia uthibitishaji wa ndani ya sampuli wakati wa kufaa, tutapuuza data ya uthibitishaji.
+
+### Andaa data kwa mafunzo
+
+Sasa, unahitaji kuandaa data kwa mafunzo kwa kufanya uchujaji na upimaji wa data yako. Chuja seti yako ya data ili kujumuisha tu vipindi vya muda na safu ulizohitaji, na upimaji ili kuhakikisha data inaonyeshwa katika kipimo cha 0,1.
+
+1. Chuja seti ya data ya awali ili kujumuisha tu vipindi vya muda vilivyotajwa kwa kila seti na kujumuisha tu safu inayohitajika 'load' pamoja na tarehe:
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ Unaweza kuona umbo la data:
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+1. Pima data ili iwe katika kipimo cha (0, 1).
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ train.head(10)
+ ```
+
+1. Onyesha data ya awali dhidi ya data iliyopimwa:
+
+ ```python
+ energy[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']].rename(columns={'load':'original load'}).plot.hist(bins=100, fontsize=12)
+ train.rename(columns={'load':'scaled load'}).plot.hist(bins=100, fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ > Data ya awali
+
+ 
+
+ > Data iliyopimwa
+
+1. Sasa kwa kuwa umepima data iliyopimwa, unaweza kupima data ya majaribio:
+
+ ```python
+ test['load'] = scaler.transform(test)
+ test.head()
+ ```
+
+### Tekeleza ARIMA
+
+Ni wakati wa kutekeleza ARIMA! Sasa utatumia maktaba ya `statsmodels` ambayo uliweka awali.
+
+Sasa unahitaji kufuata hatua kadhaa:
+
+ 1. Fafanua mfano kwa kupiga `SARIMAX()` na kupitisha vigezo vya mfano: vigezo vya p, d, na q, na vigezo vya P, D, na Q.
+ 2. Andaa mfano kwa data ya mafunzo kwa kupiga kazi ya fit().
+ 3. Fanya utabiri kwa kupiga kazi ya `forecast()` na kutaja idadi ya hatua (horizon) za kutabiri.
+
+> 🎓 Vigezo hivi vyote ni vya nini? Katika mfano wa ARIMA kuna vigezo 3 vinavyotumika kusaidia kuunda vipengele vikuu vya mfululizo wa muda: msimu, mwenendo, na kelele. Vigezo hivi ni:
+
+`p`: kigezo kinachohusiana na kipengele cha autoregressive cha mfano, ambacho kinajumuisha thamani za *zamani*.
+`d`: kigezo kinachohusiana na kipengele cha integrated cha mfano, ambacho kinaathiri kiwango cha *differencing* (🎓 kumbuka differencing 👆?) kinachotumika kwa mfululizo wa muda.
+`q`: kigezo kinachohusiana na kipengele cha moving-average cha mfano.
+
+> Kumbuka: Ikiwa data yako ina kipengele cha msimu - ambacho data hii inacho - , tunatumia mfano wa ARIMA wa msimu (SARIMA). Katika hali hiyo unahitaji kutumia seti nyingine ya vigezo: `P`, `D`, na `Q` vinavyoelezea uhusiano sawa na `p`, `d`, na `q`, lakini vinahusiana na vipengele vya msimu vya mfano.
+
+1. Anza kwa kuweka thamani yako ya horizon unayopendelea. Hebu jaribu masaa 3:
+
+ ```python
+ # Specify the number of steps to forecast ahead
+ HORIZON = 3
+ print('Forecasting horizon:', HORIZON, 'hours')
+ ```
+
+ Kuchagua thamani bora kwa vigezo vya mfano wa ARIMA inaweza kuwa changamoto kwani ni ya kibinafsi na inachukua muda. Unaweza kuzingatia kutumia kazi ya `auto_arima()` kutoka maktaba ya [`pyramid`](https://alkaline-ml.com/pmdarima/0.9.0/modules/generated/pyramid.arima.auto_arima.html),
+
+1. Kwa sasa jaribu chaguo za mwongozo ili kupata mfano mzuri.
+
+ ```python
+ order = (4, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ model = SARIMAX(endog=train, order=order, seasonal_order=seasonal_order)
+ results = model.fit()
+
+ print(results.summary())
+ ```
+
+ Jedwali la matokeo linachapishwa.
+
+Umeunda mfano wako wa kwanza! Sasa tunahitaji kupata njia ya kuutathmini.
+
+### Tathmini mfano wako
+
+Ili kutathmini mfano wako, unaweza kufanya uthibitishaji unaoitwa `walk forward`. Kwa vitendo, mifano ya mfululizo wa muda hufundishwa upya kila wakati data mpya inapatikana. Hii inaruhusu mfano kufanya utabiri bora zaidi kwa kila hatua ya muda.
+
+Kuanzia mwanzo wa mfululizo wa muda kwa kutumia mbinu hii, fundisha mfano kwenye seti ya mafunzo. Kisha fanya utabiri kwa hatua inayofuata ya muda. Utabiri unatathminiwa dhidi ya thamani inayojulikana. Seti ya mafunzo kisha inapanuliwa kujumuisha thamani inayojulikana na mchakato unarudiwa.
+
+> Kumbuka: Unapaswa kuweka dirisha la seti ya mafunzo likiwa thabiti kwa mafunzo yenye ufanisi zaidi ili kila wakati unapoongeza uchunguzi mpya kwenye seti ya mafunzo, unatoa uchunguzi kutoka mwanzo wa seti.
+
+Mchakato huu hutoa makadirio thabiti zaidi ya jinsi mfano utakavyofanya kazi kwa vitendo. Hata hivyo, inakuja na gharama ya hesabu ya kuunda mifano mingi. Hii inakubalika ikiwa data ni ndogo au ikiwa mfano ni rahisi, lakini inaweza kuwa tatizo kwa kiwango kikubwa.
+
+Uthibitishaji wa walk-forward ni kiwango cha dhahabu cha tathmini ya mifano ya mfululizo wa muda na kinapendekezwa kwa miradi yako mwenyewe.
+
+1. Kwanza, unda data ya majaribio kwa kila hatua ya HORIZON.
+
+ ```python
+ test_shifted = test.copy()
+
+ for t in range(1, HORIZON+1):
+ test_shifted['load+'+str(t)] = test_shifted['load'].shift(-t, freq='H')
+
+ test_shifted = test_shifted.dropna(how='any')
+ test_shifted.head(5)
+ ```
+
+ | | | load | load+1 | load+2 |
+ | ---------- | -------- | ---- | ------ | ------ |
+ | 2014-12-30 | 00:00:00 | 0.33 | 0.29 | 0.27 |
+ | 2014-12-30 | 01:00:00 | 0.29 | 0.27 | 0.27 |
+ | 2014-12-30 | 02:00:00 | 0.27 | 0.27 | 0.30 |
+ | 2014-12-30 | 03:00:00 | 0.27 | 0.30 | 0.41 |
+ | 2014-12-30 | 04:00:00 | 0.30 | 0.41 | 0.57 |
+
+ Data inahamishwa kwa usawa kulingana na hatua yake ya horizon.
+
+1. Fanya utabiri kwenye data yako ya majaribio kwa kutumia mbinu hii ya dirisha linalosonga katika mzunguko wa ukubwa wa urefu wa data ya majaribio:
+
+ ```python
+ %%time
+ training_window = 720 # dedicate 30 days (720 hours) for training
+
+ train_ts = train['load']
+ test_ts = test_shifted
+
+ history = [x for x in train_ts]
+ history = history[(-training_window):]
+
+ predictions = list()
+
+ order = (2, 1, 0)
+ seasonal_order = (1, 1, 0, 24)
+
+ for t in range(test_ts.shape[0]):
+ model = SARIMAX(endog=history, order=order, seasonal_order=seasonal_order)
+ model_fit = model.fit()
+ yhat = model_fit.forecast(steps = HORIZON)
+ predictions.append(yhat)
+ obs = list(test_ts.iloc[t])
+ # move the training window
+ history.append(obs[0])
+ history.pop(0)
+ print(test_ts.index[t])
+ print(t+1, ': predicted =', yhat, 'expected =', obs)
+ ```
+
+ Unaweza kuona mafunzo yakifanyika:
+
+ ```output
+ 2014-12-30 00:00:00
+ 1 : predicted = [0.32 0.29 0.28] expected = [0.32945389435989236, 0.2900626678603402, 0.2739480752014323]
+
+ 2014-12-30 01:00:00
+ 2 : predicted = [0.3 0.29 0.3 ] expected = [0.2900626678603402, 0.2739480752014323, 0.26812891674127126]
+
+ 2014-12-30 02:00:00
+ 3 : predicted = [0.27 0.28 0.32] expected = [0.2739480752014323, 0.26812891674127126, 0.3025962399283795]
+ ```
+
+1. Linganisha utabiri na mzigo halisi:
+
+ ```python
+ eval_df = pd.DataFrame(predictions, columns=['t+'+str(t) for t in range(1, HORIZON+1)])
+ eval_df['timestamp'] = test.index[0:len(test.index)-HORIZON+1]
+ eval_df = pd.melt(eval_df, id_vars='timestamp', value_name='prediction', var_name='h')
+ eval_df['actual'] = np.array(np.transpose(test_ts)).ravel()
+ eval_df[['prediction', 'actual']] = scaler.inverse_transform(eval_df[['prediction', 'actual']])
+ eval_df.head()
+ ```
+
+ Matokeo
+ | | | timestamp | h | prediction | actual |
+ | --- | ---------- | --------- | --- | ---------- | -------- |
+ | 0 | 2014-12-30 | 00:00:00 | t+1 | 3,008.74 | 3,023.00 |
+ | 1 | 2014-12-30 | 01:00:00 | t+1 | 2,955.53 | 2,935.00 |
+ | 2 | 2014-12-30 | 02:00:00 | t+1 | 2,900.17 | 2,899.00 |
+ | 3 | 2014-12-30 | 03:00:00 | t+1 | 2,917.69 | 2,886.00 |
+ | 4 | 2014-12-30 | 04:00:00 | t+1 | 2,946.99 | 2,963.00 |
+
+ Angalia utabiri wa data ya kila saa, ukilinganisha na mzigo halisi. Je, ni sahihi kiasi gani?
+
+### Angalia usahihi wa mfano
+
+Angalia usahihi wa mfano wako kwa kujaribu kosa la asilimia ya wastani (MAPE) kwa utabiri wote.
+> **🧮 Onyesha hesabu**
+>
+> 
+>
+> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) hutumika kuonyesha usahihi wa utabiri kama uwiano unaofafanuliwa na fomula iliyo juu. Tofauti kati ya halisi
+na iliyotabiriwa
+inagawanywa na halisi.
+"Thamani ya absolute katika hesabu hii hujumlishwa kwa kila nukta iliyotabiriwa kwa wakati na kugawanywa na idadi ya nukta zilizolingana n." [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
+1. Eleza hesabu katika msimbo:
+
+ ```python
+ if(HORIZON > 1):
+ eval_df['APE'] = (eval_df['prediction'] - eval_df['actual']).abs() / eval_df['actual']
+ print(eval_df.groupby('h')['APE'].mean())
+ ```
+
+1. Hesabu MAPE ya hatua moja:
+
+ ```python
+ print('One step forecast MAPE: ', (mape(eval_df[eval_df['h'] == 't+1']['prediction'], eval_df[eval_df['h'] == 't+1']['actual']))*100, '%')
+ ```
+
+ MAPE ya utabiri wa hatua moja: 0.5570581332313952 %
+
+1. Chapisha MAPE ya utabiri wa hatua nyingi:
+
+ ```python
+ print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%')
+ ```
+
+ ```output
+ Multi-step forecast MAPE: 1.1460048657704118 %
+ ```
+
+ Nambari ndogo nzuri ni bora: fikiria kwamba utabiri wenye MAPE ya 10 unakosea kwa 10%.
+
+1. Lakini kama kawaida, ni rahisi kuona kipimo cha usahihi wa aina hii kwa njia ya kuona, kwa hivyo hebu tuweke grafu:
+
+ ```python
+ if(HORIZON == 1):
+ ## Plotting single step forecast
+ eval_df.plot(x='timestamp', y=['actual', 'prediction'], style=['r', 'b'], figsize=(15, 8))
+
+ else:
+ ## Plotting multi step forecast
+ plot_df = eval_df[(eval_df.h=='t+1')][['timestamp', 'actual']]
+ for t in range(1, HORIZON+1):
+ plot_df['t+'+str(t)] = eval_df[(eval_df.h=='t+'+str(t))]['prediction'].values
+
+ fig = plt.figure(figsize=(15, 8))
+ ax = plt.plot(plot_df['timestamp'], plot_df['actual'], color='red', linewidth=4.0)
+ ax = fig.add_subplot(111)
+ for t in range(1, HORIZON+1):
+ x = plot_df['timestamp'][(t-1):]
+ y = plot_df['t+'+str(t)][0:len(x)]
+ ax.plot(x, y, color='blue', linewidth=4*math.pow(.9,t), alpha=math.pow(0.8,t))
+
+ ax.legend(loc='best')
+
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+🏆 Grafu nzuri sana, ikionyesha mfano wenye usahihi mzuri. Hongera!
+
+---
+
+## 🚀Changamoto
+
+Chunguza njia za kupima usahihi wa Mfano wa Mfululizo wa Muda. Tumegusia MAPE katika somo hili, lakini kuna njia nyingine unazoweza kutumia? Fanya utafiti na uzitambue. Hati ya msaada inaweza kupatikana [hapa](https://otexts.com/fpp2/accuracy.html)
+
+## [Jaribio baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio & Kujifunza Binafsi
+
+Somo hili linagusia tu misingi ya Utabiri wa Mfululizo wa Muda kwa kutumia ARIMA. Chukua muda wa kuimarisha maarifa yako kwa kuchunguza [hifadhi hii](https://microsoft.github.io/forecasting/) na aina zake mbalimbali za mifano ili kujifunza njia nyingine za kujenga mifano ya Mfululizo wa Muda.
+
+## Kazi
+
+[Mfano mpya wa ARIMA](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
diff --git a/translations/sw/7-TimeSeries/2-ARIMA/assignment.md b/translations/sw/7-TimeSeries/2-ARIMA/assignment.md
new file mode 100644
index 00000000..52997857
--- /dev/null
+++ b/translations/sw/7-TimeSeries/2-ARIMA/assignment.md
@@ -0,0 +1,25 @@
+
+# Modeli mpya ya ARIMA
+
+## Maelekezo
+
+Sasa kwa kuwa umeunda modeli ya ARIMA, unda nyingine mpya kwa kutumia data mpya (jaribu mojawapo ya [seti za data kutoka Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Eleza kazi yako katika daftari, onyesha data na modeli yako, na pima usahihi wake kwa kutumia MAPE.
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inayohitaji Kuboresha |
+| -------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------- | ---------------------------------- |
+| | Daftari linaonyeshwa likiwa na modeli mpya ya ARIMA iliyojengwa, kupimwa na kuelekezwa kwa vielelezo na usahihi uliotajwa. | Daftari lililoonyeshwa halina maelezo au lina makosa | Daftari lisilokamilika linaonyeshwa |
+
+---
+
+**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
diff --git a/translations/sw/7-TimeSeries/2-ARIMA/solution/Julia/README.md b/translations/sw/7-TimeSeries/2-ARIMA/solution/Julia/README.md
new file mode 100644
index 00000000..3d88d948
--- /dev/null
+++ b/translations/sw/7-TimeSeries/2-ARIMA/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au 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
diff --git a/translations/sw/7-TimeSeries/2-ARIMA/solution/R/README.md b/translations/sw/7-TimeSeries/2-ARIMA/solution/R/README.md
new file mode 100644
index 00000000..5e1c47ac
--- /dev/null
+++ b/translations/sw/7-TimeSeries/2-ARIMA/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/7-TimeSeries/3-SVR/README.md b/translations/sw/7-TimeSeries/3-SVR/README.md
new file mode 100644
index 00000000..e63b5b11
--- /dev/null
+++ b/translations/sw/7-TimeSeries/3-SVR/README.md
@@ -0,0 +1,393 @@
+
+# Utabiri wa Mfululizo wa Wakati kwa Kutumia Support Vector Regressor
+
+Katika somo lililopita, ulijifunza jinsi ya kutumia modeli ya ARIMA kufanya utabiri wa mfululizo wa wakati. Sasa utaangalia modeli ya Support Vector Regressor, ambayo ni modeli ya regression inayotumika kutabiri data endelevu.
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Utangulizi
+
+Katika somo hili, utagundua njia maalum ya kujenga modeli kwa [**SVM**: **S**upport **V**ector **M**achine](https://en.wikipedia.org/wiki/Support-vector_machine) kwa regression, au **SVR: Support Vector Regressor**.
+
+### SVR katika muktadha wa mfululizo wa wakati [^1]
+
+Kabla ya kuelewa umuhimu wa SVR katika utabiri wa mfululizo wa wakati, hapa kuna baadhi ya dhana muhimu unazohitaji kujua:
+
+- **Regression:** Mbinu ya kujifunza kwa usimamizi inayotabiri thamani endelevu kutoka kwa seti fulani ya pembejeo. Wazo ni kufaa mstari au curve katika nafasi ya vipengele ambayo ina idadi kubwa ya pointi za data. [Bonyeza hapa](https://en.wikipedia.org/wiki/Regression_analysis) kwa maelezo zaidi.
+- **Support Vector Machine (SVM):** Aina ya modeli ya kujifunza kwa usimamizi inayotumika kwa uainishaji, regression, na kugundua data isiyo ya kawaida. Modeli ni hyperplane katika nafasi ya vipengele, ambayo katika hali ya uainishaji hufanya kama mpaka, na katika hali ya regression hufanya kama mstari bora wa kufaa. Katika SVM, kazi ya Kernel hutumika kwa kawaida kubadilisha seti ya data kuwa nafasi ya vipimo vingi zaidi, ili iweze kutenganishwa kwa urahisi. [Bonyeza hapa](https://en.wikipedia.org/wiki/Support-vector_machine) kwa maelezo zaidi kuhusu SVM.
+- **Support Vector Regressor (SVR):** Aina ya SVM, inayotafuta mstari bora wa kufaa (ambayo katika hali ya SVM ni hyperplane) yenye idadi kubwa ya pointi za data.
+
+### Kwa nini SVR? [^1]
+
+Katika somo la mwisho ulijifunza kuhusu ARIMA, ambayo ni mbinu ya takwimu ya mstari inayofanikiwa sana kutabiri data ya mfululizo wa wakati. Hata hivyo, katika hali nyingi, data ya mfululizo wa wakati ina *kutokuwa na mstari*, ambayo haiwezi kuonyeshwa na modeli za mstari. Katika hali kama hizi, uwezo wa SVM kuzingatia kutokuwa na mstari katika data kwa kazi za regression hufanya SVR kufanikiwa katika utabiri wa mfululizo wa wakati.
+
+## Zoezi - jenga modeli ya SVR
+
+Hatua za awali za maandalizi ya data ni sawa na zile za somo lililopita kuhusu [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA).
+
+Fungua folda [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/3-SVR/working) katika somo hili na pata faili [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/3-SVR/working/notebook.ipynb). [^2]
+
+1. Endesha notebook na uagize maktaba muhimu: [^2]
+
+ ```python
+ import sys
+ sys.path.append('../../')
+ ```
+
+ ```python
+ import os
+ import warnings
+ import matplotlib.pyplot as plt
+ import numpy as np
+ import pandas as pd
+ import datetime as dt
+ import math
+
+ from sklearn.svm import SVR
+ from sklearn.preprocessing import MinMaxScaler
+ from common.utils import load_data, mape
+ ```
+
+2. Pakia data kutoka faili `/data/energy.csv` kwenye dataframe ya Pandas na uitazame: [^2]
+
+ ```python
+ energy = load_data('../../data')[['load']]
+ ```
+
+3. Chora data yote ya nishati inayopatikana kutoka Januari 2012 hadi Desemba 2014: [^2]
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+ Sasa, hebu tujenge modeli yetu ya SVR.
+
+### Unda seti za mafunzo na majaribio
+
+Sasa data yako imepakizwa, unaweza kuigawanya katika seti za mafunzo na majaribio. Kisha utabadilisha data ili kuunda seti ya data inayotegemea hatua za wakati ambayo itahitajika kwa SVR. Utazoeza modeli yako kwenye seti ya mafunzo. Baada ya modeli kumaliza mafunzo, utatathmini usahihi wake kwenye seti ya mafunzo, seti ya majaribio, na kisha seti kamili ya data ili kuona utendaji wa jumla. Unahitaji kuhakikisha kuwa seti ya majaribio inashughulikia kipindi cha baadaye kutoka seti ya mafunzo ili kuhakikisha kuwa modeli haipati taarifa kutoka vipindi vya baadaye [^2] (hali inayojulikana kama *Overfitting*).
+
+1. Toa kipindi cha miezi miwili kutoka Septemba 1 hadi Oktoba 31, 2014 kwa seti ya mafunzo. Seti ya majaribio itajumuisha kipindi cha miezi miwili kutoka Novemba 1 hadi Desemba 31, 2014: [^2]
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+2. Onyesha tofauti: [^2]
+
+ ```python
+ energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \
+ .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \
+ .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ 
+
+### Andaa data kwa mafunzo
+
+Sasa, unahitaji kuandaa data kwa mafunzo kwa kufanya uchujaji na upimaji wa data yako. Chuja seti yako ya data ili kujumuisha tu vipindi vya wakati na safu unazohitaji, na upimaji ili kuhakikisha data inaonyeshwa katika interval 0,1.
+
+1. Chuja seti ya data ya awali ili kujumuisha tu vipindi vya wakati vilivyotajwa kwa kila seti na kujumuisha tu safu inayohitajika 'load' pamoja na tarehe: [^2]
+
+ ```python
+ train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
+ test = energy.copy()[energy.index >= test_start_dt][['load']]
+
+ print('Training data shape: ', train.shape)
+ print('Test data shape: ', test.shape)
+ ```
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+2. Pima data ya mafunzo kuwa katika kiwango cha (0, 1): [^2]
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ ```
+
+4. Sasa, pima data ya majaribio: [^2]
+
+ ```python
+ test['load'] = scaler.transform(test)
+ ```
+
+### Unda data yenye hatua za wakati [^1]
+
+Kwa SVR, unabadilisha data ya pembejeo kuwa ya fomu `[batch, timesteps]`. Kwa hivyo, unabadilisha `train_data` na `test_data` iliyopo ili kuwe na kipimo kipya kinachorejelea hatua za wakati.
+
+```python
+# Converting to numpy arrays
+train_data = train.values
+test_data = test.values
+```
+
+Kwa mfano huu, tunachukua `timesteps = 5`. Kwa hivyo, pembejeo kwa modeli ni data ya hatua za kwanza 4, na matokeo yatakuwa data ya hatua ya 5.
+
+```python
+timesteps=5
+```
+
+Kubadilisha data ya mafunzo kuwa tensor ya 2D kwa kutumia nested list comprehension:
+
+```python
+train_data_timesteps=np.array([[j for j in train_data[i:i+timesteps]] for i in range(0,len(train_data)-timesteps+1)])[:,:,0]
+train_data_timesteps.shape
+```
+
+```output
+(1412, 5)
+```
+
+Kubadilisha data ya majaribio kuwa tensor ya 2D:
+
+```python
+test_data_timesteps=np.array([[j for j in test_data[i:i+timesteps]] for i in range(0,len(test_data)-timesteps+1)])[:,:,0]
+test_data_timesteps.shape
+```
+
+```output
+(44, 5)
+```
+
+Kuchagua pembejeo na matokeo kutoka data ya mafunzo na majaribio:
+
+```python
+x_train, y_train = train_data_timesteps[:,:timesteps-1],train_data_timesteps[:,[timesteps-1]]
+x_test, y_test = test_data_timesteps[:,:timesteps-1],test_data_timesteps[:,[timesteps-1]]
+
+print(x_train.shape, y_train.shape)
+print(x_test.shape, y_test.shape)
+```
+
+```output
+(1412, 4) (1412, 1)
+(44, 4) (44, 1)
+```
+
+### Tekeleza SVR [^1]
+
+Sasa, ni wakati wa kutekeleza SVR. Ili kusoma zaidi kuhusu utekelezaji huu, unaweza kurejelea [hati hii](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html). Kwa utekelezaji wetu, tunafuata hatua hizi:
+
+ 1. Fafanua modeli kwa kuita `SVR()` na kupitisha hyperparameters za modeli: kernel, gamma, c na epsilon
+ 2. Andaa modeli kwa data ya mafunzo kwa kuita kazi ya `fit()`
+ 3. Fanya utabiri kwa kuita kazi ya `predict()`
+
+Sasa tunaunda modeli ya SVR. Hapa tunatumia [RBF kernel](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel), na kuweka hyperparameters gamma, C na epsilon kama 0.5, 10 na 0.05 mtawalia.
+
+```python
+model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05)
+```
+
+#### Fanya modeli ifanye mafunzo kwenye data ya mafunzo [^1]
+
+```python
+model.fit(x_train, y_train[:,0])
+```
+
+```output
+SVR(C=10, cache_size=200, coef0=0.0, degree=3, epsilon=0.05, gamma=0.5,
+ kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)
+```
+
+#### Fanya utabiri wa modeli [^1]
+
+```python
+y_train_pred = model.predict(x_train).reshape(-1,1)
+y_test_pred = model.predict(x_test).reshape(-1,1)
+
+print(y_train_pred.shape, y_test_pred.shape)
+```
+
+```output
+(1412, 1) (44, 1)
+```
+
+Umejenga SVR yako! Sasa tunahitaji kuitathmini.
+
+### Tathmini modeli yako [^1]
+
+Kwa tathmini, kwanza tutapima tena data kwa kiwango chetu cha awali. Kisha, ili kuangalia utendaji, tutachora grafu ya mfululizo wa wakati wa asili na uliotabiriwa, na pia kuchapisha matokeo ya MAPE.
+
+Pima tena matokeo yaliyotabiriwa na ya asili:
+
+```python
+# Scaling the predictions
+y_train_pred = scaler.inverse_transform(y_train_pred)
+y_test_pred = scaler.inverse_transform(y_test_pred)
+
+print(len(y_train_pred), len(y_test_pred))
+```
+
+```python
+# Scaling the original values
+y_train = scaler.inverse_transform(y_train)
+y_test = scaler.inverse_transform(y_test)
+
+print(len(y_train), len(y_test))
+```
+
+#### Angalia utendaji wa modeli kwenye data ya mafunzo na majaribio [^1]
+
+Tunatoa timestamps kutoka seti ya data ili kuonyesha kwenye mhimili wa x wa grafu yetu. Kumbuka kuwa tunatumia ```timesteps-1``` za kwanza kama pembejeo kwa matokeo ya kwanza, kwa hivyo timestamps za matokeo zitaanza baada ya hapo.
+
+```python
+train_timestamps = energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)].index[timesteps-1:]
+test_timestamps = energy[test_start_dt:].index[timesteps-1:]
+
+print(len(train_timestamps), len(test_timestamps))
+```
+
+```output
+1412 44
+```
+
+Chora utabiri wa data ya mafunzo:
+
+```python
+plt.figure(figsize=(25,6))
+plt.plot(train_timestamps, y_train, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(train_timestamps, y_train_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.title("Training data prediction")
+plt.show()
+```
+
+
+
+Chapisha MAPE kwa data ya mafunzo
+
+```python
+print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')
+```
+
+```output
+MAPE for training data: 1.7195710200875551 %
+```
+
+Chora utabiri wa data ya majaribio
+
+```python
+plt.figure(figsize=(10,3))
+plt.plot(test_timestamps, y_test, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(test_timestamps, y_test_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+Chapisha MAPE kwa data ya majaribio
+
+```python
+print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')
+```
+
+```output
+MAPE for testing data: 1.2623790187854018 %
+```
+
+🏆 Una matokeo mazuri sana kwenye seti ya data ya majaribio!
+
+### Angalia utendaji wa modeli kwenye seti kamili ya data [^1]
+
+```python
+# Extracting load values as numpy array
+data = energy.copy().values
+
+# Scaling
+data = scaler.transform(data)
+
+# Transforming to 2D tensor as per model input requirement
+data_timesteps=np.array([[j for j in data[i:i+timesteps]] for i in range(0,len(data)-timesteps+1)])[:,:,0]
+print("Tensor shape: ", data_timesteps.shape)
+
+# Selecting inputs and outputs from data
+X, Y = data_timesteps[:,:timesteps-1],data_timesteps[:,[timesteps-1]]
+print("X shape: ", X.shape,"\nY shape: ", Y.shape)
+```
+
+```output
+Tensor shape: (26300, 5)
+X shape: (26300, 4)
+Y shape: (26300, 1)
+```
+
+```python
+# Make model predictions
+Y_pred = model.predict(X).reshape(-1,1)
+
+# Inverse scale and reshape
+Y_pred = scaler.inverse_transform(Y_pred)
+Y = scaler.inverse_transform(Y)
+```
+
+```python
+plt.figure(figsize=(30,8))
+plt.plot(Y, color = 'red', linewidth=2.0, alpha = 0.6)
+plt.plot(Y_pred, color = 'blue', linewidth=0.8)
+plt.legend(['Actual','Predicted'])
+plt.xlabel('Timestamp')
+plt.show()
+```
+
+
+
+```python
+print('MAPE: ', mape(Y_pred, Y)*100, '%')
+```
+
+```output
+MAPE: 2.0572089029888656 %
+```
+
+🏆 Grafu nzuri sana, zinazoonyesha modeli yenye usahihi mzuri. Hongera!
+
+---
+
+## 🚀Changamoto
+
+- Jaribu kubadilisha hyperparameters (gamma, C, epsilon) wakati wa kuunda modeli na tathmini kwenye data ili kuona ni seti gani ya hyperparameters inatoa matokeo bora kwenye data ya majaribio. Ili kujua zaidi kuhusu hyperparameters hizi, unaweza kurejelea hati [hapa](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel).
+- Jaribu kutumia kazi tofauti za kernel kwa modeli na uchanganue utendaji wake kwenye seti ya data. Hati inayosaidia inaweza kupatikana [hapa](https://scikit-learn.org/stable/modules/svm.html#kernel-functions).
+- Jaribu kutumia thamani tofauti za `timesteps` kwa modeli kuangalia nyuma ili kufanya utabiri.
+
+## [Maswali ya baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Somo hili lilikuwa la kuanzisha matumizi ya SVR kwa Utabiri wa Mfululizo wa Wakati. Ili kusoma zaidi kuhusu SVR, unaweza kurejelea [blogu hii](https://www.analyticsvidhya.com/blog/2020/03/support-vector-regression-tutorial-for-machine-learning/). Hati hii [katika scikit-learn](https://scikit-learn.org/stable/modules/svm.html) inatoa maelezo ya kina zaidi kuhusu SVM kwa ujumla, [SVRs](https://scikit-learn.org/stable/modules/svm.html#regression) na pia maelezo mengine ya utekelezaji kama vile kazi tofauti za [kernel](https://scikit-learn.org/stable/modules/svm.html#kernel-functions) zinazoweza kutumika, na vigezo vyake.
+
+## Kazi
+
+[Modeli mpya ya SVR](assignment.md)
+
+## Credits
+
+[^1]: Maandishi, msimbo na matokeo katika sehemu hii yalichangiwa na [@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD)
+[^2]: Maandishi, msimbo na matokeo katika sehemu hii yalichukuliwa kutoka [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA)
+
+---
+
+**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, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/7-TimeSeries/3-SVR/assignment.md b/translations/sw/7-TimeSeries/3-SVR/assignment.md
new file mode 100644
index 00000000..555a722f
--- /dev/null
+++ b/translations/sw/7-TimeSeries/3-SVR/assignment.md
@@ -0,0 +1,27 @@
+
+# Mfano Mpya wa SVR
+
+## Maelekezo [^1]
+
+Sasa kwa kuwa umeunda mfano wa SVR, unda mwingine mpya ukitumia data mpya (jaribu mojawapo ya [seti za data kutoka Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Eleza kazi yako katika daftari, onyesha data na mfano wako, na jaribu usahihi wake kwa kutumia michoro inayofaa na MAPE. Pia jaribu kurekebisha vigezo mbalimbali vya mfano na kutumia thamani tofauti za timesteps.
+
+## Rubric [^1]
+
+| Kigezo | Kiwango cha Juu | Kiwango cha Kutosha | Kinahitaji Kuboreshwa |
+| -------- | ------------------------------------------------------------ | --------------------------------------------------------- | ----------------------------------- |
+| | Daftari linaonyeshwa likiwa na mfano wa SVR ulioundwa, kujaribiwa na kuelezwa kwa michoro na usahihi ulioonyeshwa. | Daftari linaloonyeshwa halijafafanuliwa au lina makosa. | Daftari lisilokamilika linaonyeshwa |
+
+[^1]: Maandishi katika sehemu hii yalitokana na [kazi kutoka ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/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
diff --git a/translations/sw/7-TimeSeries/README.md b/translations/sw/7-TimeSeries/README.md
new file mode 100644
index 00000000..baacdc63
--- /dev/null
+++ b/translations/sw/7-TimeSeries/README.md
@@ -0,0 +1,37 @@
+
+# Utangulizi wa utabiri wa mfululizo wa muda
+
+Utabiri wa mfululizo wa muda ni nini? Ni kuhusu kutabiri matukio ya baadaye kwa kuchambua mwenendo wa zamani.
+
+## Mada ya kikanda: matumizi ya umeme duniani ✨
+
+Katika masomo haya mawili, utatambulishwa kwenye utabiri wa mfululizo wa muda, eneo ambalo halijulikani sana katika ujifunzaji wa mashine lakini lina thamani kubwa sana kwa matumizi ya viwanda na biashara, pamoja na nyanja nyingine. Ingawa mitandao ya neva inaweza kutumika kuboresha matumizi ya mifano hii, tutazisoma katika muktadha wa ujifunzaji wa mashine wa jadi, ambapo mifano husaidia kutabiri utendaji wa baadaye kwa kuzingatia ya zamani.
+
+Mwelekeo wetu wa kikanda ni matumizi ya umeme duniani, seti ya data ya kuvutia kujifunza kuhusu utabiri wa matumizi ya nguvu za umeme za baadaye kwa kuzingatia mifumo ya mzigo wa zamani. Unaweza kuona jinsi aina hii ya utabiri inaweza kuwa na manufaa makubwa katika mazingira ya biashara.
+
+
+
+Picha na [Peddi Sai hrithik](https://unsplash.com/@shutter_log?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) ya minara ya umeme barabarani huko Rajasthan kwenye [Unsplash](https://unsplash.com/s/photos/electric-india?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
+
+## Masomo
+
+1. [Utangulizi wa utabiri wa mfululizo wa muda](1-Introduction/README.md)
+2. [Kujenga mifano ya mfululizo wa muda ya ARIMA](2-ARIMA/README.md)
+3. [Kujenga Support Vector Regressor kwa utabiri wa mfululizo wa muda](3-SVR/README.md)
+
+## Credits
+
+"Utangulizi wa utabiri wa mfululizo wa muda" uliandikwa kwa ⚡️ na [Francesca Lazzeri](https://twitter.com/frlazzeri) na [Jen Looper](https://twitter.com/jenlooper). Noti za mafunzo zilionekana mtandaoni kwa mara ya kwanza katika [Azure "Deep Learning For Time Series" repo](https://github.com/Azure/DeepLearningForTimeSeriesForecasting) awali ziliandikwa na Francesca Lazzeri. Somo la SVR liliandikwa na [Anirban Mukherjee](https://github.com/AnirbanMukherjeeXD)
+
+---
+
+**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
diff --git a/translations/sw/8-Reinforcement/1-QLearning/README.md b/translations/sw/8-Reinforcement/1-QLearning/README.md
new file mode 100644
index 00000000..0725615d
--- /dev/null
+++ b/translations/sw/8-Reinforcement/1-QLearning/README.md
@@ -0,0 +1,256 @@
+
+# Utangulizi wa Kujifunza kwa Kuimarisha na Q-Learning
+
+
+> Sketchnote na [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Kujifunza kwa kuimarisha kunahusisha dhana tatu muhimu: wakala, hali fulani, na seti ya vitendo kwa kila hali. Kwa kutekeleza kitendo katika hali maalum, wakala hupewa tuzo. Fikiria tena mchezo wa kompyuta wa Super Mario. Wewe ni Mario, uko katika kiwango cha mchezo, umesimama karibu na ukingo wa mwamba. Juu yako kuna sarafu. Wewe ukiwa Mario, katika kiwango cha mchezo, katika nafasi maalum ... hiyo ndiyo hali yako. Kusonga hatua moja kulia (kitendo) kutakupeleka kwenye ukingo, na hiyo itakupa alama ya chini ya nambari. Hata hivyo, kubonyeza kitufe cha kuruka kutakufanya upate alama na utaendelea kuishi. Hilo ni jambo chanya na linapaswa kukupa alama chanya ya nambari.
+
+Kwa kutumia kujifunza kwa kuimarisha na simulator (mchezo), unaweza kujifunza jinsi ya kucheza mchezo ili kuongeza tuzo ambayo ni kuishi na kupata alama nyingi iwezekanavyo.
+
+[](https://www.youtube.com/watch?v=lDq_en8RNOo)
+
+> 🎥 Bonyeza picha hapo juu kusikiliza Dmitry akijadili Kujifunza kwa Kuimarisha
+
+## [Jaribio la awali la somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mahitaji na Usanidi
+
+Katika somo hili, tutajaribu baadhi ya msimbo kwa kutumia Python. Unapaswa kuwa na uwezo wa kuendesha msimbo wa Jupyter Notebook kutoka somo hili, ama kwenye kompyuta yako au mahali fulani mtandaoni.
+
+Unaweza kufungua [notebook ya somo](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) na kupitia somo hili ili kujifunza.
+
+> **Note:** Ikiwa unafungua msimbo huu kutoka mtandaoni, unahitaji pia kupata faili [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), ambayo inatumika katika msimbo wa notebook. Ongeza faili hiyo kwenye saraka sawa na notebook.
+
+## Utangulizi
+
+Katika somo hili, tutachunguza ulimwengu wa **[Peter na Mbwa Mwitu](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)**, uliochochewa na hadithi ya muziki ya mtunzi wa Kirusi, [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Tutatumia **Kujifunza kwa Kuimarisha** kumruhusu Peter kuchunguza mazingira yake, kukusanya matufaha matamu na kuepuka kukutana na mbwa mwitu.
+
+**Kujifunza kwa Kuimarisha** (RL) ni mbinu ya kujifunza inayoturuhusu kujifunza tabia bora ya **wakala** katika **mazingira** fulani kwa kufanya majaribio mengi. Wakala katika mazingira haya anapaswa kuwa na **lengo**, lililofafanuliwa na **kazi ya tuzo**.
+
+## Mazingira
+
+Kwa urahisi, hebu tuchukulie ulimwengu wa Peter kuwa ubao wa mraba wa ukubwa `width` x `height`, kama hivi:
+
+
+
+Kila seli katika ubao huu inaweza kuwa:
+
+* **ardhi**, ambapo Peter na viumbe wengine wanaweza kutembea.
+* **maji**, ambapo huwezi kutembea.
+* **mti** au **nyasi**, mahali ambapo unaweza kupumzika.
+* **tufaha**, ambalo linawakilisha kitu ambacho Peter angefurahia kukipata ili kujilisha.
+* **mbwa mwitu**, ambaye ni hatari na anapaswa kuepukwa.
+
+Kuna moduli ya Python tofauti, [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), ambayo ina msimbo wa kufanya kazi na mazingira haya. Kwa sababu msimbo huu si muhimu kwa kuelewa dhana zetu, tutaleta moduli hiyo na kuitumia kuunda ubao wa mfano (msimbo wa block 1):
+
+```python
+from rlboard import *
+
+width, height = 8,8
+m = Board(width,height)
+m.randomize(seed=13)
+m.plot()
+```
+
+Msimbo huu unapaswa kuchapisha picha ya mazingira yanayofanana na ile hapo juu.
+
+## Vitendo na sera
+
+Katika mfano wetu, lengo la Peter litakuwa kupata tufaha, huku akiepuka mbwa mwitu na vikwazo vingine. Ili kufanya hivyo, anaweza kimsingi kutembea hadi apate tufaha.
+
+Kwa hivyo, katika nafasi yoyote, anaweza kuchagua kati ya mojawapo ya vitendo vifuatavyo: juu, chini, kushoto na kulia.
+
+Tutafafanua vitendo hivyo kama kamusi, na kuviunganisha na jozi za mabadiliko ya kuratibu yanayolingana. Kwa mfano, kusonga kulia (`R`) kungefanana na jozi `(1,0)`. (msimbo wa block 2):
+
+```python
+actions = { "U" : (0,-1), "D" : (0,1), "L" : (-1,0), "R" : (1,0) }
+action_idx = { a : i for i,a in enumerate(actions.keys()) }
+```
+
+Kwa muhtasari, mkakati na lengo la hali hii ni kama ifuatavyo:
+
+- **Mkakati**, wa wakala wetu (Peter) unafafanuliwa na kinachoitwa **sera**. Sera ni kazi inayorejesha kitendo katika hali yoyote iliyotolewa. Katika kesi yetu, hali ya tatizo inawakilishwa na ubao, ikiwa ni pamoja na nafasi ya sasa ya mchezaji.
+
+- **Lengo**, la kujifunza kwa kuimarisha ni hatimaye kujifunza sera nzuri ambayo itaturuhusu kutatua tatizo kwa ufanisi. Hata hivyo, kama msingi, hebu tuchukulie sera rahisi inayoitwa **kutembea bila mpangilio**.
+
+## Kutembea bila mpangilio
+
+Hebu kwanza tutatue tatizo letu kwa kutekeleza mkakati wa kutembea bila mpangilio. Kwa kutembea bila mpangilio, tutachagua kitendo kinachofuata bila mpangilio kutoka kwa vitendo vinavyoruhusiwa, hadi tufikie tufaha (msimbo wa block 3).
+
+1. Tekeleza kutembea bila mpangilio kwa msimbo ulio hapa chini:
+
+ ```python
+ def random_policy(m):
+ return random.choice(list(actions))
+
+ def walk(m,policy,start_position=None):
+ n = 0 # number of steps
+ # set initial position
+ if start_position:
+ m.human = start_position
+ else:
+ m.random_start()
+ while True:
+ if m.at() == Board.Cell.apple:
+ return n # success!
+ if m.at() in [Board.Cell.wolf, Board.Cell.water]:
+ return -1 # eaten by wolf or drowned
+ while True:
+ a = actions[policy(m)]
+ new_pos = m.move_pos(m.human,a)
+ if m.is_valid(new_pos) and m.at(new_pos)!=Board.Cell.water:
+ m.move(a) # do the actual move
+ break
+ n+=1
+
+ walk(m,random_policy)
+ ```
+
+ Simu ya `walk` inapaswa kurejesha urefu wa njia inayolingana, ambayo inaweza kutofautiana kutoka kwa mzunguko mmoja hadi mwingine.
+
+1. Endesha jaribio la kutembea mara kadhaa (sema, 100), na uchapishe takwimu zinazotokana (msimbo wa block 4):
+
+ ```python
+ def print_statistics(policy):
+ s,w,n = 0,0,0
+ for _ in range(100):
+ z = walk(m,policy)
+ if z<0:
+ w+=1
+ else:
+ s += z
+ n += 1
+ print(f"Average path length = {s/n}, eaten by wolf: {w} times")
+
+ print_statistics(random_policy)
+ ```
+
+ Kumbuka kuwa urefu wa wastani wa njia ni karibu hatua 30-40, ambayo ni nyingi, ikizingatiwa kwamba umbali wa wastani hadi tufaha lililo karibu ni karibu hatua 5-6.
+
+ Unaweza pia kuona jinsi Peter anavyosonga wakati wa kutembea bila mpangilio:
+
+ 
+
+## Kazi ya tuzo
+
+Ili kufanya sera yetu iwe na akili zaidi, tunahitaji kuelewa ni hatua zipi ni "bora" kuliko nyingine. Ili kufanya hivyo, tunahitaji kufafanua lengo letu.
+
+Lengo linaweza kufafanuliwa kwa maneno ya **kazi ya tuzo**, ambayo itarejesha thamani fulani ya alama kwa kila hali. Kadri nambari inavyokuwa juu, ndivyo kazi ya tuzo inavyokuwa bora. (msimbo wa block 5)
+
+```python
+move_reward = -0.1
+goal_reward = 10
+end_reward = -10
+
+def reward(m,pos=None):
+ pos = pos or m.human
+ if not m.is_valid(pos):
+ return end_reward
+ x = m.at(pos)
+ if x==Board.Cell.water or x == Board.Cell.wolf:
+ return end_reward
+ if x==Board.Cell.apple:
+ return goal_reward
+ return move_reward
+```
+
+Jambo la kuvutia kuhusu kazi za tuzo ni kwamba katika hali nyingi, *tunapewa tuzo kubwa mwishoni mwa mchezo tu*. Hii inamaanisha kuwa algoriti yetu inapaswa kwa namna fulani kukumbuka hatua "nzuri" zinazopelekea tuzo chanya mwishoni, na kuongeza umuhimu wake. Vivyo hivyo, hatua zote zinazopelekea matokeo mabaya zinapaswa kupunguzwa.
+
+## Q-Learning
+
+Algoriti ambayo tutajadili hapa inaitwa **Q-Learning**. Katika algoriti hii, sera inafafanuliwa na kazi (au muundo wa data) inayoitwa **Q-Table**. Inarekodi "ubora" wa kila kitendo katika hali fulani.
+
+Inaitwa Q-Table kwa sababu mara nyingi ni rahisi kuiwakilisha kama jedwali, au safu ya vipimo vingi. Kwa kuwa ubao wetu una vipimo `width` x `height`, tunaweza kuwakilisha Q-Table kwa kutumia safu ya numpy yenye umbo `width` x `height` x `len(actions)`: (msimbo wa block 6)
+
+```python
+Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)
+```
+
+Kumbuka kuwa tunaanzisha maadili yote ya Q-Table na thamani sawa, katika kesi yetu - 0.25. Hii inafanana na sera ya "kutembea bila mpangilio", kwa sababu hatua zote katika kila hali ni sawa. Tunaweza kupitisha Q-Table kwa kazi ya `plot` ili kuonyesha jedwali kwenye ubao: `m.plot(Q)`.
+
+
+
+Katikati ya kila seli kuna "mshale" unaoonyesha mwelekeo unaopendelewa wa harakati. Kwa kuwa mwelekeo wote ni sawa, nukta inaonyeshwa.
+
+Sasa tunahitaji kuendesha simulizi, kuchunguza mazingira yetu, na kujifunza usambazaji bora wa maadili ya Q-Table, ambayo yataturuhusu kupata njia ya kufikia tufaha haraka zaidi.
+
+## Kiini cha Q-Learning: Mlinganyo wa Bellman
+
+Mara tu tunapoanza kusonga, kila kitendo kitakuwa na tuzo inayolingana, yaani tunaweza kinadharia kuchagua kitendo kinachofuata kulingana na tuzo ya haraka zaidi. Hata hivyo, katika hali nyingi, hatua hiyo haitafanikisha lengo letu la kufikia tufaha, na hivyo hatuwezi kuamua mara moja ni mwelekeo gani ni bora.
+
+> Kumbuka kuwa si matokeo ya haraka yanayojalisha, bali ni matokeo ya mwisho, ambayo tutapata mwishoni mwa simulizi.
+
+Ili kuzingatia tuzo hii ya kuchelewa, tunahitaji kutumia kanuni za **[programu ya nguvu](https://en.wikipedia.org/wiki/Dynamic_programming)**, ambayo inaturuhusu kufikiria tatizo letu kwa njia ya kurudia.
+
+Tuseme sasa tuko katika hali *s*, na tunataka kusonga hadi hali inayofuata *s'*. Kwa kufanya hivyo, tutapokea tuzo ya haraka *r(s,a)*, iliyofafanuliwa na kazi ya tuzo, pamoja na tuzo fulani ya baadaye. Ikiwa tunadhani kwamba Q-Table yetu inaonyesha kwa usahihi "uvutaji" wa kila kitendo, basi katika hali *s'* tutachagua kitendo *a* kinacholingana na thamani ya juu zaidi ya *Q(s',a')*. Kwa hivyo, tuzo bora zaidi ya baadaye ambayo tunaweza kupata katika hali *s* itafafanuliwa kama `max`
+
+## Kukagua sera
+
+Kwa kuwa Q-Table inaorodhesha "mvuto" wa kila kitendo katika kila hali, ni rahisi kuitumia kufafanua urambazaji bora katika ulimwengu wetu. Katika hali rahisi, tunaweza kuchagua kitendo kinacholingana na thamani ya juu zaidi ya Q-Table: (code block 9)
+
+```python
+def qpolicy_strict(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = list(actions)[np.argmax(v)]
+ return a
+
+walk(m,qpolicy_strict)
+```
+
+> Ukijaribu msimbo hapo juu mara kadhaa, unaweza kugundua kuwa wakati mwingine "inakwamia", na unahitaji kubonyeza kitufe cha STOP kwenye daftari ili kuisimamisha. Hii hutokea kwa sababu kunaweza kuwa na hali ambapo hali mbili "zinaelekeza" kwa kila moja kwa mujibu wa thamani bora ya Q-Value, ambapo wakala huishia kusonga kati ya hali hizo bila kikomo.
+
+## 🚀Changamoto
+
+> **Kazi ya 1:** Badilisha kazi ya `walk` ili kupunguza urefu wa njia kwa idadi fulani ya hatua (sema, 100), na angalia msimbo hapo juu ukirudisha thamani hii mara kwa mara.
+
+> **Kazi ya 2:** Badilisha kazi ya `walk` ili isirudi kwenye maeneo ambayo tayari imekuwa hapo awali. Hii itazuia `walk` kurudia, hata hivyo, wakala bado anaweza kujikuta "amekwama" mahali ambapo hawezi kutoroka.
+
+## Urambazaji
+
+Sera bora ya urambazaji itakuwa ile tuliyotumia wakati wa mafunzo, ambayo inachanganya unyonyaji na uchunguzi. Katika sera hii, tutachagua kila kitendo kwa uwezekano fulani, kulingana na thamani katika Q-Table. Mkakati huu bado unaweza kusababisha wakala kurudi kwenye nafasi ambayo tayari imechunguza, lakini, kama unavyoona kutoka kwa msimbo hapa chini, husababisha njia fupi sana kwa wastani kuelekea eneo linalotakiwa (kumbuka kuwa `print_statistics` inaendesha simulizi mara 100): (code block 10)
+
+```python
+def qpolicy(m):
+ x,y = m.human
+ v = probs(Q[x,y])
+ a = random.choices(list(actions),weights=v)[0]
+ return a
+
+print_statistics(qpolicy)
+```
+
+Baada ya kuendesha msimbo huu, unapaswa kupata urefu wa njia ya wastani ndogo zaidi kuliko hapo awali, katika kiwango cha 3-6.
+
+## Kuchunguza mchakato wa kujifunza
+
+Kama tulivyotaja, mchakato wa kujifunza ni usawa kati ya uchunguzi na unyonyaji wa maarifa yaliyopatikana kuhusu muundo wa nafasi ya tatizo. Tumeona kuwa matokeo ya kujifunza (uwezo wa kusaidia wakala kupata njia fupi kuelekea lengo) yameboreshwa, lakini pia ni ya kuvutia kuangalia jinsi urefu wa njia ya wastani unavyobadilika wakati wa mchakato wa kujifunza:
+
+## Muhtasari wa mafunzo:
+
+- **Urefu wa njia ya wastani huongezeka**. Tunachokiona hapa ni kwamba mwanzoni, urefu wa njia ya wastani huongezeka. Hii labda ni kwa sababu tunapokuwa hatujui chochote kuhusu mazingira, tuna uwezekano wa kukwama katika hali mbaya, maji au mbwa mwitu. Tunapojifunza zaidi na kuanza kutumia maarifa haya, tunaweza kuchunguza mazingira kwa muda mrefu, lakini bado hatujui vizuri mahali ambapo matunda yapo.
+
+- **Urefu wa njia hupungua, tunapojifunza zaidi**. Mara tu tunapojifunza vya kutosha, inakuwa rahisi kwa wakala kufikia lengo, na urefu wa njia huanza kupungua. Hata hivyo, bado tunafungua uchunguzi, kwa hivyo mara nyingi tunatoka kwenye njia bora, na kuchunguza chaguo mpya, na kufanya njia kuwa ndefu zaidi kuliko ilivyo bora.
+
+- **Urefu huongezeka ghafla**. Tunachokiona pia kwenye grafu hii ni kwamba wakati fulani, urefu uliongezeka ghafla. Hii inaonyesha asili ya mchakato wa nasibu, na kwamba tunaweza wakati fulani "kuharibu" coefficients za Q-Table kwa kuandika upya na thamani mpya. Hii inapaswa kupunguzwa kwa kupunguza kiwango cha kujifunza (kwa mfano, kuelekea mwisho wa mafunzo, tunarekebisha thamani za Q-Table kwa kiasi kidogo).
+
+Kwa ujumla, ni muhimu kukumbuka kuwa mafanikio na ubora wa mchakato wa kujifunza hutegemea sana vigezo, kama kiwango cha kujifunza, kupungua kwa kiwango cha kujifunza, na sababu ya punguzo. Hizi mara nyingi huitwa **vigezo vya juu**, ili kuzitofautisha na **vigezo**, ambavyo tunaboresha wakati wa mafunzo (kwa mfano, coefficients za Q-Table). Mchakato wa kutafuta thamani bora za vigezo vya juu huitwa **ubunifu wa vigezo vya juu**, na unastahili mada tofauti.
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Kazi
+[Dunia Halisi Zaidi](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/8-Reinforcement/1-QLearning/assignment.md b/translations/sw/8-Reinforcement/1-QLearning/assignment.md
new file mode 100644
index 00000000..a280ec12
--- /dev/null
+++ b/translations/sw/8-Reinforcement/1-QLearning/assignment.md
@@ -0,0 +1,41 @@
+
+# Dunia Halisi Zaidi
+
+Katika hali yetu, Peter aliweza kusafiri karibu bila kuchoka au kuhisi njaa. Katika dunia halisi zaidi, anapaswa kukaa chini na kupumzika mara kwa mara, na pia kujilisha. Hebu tufanye dunia yetu iwe halisi zaidi kwa kutekeleza sheria zifuatazo:
+
+1. Kwa kusafiri kutoka sehemu moja hadi nyingine, Peter hupoteza **nguvu** na kupata **uchovu**.
+2. Peter anaweza kupata nguvu zaidi kwa kula matufaha.
+3. Peter anaweza kuondoa uchovu kwa kupumzika chini ya mti au kwenye nyasi (yaani, kutembea hadi eneo la ubao lenye mti au nyasi - uwanja wa kijani).
+4. Peter anahitaji kutafuta na kumuua mbwa mwitu.
+5. Ili kumuua mbwa mwitu, Peter anahitaji kuwa na viwango fulani vya nguvu na uchovu, vinginevyo atashindwa katika vita.
+
+## Maelekezo
+
+Tumia [notebook.ipynb](../../../../8-Reinforcement/1-QLearning/notebook.ipynb) ya awali kama sehemu ya kuanzia kwa suluhisho lako.
+
+Badilisha kazi ya malipo hapo juu kulingana na sheria za mchezo, endesha algoriti ya kujifunza kwa kuimarisha ili kujifunza mkakati bora wa kushinda mchezo, na linganisha matokeo ya kutembea bila mpangilio na algoriti yako kwa kuzingatia idadi ya michezo iliyoshinda na iliyopotezwa.
+
+> **Note**: Katika dunia yako mpya, hali ni ngumu zaidi, na pamoja na nafasi ya binadamu pia inajumuisha viwango vya uchovu na nguvu. Unaweza kuchagua kuwakilisha hali kama tuple (Board,energy,fatigue), au kufafanua darasa kwa hali (unaweza pia kutaka kulirithi kutoka `Board`), au hata kubadilisha darasa la awali la `Board` ndani ya [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py).
+
+Katika suluhisho lako, tafadhali hifadhi msimbo unaohusika na mkakati wa kutembea bila mpangilio, na linganisha matokeo ya algoriti yako na kutembea bila mpangilio mwishoni.
+
+> **Note**: Unaweza kuhitaji kurekebisha hyperparameters ili kufanya kazi, hasa idadi ya epochs. Kwa sababu mafanikio ya mchezo (kupigana na mbwa mwitu) ni tukio nadra, unaweza kutarajia muda mrefu zaidi wa mafunzo.
+
+## Rubric
+
+| Vigezo | Bora | Inayotosheleza | Inahitaji Kuboresha |
+| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| | Notebook imewasilishwa na ufafanuzi wa sheria mpya za dunia, algoriti ya Q-Learning na maelezo ya maandishi. Q-Learning ina uwezo wa kuboresha matokeo kwa kiasi kikubwa ikilinganishwa na kutembea bila mpangilio. | Notebook imewasilishwa, Q-Learning imefanywa na inaboresha matokeo ikilinganishwa na kutembea bila mpangilio, lakini si kwa kiasi kikubwa; au notebook haijafafanuliwa vizuri na msimbo haujapangwa vizuri | Jaribio fulani la kufafanua sheria za dunia limefanywa, lakini algoriti ya Q-Learning haifanyi kazi, au kazi ya malipo haijafafanuliwa kikamilifu |
+
+---
+
+**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
diff --git a/translations/sw/8-Reinforcement/1-QLearning/solution/Julia/README.md b/translations/sw/8-Reinforcement/1-QLearning/solution/Julia/README.md
new file mode 100644
index 00000000..a45efd30
--- /dev/null
+++ b/translations/sw/8-Reinforcement/1-QLearning/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au 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
diff --git a/translations/sw/8-Reinforcement/1-QLearning/solution/R/README.md b/translations/sw/8-Reinforcement/1-QLearning/solution/R/README.md
new file mode 100644
index 00000000..dbe8d066
--- /dev/null
+++ b/translations/sw/8-Reinforcement/1-QLearning/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/8-Reinforcement/2-Gym/README.md b/translations/sw/8-Reinforcement/2-Gym/README.md
new file mode 100644
index 00000000..2f90db9c
--- /dev/null
+++ b/translations/sw/8-Reinforcement/2-Gym/README.md
@@ -0,0 +1,333 @@
+
+## Mahitaji ya Awali
+
+Katika somo hili, tutatumia maktaba inayoitwa **OpenAI Gym** kuiga mazingira tofauti. Unaweza kuendesha msimbo wa somo hili kwenye kompyuta yako (mfano, kutoka Visual Studio Code), ambapo simulizi itafunguka kwenye dirisha jipya. Unapokimbia msimbo mtandaoni, huenda ukahitaji kufanya marekebisho fulani kwenye msimbo, kama ilivyoelezwa [hapa](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7).
+
+## OpenAI Gym
+
+Katika somo lililopita, sheria za mchezo na hali zilikuwa zimetolewa na darasa la `Board` ambalo tulilifafanua sisi wenyewe. Hapa tutatumia mazingira maalum ya **simulizi**, ambayo yataiga fizikia ya fimbo inayosawazishwa. Mojawapo ya mazingira maarufu ya simulizi kwa mafunzo ya algoriti za kujifunza kwa kuimarisha inaitwa [Gym](https://gym.openai.com/), ambayo inadumishwa na [OpenAI](https://openai.com/). Kwa kutumia Gym hii tunaweza kuunda mazingira tofauti kutoka simulizi ya CartPole hadi michezo ya Atari.
+
+> **Note**: Unaweza kuona mazingira mengine yanayopatikana kutoka OpenAI Gym [hapa](https://gym.openai.com/envs/#classic_control).
+
+Kwanza, wacha tusakinishe Gym na kuingiza maktaba zinazohitajika (msimbo wa block 1):
+
+```python
+import sys
+!{sys.executable} -m pip install gym
+
+import gym
+import matplotlib.pyplot as plt
+import numpy as np
+import random
+```
+
+## Zoezi - kuanzisha mazingira ya CartPole
+
+Ili kufanya kazi na tatizo la kusawazisha CartPole, tunahitaji kuanzisha mazingira yanayohusiana. Kila mazingira yanahusishwa na:
+
+- **Observation space** inayofafanua muundo wa taarifa tunazopokea kutoka kwa mazingira. Kwa tatizo la CartPole, tunapokea nafasi ya fimbo, kasi, na thamani nyingine.
+
+- **Action space** inayofafanua hatua zinazowezekana. Katika kesi yetu, action space ni ya kidhahiri, na ina hatua mbili - **kushoto** na **kulia**. (msimbo wa block 2)
+
+1. Ili kuanzisha, andika msimbo ufuatao:
+
+ ```python
+ env = gym.make("CartPole-v1")
+ print(env.action_space)
+ print(env.observation_space)
+ print(env.action_space.sample())
+ ```
+
+Ili kuona jinsi mazingira yanavyofanya kazi, wacha tuendeshe simulizi fupi kwa hatua 100. Katika kila hatua, tunatoa moja ya hatua za kuchukuliwa - katika simulizi hii tunachagua hatua kwa nasibu kutoka `action_space`.
+
+1. Kimbia msimbo hapa chini na uone matokeo yake.
+
+ ✅ Kumbuka kuwa inapendekezwa kuendesha msimbo huu kwenye usakinishaji wa Python wa ndani! (msimbo wa block 3)
+
+ ```python
+ env.reset()
+
+ for i in range(100):
+ env.render()
+ env.step(env.action_space.sample())
+ env.close()
+ ```
+
+ Unapaswa kuona kitu kinachofanana na picha hii:
+
+ 
+
+1. Wakati wa simulizi, tunahitaji kupata uchunguzi ili kuamua jinsi ya kutenda. Kwa kweli, kazi ya hatua inarudisha uchunguzi wa sasa, kazi ya malipo, na bendera ya kumaliza inayonyesha kama ina maana kuendelea na simulizi au la: (msimbo wa block 4)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ print(f"{obs} -> {rew}")
+ env.close()
+ ```
+
+ Mwisho wake utakuwa kitu kama hiki kwenye matokeo ya daftari:
+
+ ```text
+ [ 0.03403272 -0.24301182 0.02669811 0.2895829 ] -> 1.0
+ [ 0.02917248 -0.04828055 0.03248977 0.00543839] -> 1.0
+ [ 0.02820687 0.14636075 0.03259854 -0.27681916] -> 1.0
+ [ 0.03113408 0.34100283 0.02706215 -0.55904489] -> 1.0
+ [ 0.03795414 0.53573468 0.01588125 -0.84308041] -> 1.0
+ ...
+ [ 0.17299878 0.15868546 -0.20754175 -0.55975453] -> 1.0
+ [ 0.17617249 0.35602306 -0.21873684 -0.90998894] -> 1.0
+ ```
+
+ Vector ya uchunguzi inayorudishwa katika kila hatua ya simulizi ina thamani zifuatazo:
+ - Nafasi ya gari
+ - Kasi ya gari
+ - Pembe ya fimbo
+ - Kiwango cha mzunguko wa fimbo
+
+1. Pata thamani ya chini na ya juu ya namba hizo: (msimbo wa block 5)
+
+ ```python
+ print(env.observation_space.low)
+ print(env.observation_space.high)
+ ```
+
+ Unaweza pia kugundua kuwa thamani ya malipo katika kila hatua ya simulizi daima ni 1. Hii ni kwa sababu lengo letu ni kuishi kwa muda mrefu iwezekanavyo, yaani, kuweka fimbo katika nafasi ya wima kwa muda mrefu zaidi.
+
+ ✅ Kwa kweli, simulizi ya CartPole inachukuliwa kuwa imetatuliwa ikiwa tunafanikiwa kupata wastani wa malipo ya 195 katika majaribio 100 mfululizo.
+
+## Ubadilishaji wa Hali
+
+Katika Q-Learning, tunahitaji kujenga Q-Table inayofafanua nini cha kufanya katika kila hali. Ili kufanya hivyo, tunahitaji hali iwe **kidhahiri**, haswa, inapaswa kuwa na idadi finyu ya thamani za kidhahiri. Kwa hivyo, tunahitaji kwa namna fulani **kubadilisha** uchunguzi wetu, kuupangilia kwenye seti finyu ya hali.
+
+Kuna njia kadhaa tunaweza kufanya hivi:
+
+- **Gawanya katika bins**. Ikiwa tunajua kipindi cha thamani fulani, tunaweza kugawanya kipindi hiki katika idadi ya **bins**, kisha kubadilisha thamani kwa namba ya bin ambayo inahusiana nayo. Hii inaweza kufanywa kwa kutumia njia ya numpy [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html). Katika kesi hii, tutajua kwa usahihi ukubwa wa hali, kwa sababu itategemea idadi ya bins tunazochagua kwa digitalization.
+
+✅ Tunaweza kutumia uingiliano wa mstari kuleta thamani kwenye kipindi finyu (sema, kutoka -20 hadi 20), kisha kubadilisha namba kuwa namba za kidhahiri kwa kuzirudisha. Hii inatupa udhibiti mdogo juu ya ukubwa wa hali, hasa ikiwa hatujui mipaka halisi ya thamani za pembejeo. Kwa mfano, katika kesi yetu 2 kati ya 4 za thamani hazina mipaka ya juu/chini, ambayo inaweza kusababisha idadi isiyo na mwisho ya hali.
+
+Katika mfano wetu, tutatumia njia ya pili. Kama utakavyogundua baadaye, licha ya mipaka isiyofafanuliwa ya juu/chini, thamani hizo mara chache huchukua thamani nje ya vipindi finyu, kwa hivyo hali hizo zenye thamani za juu zitakuwa nadra sana.
+
+1. Hapa kuna kazi itakayochukua uchunguzi kutoka kwa mfano wetu na kutoa tuple ya thamani 4 za kidhahiri: (msimbo wa block 6)
+
+ ```python
+ def discretize(x):
+ return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int))
+ ```
+
+1. Wacha pia tuchunguze njia nyingine ya ubadilishaji kwa kutumia bins: (msimbo wa block 7)
+
+ ```python
+ def create_bins(i,num):
+ return np.arange(num+1)*(i[1]-i[0])/num+i[0]
+
+ print("Sample bins for interval (-5,5) with 10 bins\n",create_bins((-5,5),10))
+
+ ints = [(-5,5),(-2,2),(-0.5,0.5),(-2,2)] # intervals of values for each parameter
+ nbins = [20,20,10,10] # number of bins for each parameter
+ bins = [create_bins(ints[i],nbins[i]) for i in range(4)]
+
+ def discretize_bins(x):
+ return tuple(np.digitize(x[i],bins[i]) for i in range(4))
+ ```
+
+1. Sasa wacha tuendeshe simulizi fupi na kuchunguza thamani za mazingira ya kidhahiri. Jisikie huru kujaribu `discretize` na `discretize_bins` na uone kama kuna tofauti.
+
+ ✅ discretize_bins inarudisha namba ya bin, ambayo ni 0-based. Kwa hivyo kwa thamani za pembejeo karibu na 0 inarudisha namba kutoka katikati ya kipindi (10). Katika discretize, hatukujali kuhusu kipimo cha thamani za matokeo, tukiruhusu ziwe hasi, kwa hivyo thamani za hali hazijabadilishwa, na 0 inahusiana na 0. (msimbo wa block 8)
+
+ ```python
+ env.reset()
+
+ done = False
+ while not done:
+ #env.render()
+ obs, rew, done, info = env.step(env.action_space.sample())
+ #print(discretize_bins(obs))
+ print(discretize(obs))
+ env.close()
+ ```
+
+ ✅ Ondoa mstari unaoanza na env.render ikiwa unataka kuona jinsi mazingira yanavyotekelezwa. Vinginevyo unaweza kuyatekeleza kwa siri, ambayo ni haraka zaidi. Tutatumia utekelezaji huu "usioonekana" wakati wa mchakato wetu wa Q-Learning.
+
+## Muundo wa Q-Table
+
+Katika somo letu lililopita, hali ilikuwa jozi rahisi ya namba kutoka 0 hadi 8, na kwa hivyo ilikuwa rahisi kuwakilisha Q-Table kwa tensor ya numpy yenye umbo la 8x8x2. Ikiwa tunatumia bins discretization, ukubwa wa vector ya hali yetu pia unajulikana, kwa hivyo tunaweza kutumia mbinu sawa na kuwakilisha hali kwa safu yenye umbo la 20x20x10x10x2 (hapa 2 ni kipimo cha action space, na vipimo vya kwanza vinahusiana na idadi ya bins tulizochagua kutumia kwa kila parameter katika observation space).
+
+Hata hivyo, wakati mwingine vipimo halisi vya observation space havijulikani. Katika kesi ya kazi ya `discretize`, hatuwezi kamwe kuwa na uhakika kwamba hali yetu inabaki ndani ya mipaka fulani, kwa sababu baadhi ya thamani za awali hazina mipaka. Kwa hivyo, tutatumia mbinu tofauti kidogo na kuwakilisha Q-Table kwa kamusi.
+
+1. Tumia jozi *(state,action)* kama ufunguo wa kamusi, na thamani itahusiana na thamani ya Q-Table. (msimbo wa block 9)
+
+ ```python
+ Q = {}
+ actions = (0,1)
+
+ def qvalues(state):
+ return [Q.get((state,a),0) for a in actions]
+ ```
+
+ Hapa pia tunafafanua kazi `qvalues()`, ambayo inarudisha orodha ya thamani za Q-Table kwa hali fulani inayohusiana na hatua zote zinazowezekana. Ikiwa kiingilio hakipo katika Q-Table, tutarudisha 0 kama chaguo-msingi.
+
+## Wacha tuanze Q-Learning
+
+Sasa tuko tayari kumfundisha Peter kusawazisha!
+
+1. Kwanza, wacha tuweke baadhi ya hyperparameters: (msimbo wa block 10)
+
+ ```python
+ # hyperparameters
+ alpha = 0.3
+ gamma = 0.9
+ epsilon = 0.90
+ ```
+
+ Hapa, `alpha` ni **learning rate** inayofafanua kiwango ambacho tunapaswa kurekebisha thamani za sasa za Q-Table katika kila hatua. Katika somo lililopita tulianza na 1, kisha tukapunguza `alpha` hadi thamani za chini wakati wa mafunzo. Katika mfano huu tutaiweka kuwa ya kudumu kwa urahisi, na unaweza kujaribu kurekebisha thamani za `alpha` baadaye.
+
+ `gamma` ni **discount factor** inayonyesha kiwango ambacho tunapaswa kuzingatia malipo ya baadaye zaidi ya malipo ya sasa.
+
+ `epsilon` ni **exploration/exploitation factor** inayodhamiria kama tunapaswa kupendelea uchunguzi au matumizi. Katika algoriti yetu, tutachagua hatua inayofuata kulingana na thamani za Q-Table kwa asilimia ya `epsilon`, na katika idadi iliyobaki ya kesi tutatekeleza hatua ya nasibu. Hii itaturuhusu kuchunguza maeneo ya nafasi ya utafutaji ambayo hatujawahi kuona hapo awali.
+
+ ✅ Kwa suala la kusawazisha - kuchagua hatua ya nasibu (uchunguzi) itakuwa kama pigo la nasibu katika mwelekeo usio sahihi, na fimbo italazimika kujifunza jinsi ya kurejesha usawa kutoka kwa "makosa" hayo.
+
+### Boresha Algoriti
+
+Tunaweza pia kufanya maboresho mawili kwenye algoriti yetu kutoka somo lililopita:
+
+- **Hesabu wastani wa malipo ya jumla**, katika idadi ya simulizi. Tutachapisha maendeleo kila majaribio 5000, na tutapunguza wastani wa malipo yetu ya jumla katika kipindi hicho cha muda. Inamaanisha kwamba ikiwa tutapata zaidi ya pointi 195 - tunaweza kuzingatia tatizo limetatuliwa, kwa ubora wa juu zaidi kuliko inavyohitajika.
+
+- **Hesabu matokeo ya juu ya wastani wa jumla**, `Qmax`, na tutahifadhi Q-Table inayohusiana na matokeo hayo. Unapokimbia mafunzo utagundua kwamba wakati mwingine matokeo ya wastani ya jumla yanaanza kushuka, na tunataka kuhifadhi thamani za Q-Table zinazohusiana na mfano bora uliotazamwa wakati wa mafunzo.
+
+1. Kusanya malipo yote ya jumla katika kila simulizi kwenye vector ya `rewards` kwa ajili ya kuchora baadaye. (msimbo wa block 11)
+
+ ```python
+ def probs(v,eps=1e-4):
+ v = v-v.min()+eps
+ v = v/v.sum()
+ return v
+
+ Qmax = 0
+ cum_rewards = []
+ rewards = []
+ for epoch in range(100000):
+ obs = env.reset()
+ done = False
+ cum_reward=0
+ # == do the simulation ==
+ while not done:
+ s = discretize(obs)
+ if random.random() Qmax:
+ Qmax = np.average(cum_rewards)
+ Qbest = Q
+ cum_rewards=[]
+ ```
+
+Unachoweza kugundua kutoka kwa matokeo hayo:
+
+- **Karibu na lengo letu**. Tuko karibu sana kufanikisha lengo la kupata malipo ya jumla ya 195 katika majaribio 100+ mfululizo ya simulizi, au tunaweza kuwa tumelifanikisha! Hata kama tunapata namba ndogo, bado hatujui, kwa sababu tunapunguza wastani wa majaribio 5000, na majaribio 100 tu yanahitajika katika vigezo rasmi.
+
+- **Malipo yanaanza kushuka**. Wakati mwingine malipo yanaanza kushuka, ambayo inamaanisha kwamba tunaweza "kuharibu" thamani zilizojifunza tayari katika Q-Table na zile zinazofanya hali kuwa mbaya zaidi.
+
+Uchunguzi huu unaonekana wazi zaidi ikiwa tunachora maendeleo ya mafunzo.
+
+## Kuchora Maendeleo ya Mafunzo
+
+Wakati wa mafunzo, tumekusanya thamani ya malipo ya jumla katika kila mojawapo ya majaribio kwenye vector ya `rewards`. Hivi ndivyo inavyoonekana tunapochora dhidi ya namba ya majaribio:
+
+```python
+plt.plot(rewards)
+```
+
+
+
+Kutoka kwenye grafu hii, haiwezekani kusema chochote, kwa sababu kutokana na asili ya mchakato wa mafunzo wa nasibu urefu wa vipindi vya mafunzo hutofautiana sana. Ili kufanya grafu hii iwe na maana zaidi, tunaweza kuhesabu **wastani wa kukimbia** katika mfululizo wa majaribio, tuseme 100. Hii inaweza kufanywa kwa urahisi kwa kutumia `np.convolve`: (msimbo wa block 12)
+
+```python
+def running_average(x,window):
+ return np.convolve(x,np.ones(window)/window,mode='valid')
+
+plt.plot(running_average(rewards,100))
+```
+
+
+
+## Kubadilisha Hyperparameters
+
+Ili kufanya mafunzo kuwa thabiti zaidi, ina maana kurekebisha baadhi ya hyperparameters zetu wakati wa mafunzo. Haswa:
+
+- **Kwa learning rate**, `alpha`, tunaweza kuanza na thamani karibu na 1, kisha kuendelea kupunguza parameter. Kwa muda, tutakuwa tunapata thamani nzuri za uwezekano katika Q-Table, na kwa hivyo tunapaswa kuzirekebisha kidogo, na si kuandika upya kabisa na thamani mpya.
+
+- **Ongeza epsilon**. Tunaweza kutaka kuongeza `epsilon` polepole, ili kuchunguza kidogo na kutumia zaidi. Inawezekana ina maana kuanza na thamani ya chini ya `epsilon`, na kuendelea hadi karibu na 1.
+> **Kazi ya 1**: Cheza na thamani za hyperparameter na uone kama unaweza kufikia zawadi ya juu zaidi ya jumla. Je, unapata zaidi ya 195?
+> **Kazi ya 2**: Ili kutatua tatizo rasmi, unahitaji kupata wastani wa zawadi ya 195 katika mizunguko 100 mfululizo. Pima hilo wakati wa mafunzo na hakikisha kuwa umetatua tatizo rasmi!
+
+## Kuona matokeo kwa vitendo
+
+Itakuwa ya kuvutia kuona jinsi mfano uliopata mafunzo unavyofanya kazi. Hebu tuendeshe simulizi na kufuata mkakati wa kuchagua hatua kama wakati wa mafunzo, tukichagua kulingana na mgawanyo wa uwezekano katika Q-Table: (sehemu ya msimbo 13)
+
+```python
+obs = env.reset()
+done = False
+while not done:
+ s = discretize(obs)
+ env.render()
+ v = probs(np.array(qvalues(s)))
+ a = random.choices(actions,weights=v)[0]
+ obs,_,done,_ = env.step(a)
+env.close()
+```
+
+Unapaswa kuona kitu kama hiki:
+
+
+
+---
+
+## 🚀Changamoto
+
+> **Kazi ya 3**: Hapa, tulikuwa tunatumia nakala ya mwisho ya Q-Table, ambayo huenda isiwe bora zaidi. Kumbuka kuwa tumetunza Q-Table inayofanya vizuri zaidi katika `Qbest`! Jaribu mfano huo huo ukitumia Q-Table inayofanya vizuri zaidi kwa kunakili `Qbest` kwenda `Q` na uone kama unagundua tofauti.
+
+> **Kazi ya 4**: Hapa hatukuchagua hatua bora katika kila hatua, bali tulichagua kulingana na mgawanyo wa uwezekano unaolingana. Je, ingekuwa na maana zaidi kuchagua hatua bora kila wakati, yenye thamani ya juu zaidi katika Q-Table? Hili linaweza kufanyika kwa kutumia kazi ya `np.argmax` ili kupata namba ya hatua inayolingana na thamani ya juu zaidi ya Q-Table. Tekeleza mkakati huu na uone kama unaboreshwa usawazishaji.
+
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Kazi ya Nyumbani
+[Fundisha Gari la Mlima](assignment.md)
+
+## Hitimisho
+
+Sasa tumejifunza jinsi ya kufundisha mawakala kufanikisha matokeo mazuri kwa kuwapa tu kazi ya zawadi inayofafanua hali inayotakiwa ya mchezo, na kwa kuwapa fursa ya kuchunguza kwa akili nafasi ya utafutaji. Tumetumia kwa mafanikio algoriti ya Q-Learning katika hali za mazingira ya kidijitali na endelevu, lakini kwa hatua za kidijitali.
+
+Ni muhimu pia kusoma hali ambapo hali ya hatua ni endelevu, na wakati nafasi ya uchunguzi ni ngumu zaidi, kama picha kutoka skrini ya mchezo wa Atari. Katika matatizo hayo mara nyingi tunahitaji kutumia mbinu za kujifunza mashine zenye nguvu zaidi, kama mitandao ya neva, ili kufanikisha matokeo mazuri. Mada hizo za juu zaidi ni somo la kozi yetu ya AI ya juu inayokuja.
+
+---
+
+**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 asilia katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/8-Reinforcement/2-Gym/assignment.md b/translations/sw/8-Reinforcement/2-Gym/assignment.md
new file mode 100644
index 00000000..5bf99bc9
--- /dev/null
+++ b/translations/sw/8-Reinforcement/2-Gym/assignment.md
@@ -0,0 +1,57 @@
+
+# Kufundisha Gari la Mlima
+
+[OpenAI Gym](http://gym.openai.com) imeundwa kwa namna ambayo mazingira yote yanatoa API sawa - yaani, mbinu sawa `reset`, `step` na `render`, na dhana sawa za **action space** na **observation space**. Hivyo basi, inapaswa kuwa rahisi kubadilisha algoriti za kujifunza kwa kuimarisha ili zifanye kazi katika mazingira tofauti kwa mabadiliko madogo ya msimbo.
+
+## Mazingira ya Gari la Mlima
+
+[Mazingira ya Gari la Mlima](https://gym.openai.com/envs/MountainCar-v0/) lina gari lililokwama kwenye bonde:
+
+Lengo ni kutoka kwenye bonde na kufikia bendera, kwa kufanya mojawapo ya vitendo vifuatavyo katika kila hatua:
+
+| Thamani | Maana |
+|---|---|
+| 0 | Kuongeza kasi kwenda kushoto |
+| 1 | Kutokuongeza kasi |
+| 2 | Kuongeza kasi kwenda kulia |
+
+Hata hivyo, changamoto kuu ya tatizo hili ni kwamba injini ya gari haina nguvu ya kutosha kupanda mlima kwa mara moja. Kwa hivyo, njia pekee ya kufanikiwa ni kuendesha gari mbele na nyuma ili kujenga kasi.
+
+Eneo la uchunguzi lina thamani mbili tu:
+
+| Namba | Uchunguzi | Min | Max |
+|-----|--------------|-----|-----|
+| 0 | Nafasi ya Gari | -1.2| 0.6 |
+| 1 | Kasi ya Gari | -0.07 | 0.07 |
+
+Mfumo wa zawadi kwa gari la mlima ni mgumu kidogo:
+
+ * Zawadi ya 0 inatolewa ikiwa wakala amefikia bendera (nafasi = 0.5) juu ya mlima.
+ * Zawadi ya -1 inatolewa ikiwa nafasi ya wakala ni chini ya 0.5.
+
+Kipindi kinamalizika ikiwa nafasi ya gari ni zaidi ya 0.5, au urefu wa kipindi ni zaidi ya 200.
+
+## Maelekezo
+
+Badilisha algoriti yetu ya kujifunza kwa kuimarisha ili kutatua tatizo la gari la mlima. Anza na msimbo uliopo katika [notebook.ipynb](../../../../8-Reinforcement/2-Gym/notebook.ipynb), badilisha mazingira mapya, badilisha kazi za kugawa hali, na jaribu kufanya algoriti iliyopo ifanye mafunzo kwa mabadiliko madogo ya msimbo. Boresha matokeo kwa kurekebisha hyperparameters.
+
+> **Note**: Marekebisho ya hyperparameters yanahitajika ili kufanya algoriti kufikia matokeo.
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inafaa | Inahitaji Kuboresha |
+| -------- | --------- | -------- | ----------------- |
+| | Algoriti ya Q-Learning imebadilishwa kwa mafanikio kutoka mfano wa CartPole, kwa mabadiliko madogo ya msimbo, na inaweza kutatua tatizo la kufikia bendera chini ya hatua 200. | Algoriti mpya ya Q-Learning imechukuliwa kutoka mtandao, lakini imeelezwa vizuri; au algoriti iliyopo imebadilishwa, lakini haifiki matokeo yanayotarajiwa | Mwanafunzi hakuweza kubadilisha algoriti yoyote kwa mafanikio, lakini amefanya hatua kubwa kuelekea suluhisho (ameunda kugawa hali, muundo wa data wa Q-Table, nk.) |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/8-Reinforcement/2-Gym/solution/Julia/README.md b/translations/sw/8-Reinforcement/2-Gym/solution/Julia/README.md
new file mode 100644
index 00000000..bc6c3e63
--- /dev/null
+++ b/translations/sw/8-Reinforcement/2-Gym/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/8-Reinforcement/2-Gym/solution/R/README.md b/translations/sw/8-Reinforcement/2-Gym/solution/R/README.md
new file mode 100644
index 00000000..d933cd7b
--- /dev/null
+++ b/translations/sw/8-Reinforcement/2-Gym/solution/R/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**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
diff --git a/translations/sw/8-Reinforcement/README.md b/translations/sw/8-Reinforcement/README.md
new file mode 100644
index 00000000..1617003b
--- /dev/null
+++ b/translations/sw/8-Reinforcement/README.md
@@ -0,0 +1,67 @@
+
+# Utangulizi wa kujifunza kwa kuimarisha
+
+Kujifunza kwa kuimarisha, RL, huchukuliwa kama mojawapo ya mifumo ya msingi ya kujifunza kwa mashine, sambamba na kujifunza kwa kusimamiwa na kujifunza bila kusimamiwa. RL inahusu maamuzi: kufanya maamuzi sahihi au angalau kujifunza kutoka kwa maamuzi hayo.
+
+Fikiria una mazingira yaliyosimuliwa kama soko la hisa. Nini hutokea ikiwa utaweka kanuni fulani? Je, ina athari chanya au hasi? Ikiwa kitu hasi kinatokea, unahitaji kuchukua _kuimarisha hasi_, kujifunza kutoka kwayo, na kubadilisha mwelekeo. Ikiwa ni matokeo chanya, unahitaji kujenga juu ya _kuimarisha chanya_.
+
+
+
+> Peter na marafiki zake wanahitaji kutoroka mbwa mwitu mwenye njaa! Picha na [Jen Looper](https://twitter.com/jenlooper)
+
+## Mada ya Kieneo: Peter na Mbwa Mwitu (Urusi)
+
+[Peter na Mbwa Mwitu](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) ni hadithi ya muziki iliyoandikwa na mtunzi wa Kirusi [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Ni hadithi kuhusu kijana shupavu Peter, ambaye kwa ujasiri anatoka nyumbani kwake kwenda uwanda wa msitu kumfukuza mbwa mwitu. Katika sehemu hii, tutafundisha algoriti za kujifunza kwa mashine zitakazomsaidia Peter:
+
+- **Kuchunguza** eneo linalomzunguka na kujenga ramani bora ya urambazaji.
+- **Kujifunza** jinsi ya kutumia skateboard na kudumisha usawa wake, ili kuzunguka kwa kasi zaidi.
+
+[](https://www.youtube.com/watch?v=Fmi5zHg4QSM)
+
+> 🎥 Bofya picha hapo juu kusikiliza Peter na Mbwa Mwitu na Prokofiev
+
+## Kujifunza kwa kuimarisha
+
+Katika sehemu zilizopita, umeona mifano miwili ya matatizo ya kujifunza kwa mashine:
+
+- **Kusimamiwa**, ambapo tuna seti za data zinazopendekeza suluhisho za mfano kwa tatizo tunalotaka kutatua. [Uainishaji](../4-Classification/README.md) na [urekebishaji](../2-Regression/README.md) ni kazi za kujifunza kwa kusimamiwa.
+- **Bila kusimamiwa**, ambapo hatuna data ya mafunzo yenye lebo. Mfano mkuu wa kujifunza bila kusimamiwa ni [Kugawanya makundi](../5-Clustering/README.md).
+
+Katika sehemu hii, tutakutambulisha aina mpya ya tatizo la kujifunza ambalo halihitaji data ya mafunzo yenye lebo. Kuna aina kadhaa za matatizo kama haya:
+
+- **[Kujifunza kwa nusu kusimamiwa](https://wikipedia.org/wiki/Semi-supervised_learning)**, ambapo tuna data nyingi isiyo na lebo inayoweza kutumika kufundisha awali mfano.
+- **[Kujifunza kwa kuimarisha](https://wikipedia.org/wiki/Reinforcement_learning)**, ambapo wakala hujifunza jinsi ya kuendesha mambo kwa kufanya majaribio katika mazingira yaliyosimuliwa.
+
+### Mfano - mchezo wa kompyuta
+
+Fikiria unataka kufundisha kompyuta kucheza mchezo, kama vile chess, au [Super Mario](https://wikipedia.org/wiki/Super_Mario). Ili kompyuta icheze mchezo, tunahitaji kuitabiria hatua gani ichukue katika kila hali ya mchezo. Ingawa hili linaweza kuonekana kama tatizo la uainishaji, si hivyo - kwa sababu hatuna seti ya data yenye hali na hatua zinazolingana. Ingawa tunaweza kuwa na data kama vile mechi zilizopo za chess au rekodi za wachezaji wakicheza Super Mario, kuna uwezekano kwamba data hiyo haitatosheleza kufunika idadi kubwa ya hali zinazowezekana.
+
+Badala ya kutafuta data ya mchezo iliyopo, **Kujifunza kwa Kuimarisha** (RL) kunategemea wazo la *kuifanya kompyuta icheze* mara nyingi na kuchunguza matokeo. Hivyo basi, ili kutumia Kujifunza kwa Kuimarisha, tunahitaji vitu viwili:
+
+- **Mazingira** na **kisimulizi** kinachoturuhusu kucheza mchezo mara nyingi. Kisimulizi hiki kingeeleza sheria zote za mchezo pamoja na hali na hatua zinazowezekana.
+
+- **Kazi ya malipo**, ambayo ingetueleza jinsi tulivyofanya vizuri katika kila hatua au mchezo.
+
+Tofauti kuu kati ya aina nyingine za kujifunza kwa mashine na RL ni kwamba katika RL kwa kawaida hatujui kama tumeshinda au tumeshindwa hadi tumalize mchezo. Hivyo basi, hatuwezi kusema kama hatua fulani pekee ni nzuri au la - tunapokea tu malipo mwishoni mwa mchezo. Na lengo letu ni kubuni algoriti zitakazotuwezesha kufundisha mfano chini ya hali zisizo na uhakika. Tutajifunza kuhusu algoriti moja ya RL inayoitwa **Q-learning**.
+
+## Masomo
+
+1. [Utangulizi wa kujifunza kwa kuimarisha na Q-Learning](1-QLearning/README.md)
+2. [Kutumia mazingira ya simulizi ya gym](2-Gym/README.md)
+
+## Shukrani
+
+"Utangulizi wa Kujifunza kwa Kuimarisha" uliandikwa kwa ♥️ na [Dmitry Soshnikov](http://soshnikov.com)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/9-Real-World/1-Applications/README.md b/translations/sw/9-Real-World/1-Applications/README.md
new file mode 100644
index 00000000..f04e13d7
--- /dev/null
+++ b/translations/sw/9-Real-World/1-Applications/README.md
@@ -0,0 +1,159 @@
+
+# Postscript: Kujifunza mashine katika ulimwengu halisi
+
+
+> Sketchnote na [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Katika mtaala huu, umejifunza njia nyingi za kuandaa data kwa mafunzo na kuunda mifano ya kujifunza mashine. Umejenga mfululizo wa mifano ya regression ya kawaida, clustering, classification, usindikaji wa lugha asilia, na mfululizo wa muda. Hongera! Sasa, unaweza kuwa unajiuliza yote haya ni kwa ajili ya nini... ni matumizi gani ya ulimwengu halisi kwa mifano hii?
+
+Ingawa AI imevutia sana sekta mbalimbali, ambayo mara nyingi hutumia kujifunza kwa kina, bado kuna matumizi muhimu kwa mifano ya kujifunza mashine ya kawaida. Huenda hata unatumia baadhi ya matumizi haya leo! Katika somo hili, utachunguza jinsi sekta nane tofauti na nyanja za maarifa zinavyotumia aina hizi za mifano kuboresha utendaji, uaminifu, akili, na thamani kwa watumiaji.
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## 💰 Fedha
+
+Sekta ya fedha inatoa fursa nyingi kwa kujifunza mashine. Matatizo mengi katika eneo hili yanaweza kuigwa na kutatuliwa kwa kutumia ML.
+
+### Kugundua udanganyifu wa kadi ya mkopo
+
+Tulijifunza kuhusu [k-means clustering](../../5-Clustering/2-K-Means/README.md) mapema katika kozi, lakini inaweza kutumika vipi kutatua matatizo yanayohusiana na udanganyifu wa kadi ya mkopo?
+
+K-means clustering ni muhimu katika mbinu ya kugundua udanganyifu wa kadi ya mkopo inayoitwa **outlier detection**. Outliers, au mabadiliko katika uchunguzi wa seti ya data, yanaweza kutuonyesha ikiwa kadi ya mkopo inatumiwa kwa kawaida au kuna kitu kisicho cha kawaida kinachoendelea. Kama inavyoonyeshwa katika karatasi iliyounganishwa hapa chini, unaweza kupanga data ya kadi ya mkopo kwa kutumia algorithm ya k-means clustering na kuainisha kila muamala katika kundi kulingana na jinsi inavyoonekana kuwa outlier. Kisha, unaweza kutathmini makundi yenye hatari zaidi kwa muamala wa udanganyifu dhidi ya halali.
+[Reference](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.680.1195&rep=rep1&type=pdf)
+
+### Usimamizi wa mali
+
+Katika usimamizi wa mali, mtu binafsi au kampuni hushughulikia uwekezaji kwa niaba ya wateja wao. Kazi yao ni kudumisha na kukuza mali kwa muda mrefu, kwa hivyo ni muhimu kuchagua uwekezaji unaofanya vizuri.
+
+Njia moja ya kutathmini jinsi uwekezaji fulani unavyofanya ni kupitia regression ya takwimu. [Linear regression](../../2-Regression/1-Tools/README.md) ni zana muhimu kwa kuelewa jinsi mfuko unavyofanya kazi ikilinganishwa na kiwango fulani. Tunaweza pia kuamua ikiwa matokeo ya regression ni muhimu kwa takwimu, au jinsi yanavyoweza kuathiri uwekezaji wa mteja. Unaweza hata kupanua uchambuzi wako zaidi kwa kutumia regression nyingi, ambapo sababu za ziada za hatari zinaweza kuzingatiwa. Kwa mfano wa jinsi hii ingeweza kufanya kazi kwa mfuko maalum, angalia karatasi hapa chini kuhusu kutathmini utendaji wa mfuko kwa kutumia regression.
+[Reference](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/)
+
+## 🎓 Elimu
+
+Sekta ya elimu pia ni eneo la kuvutia ambapo ML inaweza kutumika. Kuna matatizo ya kuvutia ya kushughulikia kama vile kugundua udanganyifu kwenye mitihani au insha au kudhibiti upendeleo, wa makusudi au la, katika mchakato wa kusahihisha.
+
+### Kutabiri tabia ya wanafunzi
+
+[Coursera](https://coursera.com), mtoa kozi za mtandaoni, ana blogu nzuri ya teknolojia ambapo wanajadili maamuzi mengi ya uhandisi. Katika utafiti huu wa kesi, walichora mstari wa regression kujaribu kuchunguza uhusiano wowote kati ya alama ya chini ya NPS (Net Promoter Score) na uhifadhi wa kozi au kuacha.
+[Reference](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a)
+
+### Kupunguza upendeleo
+
+[Grammarly](https://grammarly.com), msaidizi wa uandishi unaochunguza makosa ya tahajia na sarufi, hutumia mifumo ya kisasa ya [usindikaji wa lugha asilia](../../6-NLP/README.md) katika bidhaa zake. Walichapisha utafiti wa kesi wa kuvutia katika blogu yao ya teknolojia kuhusu jinsi walivyoshughulikia upendeleo wa kijinsia katika kujifunza mashine, ambayo ulijifunza katika [somo letu la haki la utangulizi](../../1-Introduction/3-fairness/README.md).
+[Reference](https://www.grammarly.com/blog/engineering/mitigating-gender-bias-in-autocorrect/)
+
+## 👜 Biashara ya rejareja
+
+Sekta ya rejareja inaweza kufaidika sana na matumizi ya ML, kuanzia kuboresha safari ya mteja hadi kusimamia hesabu kwa njia bora.
+
+### Kubinafsisha safari ya mteja
+
+Katika Wayfair, kampuni inayouza bidhaa za nyumbani kama samani, kuwasaidia wateja kupata bidhaa sahihi kwa ladha na mahitaji yao ni jambo la msingi. Katika makala hii, wahandisi kutoka kampuni hiyo wanaelezea jinsi wanavyotumia ML na NLP "kuonyesha matokeo sahihi kwa wateja". Hasa, Injini yao ya Query Intent imejengwa kutumia uchimbaji wa entiti, mafunzo ya classifier, uchimbaji wa mali na maoni, na uwekaji wa hisia kwenye maoni ya wateja. Hii ni mfano wa kawaida wa jinsi NLP inavyofanya kazi katika rejareja mtandaoni.
+[Reference](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search)
+
+### Usimamizi wa hesabu
+
+Kampuni za ubunifu na zenye wepesi kama [StitchFix](https://stitchfix.com), huduma ya sanduku inayosafirisha mavazi kwa watumiaji, hutegemea sana ML kwa mapendekezo na usimamizi wa hesabu. Timu zao za mitindo hufanya kazi pamoja na timu zao za biashara, kwa kweli: "mmoja wa wanasayansi wetu wa data alijaribu algorithm ya maumbile na kuitekeleza kwa mavazi kutabiri ni kipande gani cha mavazi kitakuwa na mafanikio ambacho hakipo leo. Tulileta hilo kwa timu ya biashara na sasa wanaweza kutumia hilo kama zana."
+[Reference](https://www.zdnet.com/article/how-stitch-fix-uses-machine-learning-to-master-the-science-of-styling/)
+
+## 🏥 Huduma ya Afya
+
+Sekta ya huduma ya afya inaweza kutumia ML kuboresha kazi za utafiti na pia matatizo ya kimuundo kama kurudisha wagonjwa hospitalini au kuzuia magonjwa kuenea.
+
+### Usimamizi wa majaribio ya kliniki
+
+Sumu katika majaribio ya kliniki ni wasiwasi mkubwa kwa watengenezaji wa dawa. Kiasi gani cha sumu kinachokubalika? Katika utafiti huu, kuchambua mbinu mbalimbali za majaribio ya kliniki kulisababisha maendeleo ya mbinu mpya ya kutabiri uwezekano wa matokeo ya majaribio ya kliniki. Hasa, waliweza kutumia random forest kuzalisha [classifier](../../4-Classification/README.md) inayoweza kutofautisha kati ya vikundi vya dawa.
+[Reference](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
+
+### Usimamizi wa kurudishwa hospitalini
+
+Huduma ya hospitali ni ghali, hasa wakati wagonjwa wanapaswa kurudishwa. Karatasi hii inajadili kampuni inayotumia ML kutabiri uwezekano wa kurudishwa kwa kutumia [clustering](../../5-Clustering/README.md) algorithms. Makundi haya husaidia wachambuzi "kugundua vikundi vya kurudishwa ambavyo vinaweza kushiriki sababu ya kawaida".
+[Reference](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning)
+
+### Usimamizi wa magonjwa
+
+Janga la hivi karibuni limeonyesha wazi jinsi kujifunza mashine kunavyoweza kusaidia kuzuia kuenea kwa magonjwa. Katika makala hii, utatambua matumizi ya ARIMA, logistic curves, linear regression, na SARIMA. "Kazi hii ni jaribio la kuhesabu kiwango cha kuenea kwa virusi hivi na hivyo kutabiri vifo, kupona, na kesi zilizothibitishwa, ili iweze kutusaidia kujiandaa vizuri na kuishi."
+[Reference](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/)
+
+## 🌲 Ikolojia na Teknolojia ya Kijani
+
+Asili na ikolojia inajumuisha mifumo mingi nyeti ambapo mwingiliano kati ya wanyama na asili unazingatiwa. Ni muhimu kuweza kupima mifumo hii kwa usahihi na kuchukua hatua ipasavyo ikiwa kitu kinatokea, kama moto wa msitu au kupungua kwa idadi ya wanyama.
+
+### Usimamizi wa misitu
+
+Umejifunza kuhusu [Reinforcement Learning](../../8-Reinforcement/README.md) katika masomo ya awali. Inaweza kuwa muhimu sana wakati wa kujaribu kutabiri mifumo katika asili. Hasa, inaweza kutumika kufuatilia matatizo ya ikolojia kama moto wa msitu na kuenea kwa spishi vamizi. Nchini Kanada, kikundi cha watafiti kilitumia Reinforcement Learning kujenga mifano ya mienendo ya moto wa msitu kutoka picha za satelaiti. Kwa kutumia "spatially spreading process (SSP)" ya ubunifu, waliona moto wa msitu kama "wakala katika seli yoyote kwenye mandhari." "Seti ya hatua ambazo moto unaweza kuchukua kutoka eneo lolote kwa wakati wowote ni pamoja na kuenea kaskazini, kusini, mashariki, au magharibi au kutokuenea.
+
+Mbinu hii inageuza mpangilio wa kawaida wa RL kwani mienendo ya MDP inayolingana ni kazi inayojulikana kwa kuenea kwa moto mara moja." Soma zaidi kuhusu algorithms za kawaida zinazotumiwa na kikundi hiki kwenye kiungo hapa chini.
+[Reference](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full)
+
+### Ufuatiliaji wa harakati za wanyama
+
+Ingawa kujifunza kwa kina kumeleta mapinduzi katika kufuatilia harakati za wanyama kwa kuona (unaweza kujenga [kifuatiliaji cha dubu wa polar](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) hapa), ML ya kawaida bado ina nafasi katika kazi hii.
+
+Vihisi vya kufuatilia harakati za wanyama wa shambani na IoT hutumia aina hii ya usindikaji wa kuona, lakini mbinu za msingi za ML ni muhimu kwa kuandaa data. Kwa mfano, katika karatasi hii, mikao ya kondoo zilifuatiliwa na kuchambuliwa kwa kutumia algorithms mbalimbali za classifier. Unaweza kutambua ROC curve kwenye ukurasa wa 335.
+[Reference](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf)
+
+### ⚡️ Usimamizi wa Nishati
+
+Katika masomo yetu ya [utabiri wa mfululizo wa muda](../../7-TimeSeries/README.md), tulitaja dhana ya mita za maegesho za kisasa ili kuzalisha mapato kwa mji kwa msingi wa kuelewa usambazaji na mahitaji. Makala hii inajadili kwa undani jinsi clustering, regression na utabiri wa mfululizo wa muda vilivyotumika pamoja kusaidia kutabiri matumizi ya nishati ya baadaye nchini Ireland, kwa msingi wa mita za kisasa.
+[Reference](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf)
+
+## 💼 Bima
+
+Sekta ya bima ni sekta nyingine inayotumia ML kujenga na kuboresha mifano ya kifedha na actuarial.
+
+### Usimamizi wa Mabadiliko
+
+MetLife, mtoa huduma wa bima ya maisha, ni wazi kuhusu jinsi wanavyotathmini na kupunguza mabadiliko katika mifano yao ya kifedha. Katika makala hii utaona taswira za binary na ordinal classification. Pia utagundua taswira za utabiri.
+[Reference](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf)
+
+## 🎨 Sanaa, Utamaduni, na Fasihi
+
+Katika sanaa, kwa mfano katika uandishi wa habari, kuna matatizo mengi ya kuvutia. Kugundua habari za uongo ni tatizo kubwa kwani imethibitishwa kuathiri maoni ya watu na hata kupindua demokrasia. Makumbusho pia yanaweza kufaidika kwa kutumia ML katika kila kitu kuanzia kutafuta viungo kati ya vitu hadi upangaji wa rasilimali.
+
+### Kugundua habari za uongo
+
+Kugundua habari za uongo kumegeuka kuwa mchezo wa paka na panya katika vyombo vya habari vya leo. Katika makala hii, watafiti wanapendekeza kwamba mfumo unaochanganya mbinu kadhaa za ML tulizojifunza unaweza kujaribiwa na mfano bora kutekelezwa: "Mfumo huu unategemea usindikaji wa lugha asilia kutoa vipengele kutoka kwa data na kisha vipengele hivi vinatumika kwa mafunzo ya classifiers za kujifunza mashine kama Naive Bayes, Support Vector Machine (SVM), Random Forest (RF), Stochastic Gradient Descent (SGD), na Logistic Regression (LR)."
+[Reference](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf)
+
+Makala hii inaonyesha jinsi kuchanganya nyanja tofauti za ML kunaweza kutoa matokeo ya kuvutia ambayo yanaweza kusaidia kuzuia habari za uongo kuenea na kuleta madhara halisi; katika kesi hii, msukumo ulikuwa kuenea kwa uvumi kuhusu matibabu ya COVID ambayo yalisababisha vurugu za umati.
+
+### ML ya Makumbusho
+
+Makumbusho yako katika ukingo wa mapinduzi ya AI ambapo kuorodhesha na kudijiti mkusanyiko na kutafuta viungo kati ya vitu vinakuwa rahisi kadri teknolojia inavyosonga mbele. Miradi kama [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources.) inasaidia kufungua siri za makusanyo yasiyofikika kama vile Hifadhi ya Vatican. Lakini, kipengele cha biashara cha makumbusho kinanufaika na mifano ya ML pia.
+
+Kwa mfano, Taasisi ya Sanaa ya Chicago ilijenga mifano ya kutabiri kile ambacho watazamaji wanapendezwa nacho na wakati watatembelea maonyesho. Lengo ni kuunda uzoefu wa wageni uliobinafsishwa na ulioboreshwa kila wakati mtumiaji anapotembelea makumbusho. "Wakati wa mwaka wa fedha wa 2017, mfano ulitabiri mahudhurio na mapato kwa usahihi wa asilimia 1, anasema Andrew Simnick, makamu wa rais mwandamizi katika Taasisi ya Sanaa."
+[Reference](https://www.chicagobusiness.com/article/20180518/ISSUE01/180519840/art-institute-of-chicago-uses-data-to-make-exhibit-choices)
+
+## 🏷 Masoko
+
+### Ugawaji wa wateja
+
+Mikakati bora zaidi ya masoko inalenga wateja kwa njia tofauti kulingana na makundi mbalimbali. Katika makala hii, matumizi ya algorithms za Clustering yanajadiliwa kusaidia masoko tofauti. Masoko tofauti husaidia kampuni kuboresha utambuzi wa chapa, kufikia wateja zaidi, na kupata pesa zaidi.
+[Reference](https://ai.inqline.com/machine-learning-for-marketing-customer-segmentation/)
+
+## 🚀 Changamoto
+
+Tambua sekta nyingine inayofaidika na baadhi ya mbinu ulizojifunza katika mtaala huu, na ugundue jinsi inavyotumia ML.
+## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Mapitio na Kujisomea
+
+Timu ya sayansi ya data ya Wayfair ina video kadhaa za kuvutia kuhusu jinsi wanavyotumia ML katika kampuni yao. Inafaa [kuangalia](https://www.youtube.com/channel/UCe2PjkQXqOuwkW1gw6Ameuw/videos)!
+
+## Kazi
+
+[Utafutaji wa ML](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
diff --git a/translations/sw/9-Real-World/1-Applications/assignment.md b/translations/sw/9-Real-World/1-Applications/assignment.md
new file mode 100644
index 00000000..65e9207d
--- /dev/null
+++ b/translations/sw/9-Real-World/1-Applications/assignment.md
@@ -0,0 +1,27 @@
+
+# Shindano la Kutafuta Maarifa ya ML
+
+## Maelekezo
+
+Katika somo hili, ulijifunza kuhusu matumizi mengi ya maisha halisi yaliyotatuliwa kwa kutumia ML ya kawaida. Ingawa matumizi ya deep learning, mbinu mpya na zana katika AI, pamoja na kutumia neural networks yamechangia kuharakisha utengenezaji wa zana za kusaidia sekta hizi, ML ya kawaida kwa kutumia mbinu zilizofundishwa katika mtaala huu bado ina thamani kubwa.
+
+Katika kazi hii, fikiria kwamba unashiriki katika hackathon. Tumia kile ulichojifunza katika mtaala huu kupendekeza suluhisho kwa kutumia ML ya kawaida kutatua tatizo katika mojawapo ya sekta zilizojadiliwa katika somo hili. Tengeneza uwasilishaji ambapo unajadili jinsi utakavyotekeleza wazo lako. Alama za ziada ikiwa utaweza kukusanya data ya mfano na kujenga mfano wa ML kuunga mkono dhana yako!
+
+## Rubric
+
+| Kigezo | Kiwango cha Juu | Kiwango cha Kutosha | Kinahitaji Kuboresha |
+| -------- | ------------------------------------------------------------------- | ------------------------------------------------ | ---------------------- |
+| | Uwasilishaji wa PowerPoint unawasilishwa - alama za ziada kwa kujenga mfano | Uwasilishaji wa msingi, usio wa ubunifu unawasilishwa | Kazi haijakamilika |
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati asilia katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/9-Real-World/2-Debugging-ML-Models/README.md b/translations/sw/9-Real-World/2-Debugging-ML-Models/README.md
new file mode 100644
index 00000000..56ea92e1
--- /dev/null
+++ b/translations/sw/9-Real-World/2-Debugging-ML-Models/README.md
@@ -0,0 +1,178 @@
+
+# Postscript: Uchanganuzi wa Modeli ya Kujifunza kwa Mashine kwa kutumia Vipengele vya Dashibodi ya AI Inayowajibika
+
+## [Maswali ya awali ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+## Utangulizi
+
+Kujifunza kwa mashine kunaathiri maisha yetu ya kila siku. AI inajipenyeza katika baadhi ya mifumo muhimu zaidi inayotugusa sisi kama watu binafsi na jamii yetu, kama vile afya, fedha, elimu, na ajira. Kwa mfano, mifumo na modeli zinahusika katika kazi za maamuzi ya kila siku, kama vile utambuzi wa magonjwa au kugundua udanganyifu. Kwa sababu ya maendeleo ya AI na kasi ya matumizi yake, matarajio ya kijamii yanabadilika na kanuni zinakua. Tunaendelea kuona maeneo ambapo mifumo ya AI inakosa matarajio; inafichua changamoto mpya; na serikali zinaanza kudhibiti suluhisho za AI. Kwa hivyo, ni muhimu kwamba modeli hizi zichunguzwe ili kutoa matokeo ya haki, ya kuaminika, ya kujumuisha, ya uwazi, na yenye uwajibikaji kwa kila mtu.
+
+Katika mtaala huu, tutachunguza zana za vitendo zinazoweza kutumika kutathmini ikiwa modeli ina masuala ya AI inayowajibika. Mbinu za jadi za uchanganuzi wa modeli za kujifunza kwa mashine mara nyingi zinategemea hesabu za kiasi kama vile usahihi wa jumla au hasara ya makosa ya wastani. Fikiria kinachoweza kutokea wakati data unayotumia kujenga modeli hizi inakosa baadhi ya demografia, kama vile rangi, jinsia, mtazamo wa kisiasa, dini, au inawakilisha demografia hizo kwa uwiano usio sawa. Je, kuhusu pale ambapo matokeo ya modeli yanatafsiriwa kupendelea demografia fulani? Hii inaweza kuanzisha uwakilishi wa kupita kiasi au wa chini wa makundi haya nyeti, na kusababisha masuala ya haki, ujumuishaji, au uaminifu kutoka kwa modeli. Sababu nyingine ni kwamba modeli za kujifunza kwa mashine zinachukuliwa kuwa "masanduku meusi," jambo linalofanya iwe vigumu kuelewa na kueleza kinachosababisha utabiri wa modeli. Haya yote ni changamoto ambazo wanasayansi wa data na watengenezaji wa AI wanakabiliana nazo wanapokosa zana za kutosha za kuchunguza na kutathmini haki au uaminifu wa modeli.
+
+Katika somo hili, utajifunza kuhusu kuchunguza modeli zako kwa kutumia:
+
+- **Uchanganuzi wa Makosa**: Tambua maeneo katika usambazaji wa data yako ambapo modeli ina viwango vya juu vya makosa.
+- **Muhtasari wa Modeli**: Fanya uchanganuzi wa kulinganisha kati ya makundi tofauti ya data ili kugundua tofauti katika vipimo vya utendaji wa modeli yako.
+- **Uchanganuzi wa Data**: Chunguza maeneo ambapo kuna uwakilishi wa kupita kiasi au wa chini wa data yako, jambo linaloweza kupotosha modeli yako kupendelea demografia moja dhidi ya nyingine.
+- **Umuhimu wa Vipengele**: Elewa ni vipengele gani vinavyoendesha utabiri wa modeli yako kwa kiwango cha jumla au cha ndani.
+
+## Mahitaji ya awali
+
+Kama mahitaji ya awali, tafadhali pitia [Zana za AI Inayowajibika kwa watengenezaji](https://www.microsoft.com/ai/ai-lab-responsible-ai-dashboard)
+
+> 
+
+## Uchanganuzi wa Makosa
+
+Vipimo vya jadi vya utendaji wa modeli vinavyotumika kupima usahihi mara nyingi ni hesabu zinazotegemea utabiri sahihi dhidi ya usio sahihi. Kwa mfano, kuamua kwamba modeli ni sahihi kwa 89% ya muda na ina hasara ya makosa ya 0.001 inaweza kuchukuliwa kuwa utendaji mzuri. Makosa mara nyingi hayajasambazwa kwa usawa katika seti yako ya data. Unaweza kupata alama ya usahihi ya 89% ya modeli lakini kugundua kwamba kuna maeneo tofauti ya data yako ambapo modeli inashindwa kwa 42% ya muda. Matokeo ya mifumo hii ya kushindwa na makundi fulani ya data yanaweza kusababisha masuala ya haki au uaminifu. Ni muhimu kuelewa maeneo ambapo modeli inafanya vizuri au vibaya. Maeneo ya data ambapo kuna idadi kubwa ya makosa katika modeli yako yanaweza kuwa demografia muhimu ya data.
+
+
+
+Sehemu ya Uchanganuzi wa Makosa kwenye dashibodi ya RAI inaonyesha jinsi kushindwa kwa modeli kunavyosambazwa katika makundi mbalimbali kwa kutumia taswira ya mti. Hii ni muhimu katika kutambua vipengele au maeneo ambapo kuna kiwango cha juu cha makosa katika seti yako ya data. Kwa kuona mahali ambapo makosa mengi ya modeli yanatoka, unaweza kuanza kuchunguza chanzo chake. Unaweza pia kuunda makundi ya data ili kufanya uchanganuzi. Makundi haya ya data husaidia katika mchakato wa uchanganuzi ili kuamua kwa nini utendaji wa modeli ni mzuri katika kundi moja lakini una makosa katika jingine.
+
+
+
+Viashiria vya taswira kwenye ramani ya mti husaidia katika kutambua maeneo yenye matatizo haraka. Kwa mfano, kivuli cha rangi nyekundu kilicho giza zaidi kwenye nodi ya mti kinaonyesha kiwango cha juu cha makosa.
+
+Ramani ya joto ni kipengele kingine cha taswira ambacho watumiaji wanaweza kutumia kuchunguza kiwango cha makosa kwa kutumia kipengele kimoja au viwili ili kupata mchango wa makosa ya modeli katika seti nzima ya data au makundi.
+
+
+
+Tumia uchanganuzi wa makosa unapohitaji:
+
+* Kupata uelewa wa kina wa jinsi kushindwa kwa modeli kunavyosambazwa katika seti ya data na vipengele kadhaa vya ingizo.
+* Kuvunja vipimo vya utendaji wa jumla ili kugundua makundi yenye makosa kwa njia ya kiotomatiki ili kuarifu hatua zako za kupunguza.
+
+## Muhtasari wa Modeli
+
+Kutathmini utendaji wa modeli ya kujifunza kwa mashine kunahitaji kupata uelewa wa jumla wa tabia yake. Hii inaweza kufanyika kwa kupitia zaidi ya kipimo kimoja kama vile kiwango cha makosa, usahihi, kumbukumbu, usahihi, au MAE (Makosa ya Wastani ya Kawaida) ili kupata tofauti kati ya vipimo vya utendaji. Kipimo kimoja cha utendaji kinaweza kuonekana kizuri, lakini makosa yanaweza kufichuliwa katika kipimo kingine. Aidha, kulinganisha vipimo kwa tofauti katika seti nzima ya data au makundi husaidia kufichua maeneo ambapo modeli inafanya vizuri au vibaya. Hii ni muhimu hasa katika kuona utendaji wa modeli kati ya vipengele nyeti dhidi ya visivyo nyeti (mfano, rangi ya mgonjwa, jinsia, au umri) ili kufichua uwezekano wa kutokuwa na haki ambao modeli inaweza kuwa nao. Kwa mfano, kugundua kwamba modeli ina makosa zaidi katika kundi lenye vipengele nyeti kunaweza kufichua uwezekano wa kutokuwa na haki ambao modeli inaweza kuwa nao.
+
+Sehemu ya Muhtasari wa Modeli kwenye dashibodi ya RAI husaidia si tu katika kuchanganua vipimo vya utendaji wa uwakilishi wa data katika kundi, lakini pia inawapa watumiaji uwezo wa kulinganisha tabia ya modeli katika makundi tofauti.
+
+
+
+Kipengele cha uchanganuzi wa msingi wa vipengele cha sehemu hii kinawaruhusu watumiaji kupunguza makundi ya data ndani ya kipengele fulani ili kutambua kasoro kwa kiwango cha kina. Kwa mfano, dashibodi ina akili ya kujengwa ndani ya kiotomatiki ya kuunda makundi kwa kipengele kilichochaguliwa na mtumiaji (mfano, *"time_in_hospital < 3"* au *"time_in_hospital >= 7"*). Hii inamwezesha mtumiaji kutenga kipengele fulani kutoka kwa kundi kubwa la data ili kuona ikiwa ni mshawishi muhimu wa matokeo yenye makosa ya modeli.
+
+
+
+Sehemu ya Muhtasari wa Modeli inaunga mkono aina mbili za vipimo vya tofauti:
+
+**Tofauti katika utendaji wa modeli**: Vipimo hivi vinahesabu tofauti (tofauti) katika thamani za kipimo cha utendaji kilichochaguliwa katika makundi ya data. Hapa kuna mifano michache:
+
+* Tofauti katika kiwango cha usahihi
+* Tofauti katika kiwango cha makosa
+* Tofauti katika usahihi
+* Tofauti katika kumbukumbu
+* Tofauti katika makosa ya wastani ya kawaida (MAE)
+
+**Tofauti katika kiwango cha uteuzi**: Kipimo hiki kina tofauti katika kiwango cha uteuzi (utabiri mzuri) kati ya makundi. Mfano wa hili ni tofauti katika viwango vya idhini ya mkopo. Kiwango cha uteuzi kinamaanisha sehemu ya alama za data katika kila darasa zilizoorodheshwa kama 1 (katika uainishaji wa binary) au usambazaji wa thamani za utabiri (katika regression).
+
+## Uchanganuzi wa Data
+
+> "Ukitesa data vya kutosha, itakiri chochote" - Ronald Coase
+
+Kauli hii inaonekana kali, lakini ni kweli kwamba data inaweza kudanganywa ili kuunga mkono hitimisho lolote. Udanganyifu kama huo wakati mwingine unaweza kutokea bila kukusudia. Kama binadamu, sote tuna upendeleo, na mara nyingi ni vigumu kujua kwa makusudi wakati unaleta upendeleo katika data. Kuhakikisha haki katika AI na kujifunza kwa mashine bado ni changamoto ngumu.
+
+Data ni eneo kubwa la upofu kwa vipimo vya jadi vya utendaji wa modeli. Unaweza kuwa na alama za usahihi wa juu, lakini hii haionyeshi kila mara upendeleo wa msingi wa data ambao unaweza kuwa katika seti yako ya data. Kwa mfano, ikiwa seti ya data ya wafanyakazi ina 27% ya wanawake katika nafasi za utendaji katika kampuni na 73% ya wanaume katika kiwango sawa, modeli ya AI ya kutangaza kazi iliyofunzwa kwenye data hii inaweza kulenga zaidi hadhira ya kiume kwa nafasi za kazi za ngazi ya juu. Kuwa na usawa huu katika data kulipotosha utabiri wa modeli kupendelea jinsia moja. Hii inaonyesha suala la haki ambapo kuna upendeleo wa kijinsia katika modeli ya AI.
+
+Sehemu ya Uchanganuzi wa Data kwenye dashibodi ya RAI husaidia kutambua maeneo ambapo kuna uwakilishi wa kupita kiasi au wa chini katika seti ya data. Inasaidia watumiaji kugundua chanzo cha makosa na masuala ya haki yanayoletwa na usawa wa data au ukosefu wa uwakilishi wa kundi fulani la data. Hii inawapa watumiaji uwezo wa kutazama seti za data kulingana na matokeo yaliyotabiriwa na halisi, makundi ya makosa, na vipengele maalum. Wakati mwingine kugundua kundi la data lisilowakilishwa vizuri kunaweza pia kufichua kwamba modeli haijifunzi vizuri, hivyo makosa ya juu. Kuwa na modeli yenye upendeleo wa data si tu suala la haki bali inaonyesha kwamba modeli si ya kujumuisha au ya kuaminika.
+
+
+
+Tumia uchanganuzi wa data unapohitaji:
+
+* Kuchunguza takwimu za seti yako ya data kwa kuchagua vichujio tofauti ili kugawanya data yako katika vipimo tofauti (pia vinajulikana kama makundi).
+* Kuelewa usambazaji wa seti yako ya data katika makundi tofauti na vikundi vya vipengele.
+* Kuamua ikiwa matokeo yako yanayohusiana na haki, uchanganuzi wa makosa, na usababishi (yanayotokana na vipengele vingine vya dashibodi) ni matokeo ya usambazaji wa seti yako ya data.
+* Kuamua maeneo ya kukusanya data zaidi ili kupunguza makosa yanayotokana na masuala ya uwakilishi, kelele za lebo, kelele za vipengele, upendeleo wa lebo, na mambo yanayofanana.
+
+## Ufafanuzi wa Modeli
+
+Modeli za kujifunza kwa mashine mara nyingi huchukuliwa kuwa masanduku meusi. Kuelewa ni vipengele gani muhimu vya data vinavyoendesha utabiri wa modeli inaweza kuwa changamoto. Ni muhimu kutoa uwazi kuhusu kwa nini modeli inatoa utabiri fulani. Kwa mfano, ikiwa mfumo wa AI unatabiri kwamba mgonjwa mwenye kisukari yuko katika hatari ya kurudi hospitalini ndani ya siku 30, unapaswa kuwa na uwezo wa kutoa data inayounga mkono utabiri wake. Kuwa na viashiria vya data vinavyounga mkono huleta uwazi ili kusaidia madaktari au hospitali kufanya maamuzi yaliyojengwa vizuri. Aidha, kuwa na uwezo wa kueleza kwa nini modeli ilitoa utabiri kwa mgonjwa mmoja mmoja huwezesha uwajibikaji kwa kanuni za afya. Unapotumia modeli za kujifunza kwa mashine kwa njia zinazogusa maisha ya watu, ni muhimu kuelewa na kueleza kinachosababisha tabia ya modeli. Ufafanuzi na uelewa wa modeli husaidia kujibu maswali katika hali kama:
+
+* Uchanganuzi wa modeli: Kwa nini modeli yangu ilifanya kosa hili? Ninawezaje kuboresha modeli yangu?
+* Ushirikiano wa binadamu na AI: Ninawezaje kuelewa na kuamini maamuzi ya modeli?
+* Uzingatiaji wa kanuni: Je, modeli yangu inakidhi mahitaji ya kisheria?
+
+Sehemu ya Umuhimu wa Vipengele kwenye dashibodi ya RAI inakusaidia kuchunguza na kupata uelewa wa kina wa jinsi modeli inavyotoa utabiri. Pia ni zana muhimu kwa wataalamu wa kujifunza kwa mashine na watoa maamuzi kueleza na kuonyesha ushahidi wa vipengele vinavyoathiri tabia ya modeli kwa kufuata kanuni. Watumiaji wanaweza kuchunguza maelezo ya jumla na ya ndani ili kuthibitisha ni vipengele gani vinavyoendesha utabiri wa modeli. Maelezo ya jumla yanaorodhesha vipengele vya juu vilivyoathiri utabiri wa jumla wa modeli. Maelezo ya ndani yanaonyesha ni vipengele gani vilisababisha utabiri wa modeli kwa kesi moja. Uwezo wa kutathmini maelezo ya ndani pia ni muhimu katika kuchunguza au kukagua kesi maalum ili kuelewa na kufafanua kwa nini modeli ilitoa utabiri sahihi au usio sahihi.
+
+
+
+* Maelezo ya jumla: Kwa mfano, ni vipengele gani vinavyoathiri tabia ya jumla ya modeli ya kurudi hospitalini kwa wagonjwa wenye kisukari?
+* Maelezo ya ndani: Kwa mfano, kwa nini mgonjwa mwenye kisukari mwenye umri wa zaidi ya miaka 60 na aliye na historia ya kulazwa hospitalini alitabiriwa kurudi au kutorudi hospitalini ndani ya siku 30?
+
+Katika mchakato wa kuchunguza utendaji wa modeli katika makundi tofauti, Umuhimu wa Vipengele unaonyesha kiwango cha athari kipengele kinacholeta katika makundi hayo. Husaidia kufichua kasoro wakati wa kulinganisha kiwango cha ushawishi kipengele kinacholeta katika kuendesha utabiri wenye makosa wa modeli. Sehemu ya Umuhimu wa Vipengele inaweza kuonyesha ni thamani gani katika kipengele zilizoathiri kwa njia chanya au hasi matokeo ya modeli. Kwa mfano, ikiwa modeli ilitoa utabiri usio sahihi, sehemu hii inakupa uwezo wa kuchunguza kwa kina na kubaini ni vipengele au thamani za vipengele vilivyoendesha utabiri huo. Kiwango hiki cha maelezo husaidia si tu katika uchanganuzi bali pia hutoa uwazi na uwajibikaji katika hali za ukaguzi. Hatimaye, sehemu hii inaweza kukusaidia kutambua masuala ya haki. Kwa mfano, ikiwa kipengele nyeti kama vile kabila au jinsia kina ushawishi mkubwa katika kuendesha utabiri wa modeli, hii inaweza kuwa ishara ya upendeleo wa rangi au jinsia katika modeli.
+
+
+
+Tumia uelewa wa modeli unapohitaji:
+
+* Kuamua jinsi utabiri wa mfumo wako wa AI unavyoweza kuaminika kwa kuelewa ni vipengele gani vilivyo muhimu zaidi kwa utabiri.
+* Kukaribia uchanganuzi wa modeli yako kwa kuielewa kwanza na kutambua ikiwa modeli inatumia vipengele vyenye afya au tu uhusiano wa uwongo.
+* Kufichua vyanzo vya uwezekano wa kutokuwa na haki kwa kuelewa ikiwa modeli inategemea vipengele nyeti au vipengele vinavyohusiana sana navyo.
+* Kujenga uaminifu wa mtumiaji katika maamuzi ya modeli yako kwa kutoa maelezo ya ndani ili kuonyesha matokeo yake.
+* Kukamilisha ukaguzi wa kanuni wa mfumo wa AI ili kuthibitisha modeli na kufuatilia athari za maamuzi ya modeli kwa binadamu.
+
+## Hitimisho
+
+Vipengele vyote vya dashibodi ya RAI ni zana za vitendo zinazokusaidia kujenga modeli za kujifunza kwa mashine ambazo ni salama zaidi na zinazoaminika
+- **Uwiano wa kupita kiasi au wa chini**. Wazo ni kwamba kundi fulani halionekani katika taaluma fulani, na huduma au kazi yoyote inayozidi kuendeleza hali hiyo inachangia madhara.
+
+### Dashibodi ya Azure RAI
+
+[Dashibodi ya Azure RAI](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) imejengwa kwa kutumia zana za chanzo huria zilizotengenezwa na taasisi za kitaaluma na mashirika yanayoongoza, ikiwemo Microsoft. Zana hizi ni muhimu kwa wanasayansi wa data na watengenezaji wa AI ili kuelewa vyema tabia ya modeli, kugundua na kupunguza masuala yasiyofaa kutoka kwa modeli za AI.
+
+- Jifunze jinsi ya kutumia vipengele tofauti kwa kuangalia [hati za dashibodi ya RAI.](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu)
+
+- Angalia baadhi ya [notibuku za mfano za dashibodi ya RAI](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) kwa ajili ya kutatua changamoto za AI inayowajibika zaidi katika Azure Machine Learning.
+
+---
+## 🚀 Changamoto
+
+Ili kuzuia upendeleo wa takwimu au data kuingizwa tangu mwanzo, tunapaswa:
+
+- kuwa na utofauti wa asili na mitazamo miongoni mwa watu wanaofanya kazi kwenye mifumo
+- kuwekeza katika seti za data zinazowakilisha utofauti wa jamii yetu
+- kuendeleza mbinu bora za kugundua na kurekebisha upendeleo unapojitokeza
+
+Fikiria hali halisi ambapo kutokuwa sawa kunaonekana katika ujenzi na matumizi ya modeli. Ni mambo gani mengine tunapaswa kuzingatia?
+
+## [Jaribio baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+## Mapitio na Kujisomea
+
+Katika somo hili, umejifunza baadhi ya zana za vitendo za kuingiza AI inayowajibika katika ujifunzaji wa mashine.
+
+Tazama warsha hii ili kuchunguza zaidi mada hizi:
+
+- Dashibodi ya AI Inayowajibika: Duka moja kwa kuendesha RAI kwa vitendo na Besmira Nushi na Mehrnoosh Sameki
+
+[](https://www.youtube.com/watch?v=f1oaDNl3djg "Dashibodi ya AI Inayowajibika: Duka moja kwa kuendesha RAI kwa vitendo na Besmira Nushi na Mehrnoosh Sameki")
+
+> 🎥 Bofya picha hapo juu kwa video: Dashibodi ya AI Inayowajibika: Duka moja kwa kuendesha RAI kwa vitendo na Besmira Nushi na Mehrnoosh Sameki
+
+Rejelea nyenzo zifuatazo ili kujifunza zaidi kuhusu AI inayowajibika na jinsi ya kujenga modeli zinazoweza kuaminika zaidi:
+
+- Zana za dashibodi ya RAI za Microsoft kwa kutatua changamoto za modeli za ML: [Rasilimali za zana za AI inayowajibika](https://aka.ms/rai-dashboard)
+
+- Chunguza zana za AI inayowajibika: [Github](https://github.com/microsoft/responsible-ai-toolbox)
+
+- Kituo cha rasilimali cha RAI cha Microsoft: [Rasilimali za AI Inayowajibika – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Kikundi cha utafiti cha FATE cha Microsoft: [FATE: Uadilifu, Uwajibikaji, Uwazi, na Maadili katika AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+## Kazi
+
+[Chunguza dashibodi ya RAI](assignment.md)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/9-Real-World/2-Debugging-ML-Models/assignment.md b/translations/sw/9-Real-World/2-Debugging-ML-Models/assignment.md
new file mode 100644
index 00000000..caabfe84
--- /dev/null
+++ b/translations/sw/9-Real-World/2-Debugging-ML-Models/assignment.md
@@ -0,0 +1,25 @@
+
+# Chunguza dashibodi ya AI Inayowajibika (RAI)
+
+## Maelekezo
+
+Katika somo hili ulijifunza kuhusu dashibodi ya RAI, seti ya vipengele vilivyojengwa kwa zana za "chanzo huria" ili kusaidia wanasayansi wa data kufanya uchambuzi wa makosa, uchunguzi wa data, tathmini ya usawa, ufafanuzi wa modeli, tathmini ya hali ya "counterfact/what-if" na uchambuzi wa kisababishi kwenye mifumo ya AI. Kwa kazi hii, chunguza baadhi ya [notebooks](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) za mfano za dashibodi ya RAI na toa ripoti ya matokeo yako katika karatasi au uwasilishaji.
+
+## Rubric
+
+| Vigezo | Bora Zaidi | Inayotosheleza | Inahitaji Kuboresha |
+| ------- | --------- | ------------- | ------------------- |
+| | Karatasi au uwasilishaji wa PowerPoint unawasilishwa ukijadili vipengele vya dashibodi ya RAI, notebook iliyotumika, na hitimisho lililotolewa kutokana na kuitumia | Karatasi inawasilishwa bila hitimisho | Hakuna karatasi inayowasilishwa |
+
+---
+
+**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
diff --git a/translations/sw/9-Real-World/README.md b/translations/sw/9-Real-World/README.md
new file mode 100644
index 00000000..fab2bce4
--- /dev/null
+++ b/translations/sw/9-Real-World/README.md
@@ -0,0 +1,32 @@
+
+# Postscript: Matumizi Halisi ya Kujifunza Mashine ya Kawaida
+
+Katika sehemu hii ya mtaala, utatambulishwa kwa baadhi ya matumizi halisi ya Kujifunza Mashine ya Kawaida. Tumetafuta kwa kina mtandaoni ili kupata makala na nyaraka kuhusu matumizi ambayo yametumia mikakati hii, tukiepuka mitandao ya neva, kujifunza kwa kina, na AI kadri iwezekanavyo. Jifunze jinsi ML inavyotumika katika mifumo ya biashara, matumizi ya kiikolojia, fedha, sanaa na utamaduni, na zaidi.
+
+
+
+> Picha na Alexis Fauvet kwenye Unsplash
+
+## Somo
+
+1. [Matumizi Halisi ya ML](1-Applications/README.md)
+2. [Uchunguzi wa Modeli katika Kujifunza Mashine kwa kutumia vipengele vya dashibodi ya AI yenye Uwajibikaji](2-Debugging-ML-Models/README.md)
+
+## Sifa
+
+"Matumizi Halisi" iliandikwa na timu ya watu, wakiwemo [Jen Looper](https://twitter.com/jenlooper) na [Ornella Altunyan](https://twitter.com/ornelladotcom).
+
+"Uchunguzi wa Modeli katika Kujifunza Mashine kwa kutumia vipengele vya dashibodi ya AI yenye Uwajibikaji" iliandikwa na [Ruth Yakubu](https://twitter.com/ruthieyakubu)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/CODE_OF_CONDUCT.md b/translations/sw/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..c29f839b
--- /dev/null
+++ b/translations/sw/CODE_OF_CONDUCT.md
@@ -0,0 +1,23 @@
+
+# Kanuni za Maadili ya Microsoft Open Source
+
+Mradi huu umechukua [Kanuni za Maadili za Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/).
+
+Rasilimali:
+
+- [Kanuni za Maadili za Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/)
+- [Maswali Yanayoulizwa Mara kwa Mara kuhusu Kanuni za Maadili](https://opensource.microsoft.com/codeofconduct/faq/)
+- Wasiliana na [opencode@microsoft.com](mailto:opencode@microsoft.com) kwa maswali au wasiwasi
+
+---
+
+**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
diff --git a/translations/sw/CONTRIBUTING.md b/translations/sw/CONTRIBUTING.md
new file mode 100644
index 00000000..acc5e869
--- /dev/null
+++ b/translations/sw/CONTRIBUTING.md
@@ -0,0 +1,30 @@
+
+# Kuchangia
+
+Mradi huu unakaribisha michango na mapendekezo. Michango mingi inahitaji wewe
+kukubaliana na Mkataba wa Leseni ya Mchangiaji (CLA) unaoeleza kuwa una haki ya,
+na kwa kweli unatoa, ruhusa kwetu kutumia mchango wako. Kwa maelezo zaidi, tembelea
+https://cla.microsoft.com.
+
+> Muhimu: unapofasiri maandishi katika hifadhi hii, tafadhali hakikisha kuwa hutumii tafsiri ya mashine. Tutathibitisha tafsiri kupitia jamii, kwa hivyo tafadhali changia tu tafsiri katika lugha ambazo unazifahamu vizuri.
+
+Unapowasilisha ombi la kuvuta (pull request), CLA-bot itatambua kiotomatiki ikiwa unahitaji
+kutoa CLA na itaweka alama kwenye PR ipasavyo (mfano, lebo, maoni). Fuata tu
+maelekezo yanayotolewa na bot. Utahitaji kufanya hivi mara moja tu katika hifadhi zote zinazotumia CLA yetu.
+
+Mradi huu umechukua [Kanuni ya Maadili ya Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/).
+Kwa maelezo zaidi angalia [Maswali Yanayoulizwa Mara kwa Mara kuhusu Kanuni ya Maadili](https://opensource.microsoft.com/codeofconduct/faq/)
+au wasiliana na [opencode@microsoft.com](mailto:opencode@microsoft.com) kwa maswali au maoni ya ziada.
+
+---
+
+**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 kutokuelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
\ No newline at end of file
diff --git a/translations/sw/README.md b/translations/sw/README.md
new file mode 100644
index 00000000..b86934cf
--- /dev/null
+++ b/translations/sw/README.md
@@ -0,0 +1,178 @@
+
+[](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
+[](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
+[](http://makeapullrequest.com)
+
+[](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/network/)
+[](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
+
+### 🌐 Msaada wa Lugha Nyingi
+
+#### Inayosaidiwa kupitia GitHub Action (Imefanywa Kiotomatiki & Inasasishwa Kila Wakati)
+
+[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](./README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
+
+#### Jiunge na Jamii
+
+[](https://discord.gg/kzRShWzttr)
+
+# Kujifunza Mashine kwa Kompyuta kwa Kompyuta - Mtaala
+
+> 🌍 Safiri kote ulimwenguni tunapochunguza Kujifunza Mashine kupitia tamaduni za ulimwengu 🌍
+
+Wakili wa Wingu katika Microsoft wanajivunia kutoa mtaala wa wiki 12, masomo 26 kuhusu **Kujifunza Mashine**. Katika mtaala huu, utajifunza kuhusu kile kinachoitwa mara nyingine **kujifunza mashine ya kawaida**, ukitumia hasa maktaba ya Scikit-learn na kuepuka kujifunza kwa kina, ambako kunashughulikiwa katika [mtaala wetu wa AI kwa Kompyuta](https://aka.ms/ai4beginners). Unganisha masomo haya na mtaala wetu wa ['Sayansi ya Takwimu kwa Kompyuta'](https://aka.ms/ds4beginners), pia!
+
+Safiri nasi kote ulimwenguni tunapotumia mbinu hizi za kawaida kwa data kutoka maeneo mengi ya ulimwengu. Kila somo linajumuisha maswali ya awali na ya baada ya somo, maelekezo yaliyoandikwa ya kukamilisha somo, suluhisho, kazi, na zaidi. Mbinu yetu ya mradi inakuwezesha kujifunza huku ukijenga, njia iliyothibitishwa ya kuhakikisha ujuzi mpya unakaa.
+
+**✍️ Shukrani za dhati kwa waandishi wetu** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu na Amy Boyd
+
+**🎨 Shukrani pia kwa wachoraji wetu** Tomomi Imura, Dasani Madipalli, na Jen Looper
+
+**🙏 Shukrani za pekee 🙏 kwa waandishi, wakaguzi, na wachangiaji wa maudhui wa Microsoft Student Ambassador**, hasa Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, na Snigdha Agarwal
+
+**🤩 Shukrani za ziada kwa Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, na Vidushi Gupta kwa masomo yetu ya R!**
+
+# Kuanza
+
+Fuata hatua hizi:
+1. **Fork Hifadhi**: Bonyeza kitufe cha "Fork" kwenye kona ya juu-kulia ya ukurasa huu.
+2. **Clone Hifadhi**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
+
+> [pata rasilimali zote za ziada kwa kozi hii katika mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+**[Wanafunzi](https://aka.ms/student-page)**, ili kutumia mtaala huu, fork hifadhi nzima kwenye akaunti yako ya GitHub na ukamilishe mazoezi peke yako au na kikundi:
+
+- Anza na jaribio la awali la somo.
+- Soma somo na ukamilishe shughuli, ukisimama na kutafakari kila ukaguzi wa maarifa.
+- Jaribu kuunda miradi kwa kuelewa masomo badala ya kuendesha msimbo wa suluhisho; hata hivyo msimbo huo unapatikana katika folda za `/solution` katika kila somo linalohusiana na mradi.
+- Chukua jaribio la baada ya somo.
+- Kamilisha changamoto.
+- Kamilisha kazi.
+- Baada ya kukamilisha kikundi cha masomo, tembelea [Bodi ya Majadiliano](https://github.com/microsoft/ML-For-Beginners/discussions) na "jifunze kwa sauti" kwa kujaza rubriki ya PAT inayofaa. 'PAT' ni Chombo cha Tathmini ya Maendeleo ambacho ni rubriki unayojaza ili kuendeleza kujifunza kwako. Unaweza pia kujibu PAT za wengine ili tujifunze pamoja.
+
+> Kwa masomo zaidi, tunapendekeza kufuata moduli na njia za kujifunza za [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
+
+**Walimu**, tumetoa [mapendekezo kadhaa](for-teachers.md) kuhusu jinsi ya kutumia mtaala huu.
+
+---
+
+## Video za maelezo
+
+Baadhi ya masomo yanapatikana kama video fupi. Unaweza kupata zote hizi ndani ya masomo, au kwenye [orodha ya ML kwa Kompyuta kwenye kituo cha YouTube cha Microsoft Developer](https://aka.ms/ml-beginners-videos) kwa kubonyeza picha hapa chini.
+
+[](https://aka.ms/ml-beginners-videos)
+
+---
+
+## Kutana na Timu
+
+[](https://youtu.be/Tj1XWrDSYJU)
+
+**Gif na** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
+
+> 🎥 Bonyeza picha hapo juu kwa video kuhusu mradi na watu waliouunda!
+
+---
+
+## Mbinu ya Kufundisha
+
+Tumechagua kanuni mbili za kufundisha wakati wa kujenga mtaala huu: kuhakikisha kuwa ni wa vitendo **unaotegemea mradi** na kwamba unajumuisha **maswali ya mara kwa mara**. Aidha, mtaala huu una **mada ya kawaida** ili kuupa mshikamano.
+
+Kwa kuhakikisha kuwa maudhui yanalingana na miradi, mchakato unakuwa wa kuvutia zaidi kwa wanafunzi na uhifadhi wa dhana utaongezeka. Aidha, jaribio la hatari ndogo kabla ya darasa linaweka nia ya mwanafunzi kuelekea kujifunza mada, wakati jaribio la pili baada ya darasa linahakikisha uhifadhi zaidi. Mtaala huu uliundwa kuwa rahisi na wa kufurahisha na unaweza kuchukuliwa kwa ukamilifu au kwa sehemu. Miradi huanza ndogo na kuwa ngumu zaidi mwishoni mwa mzunguko wa wiki 12. Mtaala huu pia unajumuisha maelezo ya mwisho kuhusu matumizi halisi ya ML, ambayo yanaweza kutumika kama alama za ziada au kama msingi wa majadiliano.
+
+> Pata [Kanuni za Maadili](CODE_OF_CONDUCT.md), [Kuchangia](CONTRIBUTING.md), na [Mwongozo wa Tafsiri](TRANSLATIONS.md). Tunakaribisha maoni yako ya kujenga!
+
+## Kila somo linajumuisha
+
+- sketchnote ya hiari
+- video ya ziada ya hiari
+- video ya maelezo (baadhi ya masomo tu)
+- [jaribio la awali la somo](https://ff-quizzes.netlify.app/en/ml/)
+- somo lililoandikwa
+- kwa masomo yanayotegemea mradi, mwongozo wa hatua kwa hatua wa jinsi ya kujenga mradi
+- ukaguzi wa maarifa
+- changamoto
+- usomaji wa ziada
+- kazi
+- [jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
+
+> **Kumbuka kuhusu lugha**: Masomo haya yameandikwa hasa kwa Python, lakini mengi yanapatikana pia kwa R. Ili kukamilisha somo la R, nenda kwenye folda ya `/solution` na utafute masomo ya R. Yanajumuisha kiendelezi cha .rmd ambacho kinawakilisha faili ya **R Markdown** ambayo inaweza kufafanuliwa kwa urahisi kama mchanganyiko wa `vipande vya msimbo` (wa R au lugha nyingine) na `kichwa cha YAML` (kinachoongoza jinsi ya kuunda matokeo kama PDF) katika hati ya `Markdown`. Kwa hivyo, inatumika kama mfumo bora wa uandishi wa sayansi ya data kwa kuwa inakuwezesha kuchanganya msimbo wako, matokeo yake, na mawazo yako kwa kukuruhusu kuyaandika katika Markdown. Aidha, hati za R Markdown zinaweza kutolewa kwa fomati za matokeo kama PDF, HTML, au Word.
+
+> **Kumbuka kuhusu maswali**: Maswali yote yamejumuishwa katika [folda ya Quiz App](../../quiz-app), kwa jumla ya maswali 52 ya maswali matatu kila moja. Yameunganishwa kutoka ndani ya masomo lakini programu ya maswali inaweza kuendeshwa ndani; fuata maelekezo katika folda ya `quiz-app` ili kuendesha ndani au kupeleka kwenye Azure.
+
+| Nambari ya Somo | Mada | Kikundi cha Somo | Malengo ya Kujifunza | Somo Lililounganishwa | Mwandishi |
+| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
+| 01 | Utangulizi wa kujifunza mashine | [Utangulizi](1-Introduction/README.md) | Jifunze dhana za msingi za kujifunza mashine | [Somo](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
+| 02 | Historia ya kujifunza mashine | [Utangulizi](1-Introduction/README.md) | Jifunze historia ya msingi ya uwanja huu | [Somo](1-Introduction/2-history-of-ML/README.md) | Jen na Amy |
+| 03 | Haki na kujifunza mashine | [Utangulizi](1-Introduction/README.md) | Ni masuala gani muhimu ya kifalsafa kuhusu haki ambayo wanafunzi wanapaswa kuzingatia wanapojenga na kutumia mifano ya ML? | [Somo](1-Introduction/3-fairness/README.md) | Tomomi |
+| 04 | Mbinu za kujifunza kwa mashine | [Introduction](1-Introduction/README.md) | Ni mbinu gani watafiti wa ML hutumia kujenga mifano ya ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris na Jen |
+| 05 | Utangulizi wa regression | [Regression](2-Regression/README.md) | Anza na Python na Scikit-learn kwa mifano ya regression |
+
|
+| 09 | Tovuti ya Mtandao 🔌 | [Web App](3-Web-App/README.md) | Jenga tovuti ya mtandao kutumia mfano uliyojifunza | [Python](3-Web-App/1-Web-App/README.md) | Jen |
+| 10 | Utangulizi wa uainishaji | [Classification](4-Classification/README.md) | Safisha, andaa, na onyesha data yako; utangulizi wa uainishaji |
|
+| 13 | Vyakula vitamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Jenga tovuti ya mapendekezo kwa kutumia mfano wako | [Python](4-Classification/4-Applied/README.md) | Jen |
+| 14 | Utangulizi wa clustering | [Clustering](5-Clustering/README.md) | Safisha, andaa, na onyesha data yako; Utangulizi wa clustering |
|
+| 16 | Utangulizi wa usindikaji wa lugha asilia ☕️ | [Natural language processing](6-NLP/README.md) | Jifunze misingi ya NLP kwa kujenga bot rahisi | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
+| 17 | Kazi za kawaida za NLP ☕️ | [Natural language processing](6-NLP/README.md) | Panua maarifa yako ya NLP kwa kuelewa kazi za kawaida zinazohitajika wakati wa kushughulikia miundo ya lugha | [Python](6-NLP/2-Tasks/README.md) | Stephen |
+| 18 | Tafsiri na uchambuzi wa hisia ♥️ | [Natural language processing](6-NLP/README.md) | Tafsiri na uchambuzi wa hisia na Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
+| 19 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia na hakiki za hoteli 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
+| 20 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia na hakiki za hoteli 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
+| 21 | Utangulizi wa utabiri wa mfululizo wa muda | [Time series](7-TimeSeries/README.md) | Utangulizi wa utabiri wa mfululizo wa muda | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
+| 22 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa muda na ARIMA | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa muda na ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
+| 23 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa muda na SVR | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa muda na Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
+| 24 | Utangulizi wa kujifunza kwa kuimarisha | [Reinforcement learning](8-Reinforcement/README.md) | Utangulizi wa kujifunza kwa kuimarisha na Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
+| 25 | Msaidie Peter kuepuka mbwa mwitu! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym ya kujifunza kwa kuimarisha | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
+| Postscript | Matukio na matumizi halisi ya ML | [ML in the Wild](9-Real-World/README.md) | Matumizi halisi ya kuvutia na kufichua ya ML ya kawaida | [Lesson](9-Real-World/1-Applications/README.md) | Team |
+| Postscript | Urekebishaji wa Mfano katika ML kwa kutumia dashibodi ya RAI | [ML in the Wild](9-Real-World/README.md) | Urekebishaji wa Mfano katika Kujifunza kwa Mashine kwa kutumia vipengele vya dashibodi ya AI inayowajibika | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
+
+> [tafuta rasilimali zote za ziada kwa kozi hii katika mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+## Ufikiaji wa nje ya mtandao
+
+Unaweza kuendesha nyaraka hizi nje ya mtandao kwa kutumia [Docsify](https://docsify.js.org/#/). Fork repo hii, [sakinisha Docsify](https://docsify.js.org/#/quickstart) kwenye mashine yako ya ndani, kisha katika folda ya mizizi ya repo hii, andika `docsify serve`. Tovuti itahudumiwa kwenye bandari 3000 kwenye localhost yako: `localhost:3000`.
+
+## PDFs
+
+Pata pdf ya mtaala na viungo [hapa](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
+
+
+## 🎒 Kozi Nyingine
+
+Timu yetu inazalisha kozi nyingine! Angalia:
+
+- [Generative AI for Beginners](https://aka.ms/genai-beginners)
+- [Generative AI for Beginners .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
+- [Generative AI with JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
+- [Generative AI with Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
+- [AI for Beginners](https://aka.ms/ai-beginners)
+- [Data Science for Beginners](https://aka.ms/datascience-beginners)
+- [ML for Beginners](https://aka.ms/ml-beginners)
+- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101)
+- [Web Dev for Beginners](https://aka.ms/webdev-beginners)
+- [IoT for Beginners](https://aka.ms/iot-beginners)
+- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners)
+- [Mastering GitHub Copilot for Paired Programming](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
+- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
+- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au 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
diff --git a/translations/sw/SECURITY.md b/translations/sw/SECURITY.md
new file mode 100644
index 00000000..c599e6ce
--- /dev/null
+++ b/translations/sw/SECURITY.md
@@ -0,0 +1,51 @@
+
+## Usalama
+
+Microsoft inachukulia usalama wa bidhaa na huduma zake kwa uzito, ikijumuisha hifadhi zote za msimbo wa chanzo zinazosimamiwa kupitia mashirika yetu ya GitHub, ambayo ni pamoja na [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), na [mashirika yetu ya GitHub](https://opensource.microsoft.com/).
+
+Ikiwa unaamini umebaini udhaifu wa usalama katika hifadhi yoyote inayomilikiwa na Microsoft ambayo inakidhi [ufafanuzi wa Microsoft wa udhaifu wa usalama](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)?WT.mc_id=academic-77952-leestott), tafadhali ripoti kwetu kama ilivyoelezwa hapa chini.
+
+## Kuripoti Masuala ya Usalama
+
+**Tafadhali usiripoti udhaifu wa usalama kupitia masuala ya umma ya GitHub.**
+
+Badala yake, tafadhali ripoti kwa Kituo cha Majibu ya Usalama cha Microsoft (MSRC) kupitia [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
+
+Ikiwa unapendelea kuwasilisha bila kuingia, tuma barua pepe kwa [secure@microsoft.com](mailto:secure@microsoft.com). Ikiwezekana, enkripsha ujumbe wako kwa kutumia ufunguo wetu wa PGP; tafadhali pakua kutoka [ukurasa wa Ufunguo wa PGP wa Kituo cha Majibu ya Usalama cha Microsoft](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
+
+Unapaswa kupokea majibu ndani ya masaa 24. Ikiwa kwa sababu fulani hupokei, tafadhali fuatilia kupitia barua pepe ili kuhakikisha tumepokea ujumbe wako wa awali. Maelezo ya ziada yanapatikana kwenye [microsoft.com/msrc](https://www.microsoft.com/msrc).
+
+Tafadhali jumuisha maelezo yanayohitajika yaliyoorodheshwa hapa chini (kadri unavyoweza kutoa) ili kutusaidia kuelewa vyema asili na upeo wa suala linalowezekana:
+
+ * Aina ya suala (mfano: buffer overflow, SQL injection, cross-site scripting, nk.)
+ * Njia kamili za faili za chanzo zinazohusiana na udhihirisho wa suala
+ * Eneo la msimbo wa chanzo ulioathiriwa (tag/branch/commit au URL ya moja kwa moja)
+ * Mipangilio maalum inayohitajika ili kuzalisha suala
+ * Maelekezo ya hatua kwa hatua ya kuzalisha suala
+ * Msimbo wa uthibitisho wa dhana au msimbo wa shambulio (ikiwezekana)
+ * Athari ya suala, ikijumuisha jinsi mshambulizi anaweza kutumia suala hilo
+
+Maelezo haya yatatusaidia kushughulikia ripoti yako haraka zaidi.
+
+Ikiwa unaripoti kwa ajili ya zawadi ya hitilafu, ripoti kamili zaidi zinaweza kuchangia tuzo ya juu zaidi. Tafadhali tembelea ukurasa wetu wa [Mpango wa Zawadi ya Hitilafu wa Microsoft](https://microsoft.com/msrc/bounty) kwa maelezo zaidi kuhusu programu zetu zinazotumika.
+
+## Lugha Zinazopendelewa
+
+Tunapendelea mawasiliano yote yawe kwa Kiingereza.
+
+## Sera
+
+Microsoft inafuata kanuni za [Ufunuo wa Udhaifu Ulio Ratibiwa](https://www.microsoft.com/en-us/msrc/cvd).
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, 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
diff --git a/translations/sw/SUPPORT.md b/translations/sw/SUPPORT.md
new file mode 100644
index 00000000..5a0b5e57
--- /dev/null
+++ b/translations/sw/SUPPORT.md
@@ -0,0 +1,24 @@
+
+# Msaada
+## Jinsi ya kuripoti matatizo na kupata msaada
+
+Mradi huu unatumia GitHub Issues kufuatilia hitilafu na maombi ya vipengele. Tafadhali tafuta matatizo yaliyopo kabla ya kuripoti matatizo mapya ili kuepuka kurudia. Kwa matatizo mapya, ripoti hitilafu yako au ombi la kipengele kama Tatizo jipya.
+
+Kwa msaada na maswali kuhusu kutumia mradi huu, ripoti tatizo.
+
+## Sera ya Msaada ya Microsoft
+
+Msaada kwa hifadhi hii unazingatia tu rasilimali zilizoorodheshwa hapo juu.
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/docs/_sidebar.md b/translations/sw/docs/_sidebar.md
new file mode 100644
index 00000000..2eece120
--- /dev/null
+++ b/translations/sw/docs/_sidebar.md
@@ -0,0 +1,57 @@
+
+- Utangulizi
+ - [Utangulizi wa Kujifunza kwa Mashine](../1-Introduction/1-intro-to-ML/README.md)
+ - [Historia ya Kujifunza kwa Mashine](../1-Introduction/2-history-of-ML/README.md)
+ - [Kujifunza kwa Mashine na Usawa](../1-Introduction/3-fairness/README.md)
+ - [Mbinu za Kujifunza kwa Mashine](../1-Introduction/4-techniques-of-ML/README.md)
+
+- Urejeleaji
+ - [Zana za Kazi](../2-Regression/1-Tools/README.md)
+ - [Takwimu](../2-Regression/2-Data/README.md)
+ - [Urejeleaji wa Mstari](../2-Regression/3-Linear/README.md)
+ - [Urejeleaji wa Kilogistiki](../2-Regression/4-Logistic/README.md)
+
+- Jenga Programu ya Wavuti
+ - [Programu ya Wavuti](../3-Web-App/1-Web-App/README.md)
+
+- Uainishaji
+ - [Utangulizi wa Uainishaji](../4-Classification/1-Introduction/README.md)
+ - [Waainishaji 1](../4-Classification/2-Classifiers-1/README.md)
+ - [Waainishaji 2](../4-Classification/3-Classifiers-2/README.md)
+ - [Kujifunza kwa Mashine kwa Vitendo](../4-Classification/4-Applied/README.md)
+
+- Ugawaji
+ - [Onyesha Takwimu Zako](../5-Clustering/1-Visualize/README.md)
+ - [K-Means](../5-Clustering/2-K-Means/README.md)
+
+- NLP
+ - [Utangulizi wa NLP](../6-NLP/1-Introduction-to-NLP/README.md)
+ - [Majukumu ya NLP](../6-NLP/2-Tasks/README.md)
+ - [Tafsiri na Hisia](../6-NLP/3-Translation-Sentiment/README.md)
+ - [Mapitio ya Hoteli 1](../6-NLP/4-Hotel-Reviews-1/README.md)
+ - [Mapitio ya Hoteli 2](../6-NLP/5-Hotel-Reviews-2/README.md)
+
+- Utabiri wa Mfululizo wa Wakati
+ - [Utangulizi wa Utabiri wa Mfululizo wa Wakati](../7-TimeSeries/1-Introduction/README.md)
+ - [ARIMA](../7-TimeSeries/2-ARIMA/README.md)
+ - [SVR](../7-TimeSeries/3-SVR/README.md)
+
+- Kujifunza kwa Kuimarisha
+ - [Q-Learning](../8-Reinforcement/1-QLearning/README.md)
+ - [Gym](../8-Reinforcement/2-Gym/README.md)
+
+- Kujifunza kwa Mashine katika Ulimwengu Halisi
+ - [Matumizi](../9-Real-World/1-Applications/README.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
diff --git a/translations/sw/for-teachers.md b/translations/sw/for-teachers.md
new file mode 100644
index 00000000..f19e571c
--- /dev/null
+++ b/translations/sw/for-teachers.md
@@ -0,0 +1,37 @@
+
+## Kwa Walimu
+
+Je, ungependa kutumia mtaala huu darasani kwako? Tafadhali jisikie huru!
+
+Kwa kweli, unaweza kuutumia moja kwa moja ndani ya GitHub kwa kutumia GitHub Classroom.
+
+Ili kufanya hivyo, fanya fork ya repo hii. Utahitaji kuunda repo kwa kila somo, kwa hivyo utahitaji kutoa kila folda na kuiweka kwenye repo tofauti. Kwa njia hiyo, [GitHub Classroom](https://classroom.github.com/classrooms) inaweza kuchukua kila somo moja kwa moja.
+
+Maelekezo haya [kamili](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) yatakupa mwongozo wa jinsi ya kuandaa darasa lako.
+
+## Kutumia repo kama ilivyo
+
+Ikiwa ungependa kutumia repo hii kama ilivyo sasa, bila kutumia GitHub Classroom, hilo linawezekana pia. Utahitaji kuwasiliana na wanafunzi wako kuhusu somo gani la kufanyia kazi pamoja.
+
+Katika muundo wa mtandaoni (Zoom, Teams, au nyinginezo) unaweza kuunda vyumba vya vikundi kwa ajili ya maswali ya majaribio, na kuwaelekeza wanafunzi ili kuwasaidia kujiandaa kujifunza. Kisha waalike wanafunzi kushiriki kwenye maswali ya majaribio na kuwasilisha majibu yao kama 'issues' kwa wakati fulani. Unaweza kufanya vivyo hivyo na kazi za nyumbani, ikiwa ungependa wanafunzi wafanye kazi kwa kushirikiana waziwazi.
+
+Ikiwa unapendelea muundo wa faragha zaidi, waombe wanafunzi wako kufanya fork ya mtaala, somo kwa somo, kwenye repos zao za GitHub kama repos za faragha, na wakupe ufikiaji. Kisha wanaweza kukamilisha maswali ya majaribio na kazi za nyumbani kwa faragha na kuwasilisha kwako kupitia issues kwenye repo ya darasa lako.
+
+Kuna njia nyingi za kufanya hili lifanye kazi katika muundo wa darasa la mtandaoni. Tafadhali tujulishe ni njia gani inakufaa zaidi!
+
+## Tafadhali tupe maoni yako!
+
+Tunataka mtaala huu ufanye kazi kwa ajili yako na wanafunzi wako. Tafadhali tupe [maoni](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u).
+
+---
+
+**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
diff --git a/translations/sw/quiz-app/README.md b/translations/sw/quiz-app/README.md
new file mode 100644
index 00000000..c508a6aa
--- /dev/null
+++ b/translations/sw/quiz-app/README.md
@@ -0,0 +1,127 @@
+
+# Maswali ya Quiz
+
+Maswali haya ni ya awali na ya baada ya mihadhara kwa mtaala wa ML kwenye https://aka.ms/ml-beginners
+
+## Usanidi wa Mradi
+
+```
+npm install
+```
+
+### Inakompili na kupakia upya kwa maendeleo
+
+```
+npm run serve
+```
+
+### Inakompili na kupunguza kwa uzalishaji
+
+```
+npm run build
+```
+
+### Inakagua na kurekebisha faili
+
+```
+npm run lint
+```
+
+### Kubadilisha usanidi
+
+Tazama [Marejeleo ya Usanidi](https://cli.vuejs.org/config/).
+
+Shukrani: Asante kwa toleo la awali la programu hii ya quiz: https://github.com/arpan45/simple-quiz-vue
+
+## Kuweka kwenye Azure
+
+Hapa kuna mwongozo wa hatua kwa hatua wa kukusaidia kuanza:
+
+1. **Kufork Hifadhi ya GitHub**
+Hakikisha msimbo wa programu yako ya wavuti ya static uko kwenye hifadhi yako ya GitHub. Fork hifadhi hii.
+
+2. **Kuunda Azure Static Web App**
+- Unda [akaunti ya Azure](http://azure.microsoft.com)
+- Nenda kwenye [portal ya Azure](https://portal.azure.com)
+- Bonyeza “Create a resource” na tafuta “Static Web App”.
+- Bonyeza “Create”.
+
+3. **Kusanidi Static Web App**
+- **Msingi:**
+ - Subscription: Chagua usajili wako wa Azure.
+ - Resource Group: Unda kikundi kipya cha rasilimali au tumia kilichopo.
+ - Name: Toa jina kwa programu yako ya wavuti ya static.
+ - Region: Chagua eneo lililo karibu zaidi na watumiaji wako.
+
+- #### Maelezo ya Uwekaji:
+ - Source: Chagua “GitHub”.
+ - GitHub Account: Ruhusu Azure kufikia akaunti yako ya GitHub.
+ - Organization: Chagua shirika lako la GitHub.
+ - Repository: Chagua hifadhi inayoshikilia programu yako ya wavuti ya static.
+ - Branch: Chagua tawi unalotaka kuweka kutoka.
+
+- #### Maelezo ya Ujenzi:
+ - Build Presets: Chagua mfumo ambao programu yako imejengwa (mfano, React, Angular, Vue, n.k.).
+ - App Location: Eleza folda inayoshikilia msimbo wa programu yako (mfano, / ikiwa iko kwenye mzizi).
+ - API Location: Ikiwa una API, eleza eneo lake (hiari).
+ - Output Location: Eleza folda ambapo matokeo ya ujenzi yanazalishwa (mfano, build au dist).
+
+4. **Kagua na Unda**
+Kagua mipangilio yako na bonyeza “Create”. Azure itaweka rasilimali zinazohitajika na kuunda faili ya GitHub Actions kwenye hifadhi yako.
+
+5. **Faili ya GitHub Actions Workflow**
+Azure itaunda faili ya GitHub Actions workflow kiotomatiki kwenye hifadhi yako (.github/workflows/azure-static-web-apps-.yml). Faili hii itashughulikia mchakato wa ujenzi na uwekaji.
+
+6. **Fuatilia Uwekaji**
+Nenda kwenye kichupo cha “Actions” kwenye hifadhi yako ya GitHub.
+Unapaswa kuona workflow ikifanya kazi. Workflow hii itajenga na kuweka programu yako ya wavuti ya static kwenye Azure.
+Baada ya workflow kukamilika, programu yako itakuwa hai kwenye URL iliyotolewa na Azure.
+
+### Mfano wa Faili ya Workflow
+
+Hapa kuna mfano wa jinsi faili ya GitHub Actions workflow inaweza kuonekana:
+name: Azure Static Web Apps CI/CD
+```
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ types: [opened, synchronize, reopened, closed]
+ branches:
+ - main
+
+jobs:
+ build_and_deploy_job:
+ runs-on: ubuntu-latest
+ name: Build and Deploy Job
+ steps:
+ - uses: actions/checkout@v2
+ - name: Build And Deploy
+ id: builddeploy
+ uses: Azure/static-web-apps-deploy@v1
+ with:
+ azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ action: "upload"
+ app_location: "/quiz-app" # App source code path
+ api_location: ""API source code path optional
+ output_location: "dist" #Built app content directory - optional
+```
+
+### Rasilimali za Ziada
+- [Nyaraka za Azure Static Web Apps](https://learn.microsoft.com/azure/static-web-apps/getting-started)
+- [Nyaraka za GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuchukuliwa 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
diff --git a/translations/sw/sketchnotes/LICENSE.md b/translations/sw/sketchnotes/LICENSE.md
new file mode 100644
index 00000000..e48544af
--- /dev/null
+++ b/translations/sw/sketchnotes/LICENSE.md
@@ -0,0 +1,154 @@
+
+Hati ya Utoaji wa Haki ya Attribution-ShareAlike 4.0 Kimataifa
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") si kampuni ya sheria na haitoi huduma za kisheria au ushauri wa kisheria. Usambazaji wa leseni za umma za Creative Commons hauundi uhusiano wa wakili-mteja au uhusiano mwingine wowote. Creative Commons inatoa leseni zake na taarifa zinazohusiana kwa msingi wa "kama ilivyo". Creative Commons haitoi dhamana yoyote kuhusu leseni zake, nyenzo zozote zilizopewa leseni chini ya masharti na masharti yake, au taarifa zinazohusiana. Creative Commons inakanusha dhima yote kwa uharibifu unaotokana na matumizi yake kwa kiwango cha juu kinachowezekana.
+
+Kutumia Leseni za Umma za Creative Commons
+
+Leseni za umma za Creative Commons hutoa seti ya kawaida ya masharti na masharti ambayo waandishi na wamiliki wa haki wanaweza kutumia kushiriki kazi za awali za uandishi na nyenzo nyingine zinazolindwa na hakimiliki na haki nyingine maalum zilizoainishwa katika leseni ya umma hapa chini. Yafuatayo ni kwa madhumuni ya taarifa tu, si kamili, na hayaundi sehemu ya leseni zetu.
+
+ Mambo ya kuzingatia kwa watoaji leseni: Leseni zetu za umma zimekusudiwa kutumiwa na wale walioidhinishwa kutoa ruhusa kwa umma kutumia nyenzo kwa njia ambazo vinginevyo zingezuiliwa na hakimiliki na haki nyingine maalum. Leseni zetu haziwezi kubatilishwa. Watoaji leseni wanapaswa kusoma na kuelewa masharti na masharti ya leseni wanayochagua kabla ya kuitumia. Watoaji leseni wanapaswa pia kuhakikisha wanamiliki haki zote zinazohitajika kabla ya kutumia leseni zetu ili umma uweze kutumia nyenzo kama inavyotarajiwa. Watoaji leseni wanapaswa kuweka alama wazi nyenzo zozote ambazo haziko chini ya leseni. Hii inajumuisha nyenzo nyingine zilizopewa leseni ya CC, au nyenzo zinazotumiwa chini ya ubaguzi au kizuizi cha hakimiliki. Mambo zaidi ya kuzingatia kwa watoaji leseni: wiki.creativecommons.org/Considerations_for_licensors
+
+ Mambo ya kuzingatia kwa umma: Kwa kutumia moja ya leseni zetu za umma, mtoaji leseni anatoa ruhusa kwa umma kutumia nyenzo zilizopewa leseni chini ya masharti na masharti maalum. Ikiwa ruhusa ya mtoaji leseni si ya lazima kwa sababu yoyote—kwa mfano, kwa sababu ya ubaguzi au kizuizi kinachotumika kwa hakimiliki—basi matumizi hayo hayadhibitiwi na leseni. Leseni zetu zinatoa ruhusa tu chini ya hakimiliki na haki nyingine maalum ambazo mtoaji leseni ana mamlaka ya kutoa. Matumizi ya nyenzo zilizopewa leseni bado yanaweza kuzuiliwa kwa sababu nyingine, ikiwa ni pamoja na kwa sababu wengine wanamiliki hakimiliki au haki nyingine katika nyenzo hizo. Mtoaji leseni anaweza kutoa maombi maalum, kama vile kuomba mabadiliko yote yawekwe alama au kuelekezwa. Ingawa si lazima chini ya leseni zetu, unahimizwa kuheshimu maombi hayo pale yanapokuwa ya busara. Mambo zaidi ya kuzingatia kwa umma: wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Leseni ya Umma ya Attribution-ShareAlike 4.0 Kimataifa ya Creative Commons
+
+Kwa kutumia Haki Zilizotolewa (zilizoainishwa hapa chini), Unakubali na unakubaliana kufungwa na masharti ya Leseni ya Umma ya Attribution-ShareAlike 4.0 Kimataifa ya Creative Commons ("Leseni ya Umma"). Kwa kiwango ambacho Leseni ya Umma hii inaweza kufasiriwa kama mkataba, Unapewa Haki Zilizotolewa kwa kuzingatia kukubalika kwako kwa masharti haya, na Mtoaji Leseni anakupa haki hizo kwa kuzingatia manufaa ambayo Mtoaji Leseni anapata kwa kufanya Nyenzo Zilizotolewa zipatikane chini ya masharti haya.
+
+Sehemu ya 1 -- Ufafanuzi.
+
+ a. Nyenzo Zilizobadilishwa inamaanisha nyenzo zinazolindwa na Hakimiliki na Haki Sawa ambazo zinatokana na au zinategemea Nyenzo Zilizotolewa na ambapo Nyenzo Zilizotolewa zimetafsiriwa, kubadilishwa, kupangwa, kubadilishwa, au kurekebishwa kwa njia inayohitaji ruhusa chini ya Hakimiliki na Haki Sawa zinazoshikiliwa na Mtoaji Leseni. Kwa madhumuni ya Leseni ya Umma hii, ambapo Nyenzo Zilizotolewa ni kazi ya muziki, utendaji, au rekodi ya sauti, Nyenzo Zilizobadilishwa daima huzalishwa ambapo Nyenzo Zilizotolewa zinasawazishwa kwa uhusiano wa wakati na picha inayosonga.
+
+ b. Leseni ya Mrekebishaji inamaanisha leseni Unayotumia kwa Hakimiliki na Haki Sawa katika michango yako kwa Nyenzo Zilizobadilishwa kwa mujibu wa masharti na masharti ya Leseni ya Umma hii.
+
+ c. Leseni Inayolingana na BY-SA inamaanisha leseni iliyoorodheshwa kwenye creativecommons.org/compatiblelicenses, iliyothibitishwa na Creative Commons kama sawa kimsingi na Leseni ya Umma hii.
+
+ d. Hakimiliki na Haki Sawa inamaanisha hakimiliki na/au haki sawa zinazohusiana kwa karibu na hakimiliki ikiwa ni pamoja na, bila kikomo, utendaji, matangazo, rekodi za sauti, na Haki za Hifadhidata za Sui Generis, bila kujali jinsi haki hizo zinavyotajwa au kuainishwa. Kwa madhumuni ya Leseni ya Umma hii, haki zilizoainishwa katika Sehemu ya 2(b)(1)-(2) si Hakimiliki na Haki Sawa.
+
+ e. Hatua za Teknolojia Zinazofaa inamaanisha hatua ambazo, bila mamlaka sahihi, haziwezi kupitishwa chini ya sheria zinazotimiza wajibu chini ya Kifungu cha 11 cha Mkataba wa Hakimiliki wa WIPO uliopitishwa tarehe 20 Desemba 1996, na/au mikataba mingine ya kimataifa inayofanana.
+
+ f. Ubaguzi na Vizuizi inamaanisha matumizi ya haki, matumizi ya haki, na/au ubaguzi au kizuizi kingine chochote kwa Hakimiliki na Haki Sawa kinachotumika kwa matumizi yako ya Nyenzo Zilizotolewa.
+
+ g. Vipengele vya Leseni inamaanisha sifa za leseni zilizoorodheshwa katika jina la Leseni ya Umma ya Creative Commons. Vipengele vya Leseni ya Umma hii ni Attribution na ShareAlike.
+
+ h. Nyenzo Zilizotolewa inamaanisha kazi ya kisanii au ya fasihi, hifadhidata, au nyenzo nyingine ambayo Mtoaji Leseni ametumia Leseni ya Umma hii.
+
+ i. Haki Zilizotolewa inamaanisha haki zinazokupa chini ya masharti na masharti ya Leseni ya Umma hii, ambazo zimezuiliwa kwa Hakimiliki na Haki Sawa zinazotumika kwa matumizi yako ya Nyenzo Zilizotolewa na ambazo Mtoaji Leseni ana mamlaka ya kutoa leseni.
+
+ j. Mtoaji Leseni inamaanisha mtu binafsi au chombo kinachotoa haki chini ya Leseni ya Umma hii.
+
+ k. Kushiriki inamaanisha kutoa nyenzo kwa umma kwa njia yoyote au mchakato wowote unaohitaji ruhusa chini ya Haki Zilizotolewa, kama vile uzazi, maonyesho ya umma, utendaji wa umma, usambazaji, uenezaji, mawasiliano, au uagizaji, na kufanya nyenzo zipatikane kwa umma ikiwa ni pamoja na kwa njia ambazo wanachama wa umma wanaweza kufikia nyenzo kutoka mahali na wakati waliochagua binafsi.
+
+ l. Haki za Hifadhidata za Sui Generis inamaanisha haki nyingine zaidi ya hakimiliki zinazotokana na Maelekezo 96/9/EC ya Bunge la Ulaya na Baraza la tarehe 11 Machi 1996 kuhusu ulinzi wa kisheria wa hifadhidata, kama ilivyorekebishwa na/au kufuatwa, pamoja na haki nyingine zinazofanana kimsingi popote duniani.
+
+ m. Wewe inamaanisha mtu binafsi au chombo kinachotumia Haki Zilizotolewa chini ya Leseni ya Umma hii. Yako ina maana inayolingana.
+
+Sehemu ya 2 -- Upeo.
+
+ a. Utoaji wa leseni.
+
+ 1. Kwa mujibu wa masharti na masharti ya Leseni ya Umma hii, Mtoaji Leseni anakupa leseni ya kimataifa, isiyo na malipo, isiyoweza kupewa leseni ndogo, isiyo ya kipekee, isiyoweza kubatilishwa ya kutumia Haki Zilizotolewa katika Nyenzo Zilizotolewa ili:
+
+ a. kuzalisha tena na Kushiriki Nyenzo Zilizotolewa, kwa ujumla au kwa sehemu; na
+
+ b. kuzalisha, kuzalisha tena, na Kushiriki Nyenzo Zilizobadilishwa.
+
+ 2. Ubaguzi na Vizuizi. Kwa kuepuka shaka, ambapo Ubaguzi na Vizuizi vinatumika kwa matumizi yako, Leseni ya Umma hii haitumiki, na Huna haja ya kufuata masharti yake.
+
+ 3. Muda. Muda wa Leseni ya Umma hii umeainishwa katika Sehemu ya 6(a).
+
+ 4. Vyombo vya habari na fomati; marekebisho ya kiufundi yanaruhusiwa. Mtoaji Leseni anakuruhusu kutumia Haki Zilizotolewa katika vyombo vya habari na fomati zote, iwe zinajulikana sasa au zitakazoundwa baadaye, na kufanya marekebisho ya kiufundi yanayohitajika kufanya hivyo. Mtoaji Leseni anakataa na/au anakubali kutodai haki yoyote au mamlaka ya kukuzuia kufanya marekebisho ya kiufundi yanayohitajika kutumia Haki Zilizotolewa, ikiwa ni pamoja na marekebisho ya kiufundi yanayohitajika kupitisha Hatua za Teknolojia Zinazofaa. Kwa madhumuni ya Leseni ya Umma hii, kufanya tu marekebisho yaliyoidhinishwa na Sehemu ya 2(a)(4) kamwe hakuzalishi Nyenzo Zilizobadilishwa.
+
+ 5. Wapokeaji wa mnyororo wa usambazaji.
+
+ a. Ofa kutoka kwa Mtoaji Leseni -- Nyenzo Zilizotolewa. Kila mpokeaji wa Nyenzo Zilizotolewa hupokea kiotomatiki ofa kutoka kwa Mtoaji Leseni ya kutumia Haki Zilizotolewa chini ya masharti na masharti ya Leseni ya Umma hii.
+
+ b. Ofa ya ziada kutoka kwa Mtoaji Leseni -- Nyenzo Zilizobadilishwa. Kila mpokeaji wa Nyenzo Zilizobadilishwa kutoka kwako hupokea kiotomatiki ofa kutoka kwa Mtoaji Leseni ya kutumia Haki Zilizotolewa katika Nyenzo Zilizobadilishwa chini ya masharti ya Leseni ya Mrekebishaji unayotumia.
+
+ c. Hakuna vizuizi vya mnyororo wa usambazaji. Huwezi kutoa au kuweka masharti yoyote ya ziada au tofauti, au kutumia Hatua za Teknolojia Zinazofaa kwa Nyenzo Zilizotolewa ikiwa kufanya hivyo kunazuia matumizi ya Haki Zilizotolewa na mpokeaji yeyote wa Nyenzo Zilizotolewa.
+
+ 6. Hakuna kuidhinisha. Hakuna chochote katika Leseni ya Umma hii kinachounda au kinaweza kufasiriwa kama ruhusa ya kudai au kuashiria kwamba Wewe, au kwamba matumizi yako ya Nyenzo Zilizotolewa, yanahusiana na, yanadhaminiwa, yanakubaliwa, au yanapewa hadhi rasmi na Mtoaji Leseni au wengine walioteuliwa kupokea sifa kama ilivyoainishwa katika Sehemu ya 3(a)(1)(A)(i).
+
+ b. Haki nyingine.
+
+ 1. Haki za kimaadili, kama haki ya uadilifu, hazipewi leseni chini ya Leseni ya Umma hii, wala haki za umaarufu, faragha, na/au haki nyingine za utu zinazofanana; hata hivyo, kwa kiwango kinachowezekana, Mtoaji Leseni anakataa na/au anakubali kutodai haki zozote kama hizo zinazoshikiliwa na Mtoaji Leseni kwa kiwango kidogo kinachohitajika kukuruhusu kutumia Haki Zilizotolewa, lakini si vinginevyo.
+
+ 2. Haki za patent na alama za biashara hazipewi leseni chini ya Leseni ya Umma hii.
+
+ 3. Kwa kiwango kinachowezekana, Mtoaji Leseni anakataa haki yoyote ya kukusanya malipo kutoka kwako kwa matumizi ya Haki Zilizotolewa, iwe moja kwa moja au kupitia jamii ya ukusanyaji chini ya mpango wowote wa hiari au wa kisheria unaoweza kubatilishwa au wa lazima. Katika hali nyingine zote, Mtoaji Leseni anahifadhi wazi haki yoyote ya kukusanya malipo hayo.
+Haki, kisha hifadhidata ambayo una Haki za Hifadhidata ya Sui Generis (lakini si maudhui yake ya kibinafsi) ni Nyenzo Iliyorekebishwa,
+
+ikiwa ni pamoja na kwa madhumuni ya Sehemu ya 3(b); na
+c. Lazima ufuate masharti ya Sehemu ya 3(a) ikiwa Utashiriki maudhui yote au sehemu kubwa ya maudhui ya hifadhidata.
+
+Kwa kuepuka shaka, Sehemu hii ya 4 inaongeza na haibadilishi wajibu wako chini ya Leseni hii ya Umma ambapo Haki Zilizotolewa zinajumuisha Haki za Hakimiliki na Haki Sawa.
+
+---
+
+Sehemu ya 5 -- Kanusho la Dhamana na Kizuizi cha Dhima.
+
+a. ISIPOKUWA IMESEMWA TOFAUTI NA LICENSOR, KWA KADRI INAVYOWEZEKANA, LICENSOR INATOA NYENZO ZILIZOTOLEWA KAMA ILIVYO NA KAMA INAVYOPATIKANA, NA HAITOI UWAKILISHI AU DHAMANA YOYOTE KUHUSU NYENZO ZILIZOTOLEWA, IWE YA MOJA KWA MOJA, YA KINA, YA KISHERIA, AU NYINGINE. HII INAJUMUISHA, BILA KIKOMO, DHAMANA ZA UMILIKI, UWEZO WA KUUZIKA, USTAHIKI KWA KUSUDI MAALUM, KUTOKUINGILIA, UKOSEFU WA DOSARI ZA NDANI AU NYINGINE, USAHIHI, AU UWEPO AU UKOSEFU WA MAKOSA, IWE YANAJULIKANA AU YANAWEZA KUGUNDULIKA. AMBAPO KANUSHO LA DHAMANA HALIRUHUSIWI KIKAMILIFU AU KWA SEHEMU, KANUSHO HILI HALIWEZI KUKUHUSU.
+
+b. KWA KADRI INAVYOWEZEKANA, LICENSOR HATAWAHI KUWA NA DHIMA KWAKO KWA NJIA YOYOTE YA KISHERIA (IKIWA NI PAMOJA NA, BILA KIKOMO, UZEMBE) AU VINGINEVYO KWA HASARA YOYOTE YA MOJA KWA MOJA, MAALUM, YA KIASI, YA KUTOKA KWA AJALI, YA MATOKEO, YA ADHABU, YA MFANO, AU HASARA NYINGINE, GHARAMA, MATUMIZI, AU MADHARA YANAYOTOKANA NA LESENI HII YA UMMA AU MATUMIZI YA NYENZO ZILIZOTOLEWA, HATA KAMA LICENSOR AMEJULISHWA KUHUSU UWEZEKANO WA HASARA, GHARAMA, MATUMIZI, AU MADHARA HAYO. AMBAPO KIKOMO CHA DHIMA HAKIRUHUSIWI KIKAMILIFU AU KWA SEHEMU, KIKOMO HIKI HAKIWEZI KUKUHUSU.
+
+c. Kanusho la dhamana na kizuizi cha dhima kilichotolewa hapo juu kitatafsiriwa kwa njia ambayo, kwa kadri inavyowezekana, inakaribia zaidi kanusho kamili na kuachiliwa kwa dhima yote.
+
+---
+
+Sehemu ya 6 -- Muda na Kusitishwa.
+
+a. Leseni hii ya Umma inatumika kwa muda wa Hakimiliki na Haki Sawa zilizopewa leseni hapa. Hata hivyo, ikiwa Utashindwa kufuata Leseni hii ya Umma, basi haki zako chini ya Leseni hii ya Umma zinasitishwa moja kwa moja.
+
+b. Ambapo haki yako ya kutumia Nyenzo Zilizotolewa imesitishwa chini ya Sehemu ya 6(a), inarejeshwa:
+
+1. moja kwa moja kuanzia tarehe ukiukaji unarekebishwa, mradi unarekebishwa ndani ya siku 30 tangu ugunduzi wako wa ukiukaji; au
+2. kwa kurejeshwa wazi na Licensor.
+
+Kwa kuepuka shaka, Sehemu hii ya 6(b) haiathiri haki yoyote ambayo Licensor anaweza kuwa nayo ya kutafuta suluhisho kwa ukiukaji wako wa Leseni hii ya Umma.
+
+c. Kwa kuepuka shaka, Licensor anaweza pia kutoa Nyenzo Zilizotolewa chini ya masharti au hali tofauti au kuacha kusambaza Nyenzo Zilizotolewa wakati wowote; hata hivyo, kufanya hivyo hakutasitisha Leseni hii ya Umma.
+
+d. Sehemu za 1, 5, 6, 7, na 8 zinabaki baada ya kusitishwa kwa Leseni hii ya Umma.
+
+---
+
+Sehemu ya 7 -- Masharti na Hali Nyingine.
+
+a. Licensor hatalazimika kufuata masharti au hali yoyote ya ziada au tofauti yaliyoelezwa na Wewe isipokuwa imekubaliwa wazi.
+
+b. Mipango yoyote, maelewano, au makubaliano kuhusu Nyenzo Zilizotolewa ambayo hayajaelezwa hapa ni tofauti na huru kutoka kwa masharti na hali za Leseni hii ya Umma.
+
+---
+
+Sehemu ya 8 -- Tafsiri.
+
+a. Kwa kuepuka shaka, Leseni hii ya Umma haipunguzi, haizuii, haibani, au kuweka masharti yoyote juu ya matumizi ya Nyenzo Zilizotolewa ambayo yanaweza kufanywa kihalali bila ruhusa chini ya Leseni hii ya Umma.
+
+b. Kwa kadri inavyowezekana, ikiwa kifungu chochote cha Leseni hii ya Umma kinachukuliwa kuwa hakitekelezeki, kitarekebishwa kiotomatiki kwa kiwango cha chini kinachohitajika ili kufanya kiweze kutekelezeka. Ikiwa kifungu hakiwezi kurekebishwa, kitakatwa kutoka kwa Leseni hii ya Umma bila kuathiri utekelezekaji wa masharti na hali zilizobaki.
+
+c. Hakuna sharti au hali ya Leseni hii ya Umma itakayosamehewa na hakuna kushindwa kufuata kutakubaliwa isipokuwa imekubaliwa wazi na Licensor.
+
+d. Hakuna chochote katika Leseni hii ya Umma kinachounda au kinaweza kutafsiriwa kama kizuizi, au kuachiliwa kwa, haki yoyote na kinga inayotumika kwa Licensor au Wewe, ikiwa ni pamoja na kutoka kwa taratibu za kisheria za mamlaka yoyote au mamlaka.
+
+---
+
+Creative Commons si sehemu ya leseni zake za umma. Hata hivyo, Creative Commons inaweza kuchagua kutumia moja ya leseni zake za umma kwa nyenzo inazochapisha na katika hali hizo itachukuliwa kuwa "Licensor." Maandishi ya leseni za umma za Creative Commons yamejitolea kwa umma chini ya CC0 Public Domain Dedication. Isipokuwa kwa madhumuni madogo ya kuonyesha kwamba nyenzo zimeshirikiwa chini ya leseni ya umma ya Creative Commons au kama inavyoruhusiwa vinginevyo na sera za Creative Commons zilizochapishwa kwenye creativecommons.org/policies, Creative Commons hairuhusu matumizi ya alama ya biashara "Creative Commons" au alama nyingine yoyote ya biashara au nembo ya Creative Commons bila idhini yake ya maandishi ya awali ikiwa ni pamoja na, bila kikomo, kuhusiana na marekebisho yoyote yasiyoidhinishwa ya leseni zake za umma au mipango yoyote, maelewano, au makubaliano kuhusu matumizi ya nyenzo zilizopewa leseni. Kwa kuepuka shaka, aya hii si sehemu ya leseni za umma.
+
+Creative Commons inaweza kuwasiliana kupitia creativecommons.org.
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au 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
diff --git a/translations/sw/sketchnotes/README.md b/translations/sw/sketchnotes/README.md
new file mode 100644
index 00000000..bcc15b46
--- /dev/null
+++ b/translations/sw/sketchnotes/README.md
@@ -0,0 +1,21 @@
+
+Sketchnotes zote za mtaala zinaweza kupakuliwa hapa.
+
+🖨 Kwa kuchapisha katika azimio la juu, matoleo ya TIFF yanapatikana kwenye [repo hii](https://github.com/girliemac/a-picture-is-worth-a-1000-words/tree/main/ml/tiff).
+
+🎨 Imeundwa na: [Tomomi Imura](https://github.com/girliemac) (Twitter: [@girlie_mac](https://twitter.com/girlie_mac))
+
+[](https://creativecommons.org/licenses/by-sa/4.0/)
+
+---
+
+**Kanusho**:
+Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au 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