diff --git a/translations/he/1-Introduction/1-intro-to-ML/README.md b/translations/he/1-Introduction/1-intro-to-ML/README.md
new file mode 100644
index 00000000..2084cf09
--- /dev/null
+++ b/translations/he/1-Introduction/1-intro-to-ML/README.md
@@ -0,0 +1,159 @@
+
+# מבוא ללמידת מכונה
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/6mSx_KJxcHI "למידת מכונה למתחילים - מבוא ללמידת מכונה למתחילים")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר שמסביר את השיעור.
+
+ברוכים הבאים לקורס זה על למידת מכונה קלאסית למתחילים! בין אם אתם חדשים לחלוטין לנושא הזה, או מומחים בלמידת מכונה שמחפשים לרענן את הידע, אנחנו שמחים שהצטרפתם אלינו! אנו שואפים ליצור נקודת התחלה ידידותית ללימודי למידת מכונה ונשמח להעריך, להגיב ולשלב את [המשוב שלכם](https://github.com/microsoft/ML-For-Beginners/discussions).
+
+[](https://youtu.be/h0e2HAPTGF4 "מבוא ללמידת מכונה")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: ג'ון גוטאג מ-MIT מציג את למידת המכונה
+
+---
+## התחלת העבודה עם למידת מכונה
+
+לפני שמתחילים עם תוכנית הלימודים הזו, יש לוודא שהמחשב שלכם מוכן להריץ מחברות באופן מקומי.
+
+- **הגדירו את המחשב שלכם באמצעות הסרטונים האלה**. השתמשו בקישורים הבאים כדי ללמוד [איך להתקין את Python](https://youtu.be/CXZYvNRIAKM) במערכת שלכם ו-[להגדיר עורך טקסט](https://youtu.be/EU8eayHWoZg) לפיתוח.
+- **למדו Python**. מומלץ גם להבין את הבסיס של [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), שפת תכנות שימושית למדעני נתונים שבה נשתמש בקורס הזה.
+- **למדו Node.js ו-JavaScript**. נשתמש גם ב-JavaScript מספר פעמים בקורס הזה כשנבנה אפליקציות ווב, ולכן תצטרכו להתקין [node](https://nodejs.org) ו-[npm](https://www.npmjs.com/), וכן [Visual Studio Code](https://code.visualstudio.com/) שיהיה זמין לפיתוח ב-Python וב-JavaScript.
+- **צרו חשבון GitHub**. מכיוון שמצאתם אותנו כאן ב-[GitHub](https://github.com), ייתכן שכבר יש לכם חשבון, אבל אם לא, צרו אחד ואז עשו fork לתוכנית הלימודים הזו כדי להשתמש בה בעצמכם. (אתם מוזמנים גם לתת לנו כוכב 😊)
+- **חקור את Scikit-learn**. הכירו את [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), סט ספריות למידת מכונה שנשתמש בהן בשיעורים האלה.
+
+---
+## מהי למידת מכונה?
+
+המונח 'למידת מכונה' הוא אחד המונחים הפופולריים והשכיחים ביותר כיום. יש סיכוי לא מבוטל ששמעתם את המונח הזה לפחות פעם אחת אם יש לכם היכרות כלשהי עם טכנולוגיה, לא משנה באיזה תחום אתם עובדים. עם זאת, המכניקה של למידת מכונה היא תעלומה עבור רוב האנשים. עבור מתחילים בלמידת מכונה, הנושא יכול לעיתים להרגיש מרתיע. לכן, חשוב להבין מהי למידת מכונה באמת, וללמוד עליה צעד אחר צעד, דרך דוגמאות מעשיות.
+
+---
+## עקומת ההייפ
+
+
+
+> Google Trends מציג את עקומת ההייפ האחרונה של המונח 'למידת מכונה'
+
+---
+## יקום מסתורי
+
+אנחנו חיים ביקום מלא בתעלומות מרתקות. מדענים גדולים כמו סטיבן הוקינג, אלברט איינשטיין ועוד רבים הקדישו את חייהם לחיפוש מידע משמעותי שחושף את התעלומות של העולם סביבנו. זהו מצב הלמידה האנושי: ילד לומד דברים חדשים ומגלה את מבנה עולמו שנה אחר שנה כשהוא גדל לבגרות.
+
+---
+## מוחו של הילד
+
+המוח והחושים של הילד תופסים את העובדות של סביבתו ולומדים בהדרגה את הדפוסים הנסתרים של החיים, שמסייעים לילד ליצור כללים לוגיים לזיהוי דפוסים נלמדים. תהליך הלמידה של המוח האנושי הופך את בני האדם ליצורים החיים המתוחכמים ביותר בעולם הזה. הלמידה המתמשכת על ידי גילוי דפוסים נסתרים ואז חדשנות על בסיסם מאפשרת לנו להשתפר ולהתפתח לאורך כל חיינו. יכולת הלמידה וההתפתחות הזו קשורה למושג שנקרא [פלסטיות מוחית](https://www.simplypsychology.org/brain-plasticity.html). באופן שטחי, ניתן למצוא כמה דמיון מוטיבציוני בין תהליך הלמידה של המוח האנושי לבין מושגי למידת מכונה.
+
+---
+## המוח האנושי
+
+המוח [האנושי](https://www.livescience.com/29365-human-brain.html) תופס דברים מהעולם האמיתי, מעבד את המידע הנתפס, מקבל החלטות רציונליות ומבצע פעולות מסוימות בהתאם לנסיבות. זה מה שאנחנו מכנים התנהגות אינטליגנטית. כאשר אנו מתכנתים חיקוי של תהליך ההתנהגות האינטליגנטית למכונה, זה נקרא בינה מלאכותית (AI).
+
+---
+## כמה מונחים
+
+למרות שהמונחים יכולים להיות מבלבלים, למידת מכונה (ML) היא תת-תחום חשוב של בינה מלאכותית. **ML עוסקת בשימוש באלגוריתמים מיוחדים כדי לחשוף מידע משמעותי ולמצוא דפוסים נסתרים מנתונים נתפסים כדי לתמוך בתהליך קבלת החלטות רציונלי**.
+
+---
+## AI, ML, למידה עמוקה
+
+
+
+> דיאגרמה שמציגה את הקשרים בין AI, ML, למידה עמוקה ומדעי הנתונים. אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper) בהשראת [הגרפיקה הזו](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
+
+---
+## מושגים שנכסה
+
+בתוכנית הלימודים הזו, נכסה רק את מושגי היסוד של למידת מכונה שמתחיל חייב לדעת. נכסה את מה שאנחנו מכנים 'למידת מכונה קלאסית' בעיקר באמצעות Scikit-learn, ספרייה מצוינת שרבים מהסטודנטים משתמשים בה כדי ללמוד את הבסיס. כדי להבין מושגים רחבים יותר של בינה מלאכותית או למידה עמוקה, ידע יסודי חזק בלמידת מכונה הוא הכרחי, ולכן אנו מציעים אותו כאן.
+
+---
+## בקורס הזה תלמדו:
+
+- מושגי יסוד של למידת מכונה
+- ההיסטוריה של ML
+- ML והוגנות
+- טכניקות רגרסיה בלמידת מכונה
+- טכניקות סיווג בלמידת מכונה
+- טכניקות אשכולות בלמידת מכונה
+- עיבוד שפה טבעית בלמידת מכונה
+- חיזוי סדרות זמן בלמידת מכונה
+- למידה מחזקת
+- יישומים בעולם האמיתי של ML
+
+---
+## מה לא נכסה
+
+- למידה עמוקה
+- רשתות נוירונים
+- AI
+
+כדי ליצור חוויית למידה טובה יותר, נמנע מהמורכבויות של רשתות נוירונים, 'למידה עמוקה' - בניית מודלים מרובי שכבות באמצעות רשתות נוירונים - ו-AI, שאותם נדון בתוכנית לימודים אחרת. בנוסף, נציע תוכנית לימודים עתידית במדעי הנתונים שתתמקד בהיבט הזה של התחום הרחב יותר.
+
+---
+## למה ללמוד למידת מכונה?
+
+למידת מכונה, מנקודת מבט מערכתית, מוגדרת כיצירת מערכות אוטומטיות שיכולות ללמוד דפוסים נסתרים מנתונים כדי לסייע בקבלת החלטות אינטליגנטיות.
+
+המוטיבציה הזו מושפעת באופן רופף מאופן שבו המוח האנושי לומד דברים מסוימים על בסיס הנתונים שהוא תופס מהעולם החיצוני.
+
+✅ חשבו לרגע מדוע עסק ירצה להשתמש באסטרטגיות למידת מכונה במקום ליצור מנוע מבוסס כללים קשיחים.
+
+---
+## יישומים של למידת מכונה
+
+יישומים של למידת מכונה נמצאים כיום כמעט בכל מקום, והם נפוצים כמו הנתונים שזורמים סביב החברה שלנו, שנוצרים על ידי הטלפונים החכמים שלנו, מכשירים מחוברים ומערכות אחרות. בהתחשב בפוטנציאל העצום של אלגוריתמים מתקדמים בלמידת מכונה, חוקרים בוחנים את יכולתם לפתור בעיות רב-ממדיות ורב-תחומיות בחיים האמיתיים עם תוצאות חיוביות רבות.
+
+---
+## דוגמאות ליישום ML
+
+**ניתן להשתמש בלמידת מכונה בדרכים רבות**:
+
+- לחזות את הסבירות למחלה על סמך ההיסטוריה הרפואית או הדוחות של מטופל.
+- להשתמש בנתוני מזג אוויר כדי לחזות אירועי מזג אוויר.
+- להבין את התחושה של טקסט.
+- לזהות חדשות מזויפות כדי לעצור את הפצת התעמולה.
+
+תחומים כמו פיננסים, כלכלה, מדעי כדור הארץ, חקר החלל, הנדסה ביו-רפואית, מדעי הקוגניציה ואפילו תחומים במדעי הרוח אימצו את למידת המכונה כדי לפתור את הבעיות הכבדות בעיבוד נתונים של התחום שלהם.
+
+---
+## סיכום
+
+למידת מכונה מאוטומטת את תהליך גילוי הדפוסים על ידי מציאת תובנות משמעותיות מנתונים אמיתיים או נתונים שנוצרו. היא הוכיחה את עצמה כבעלת ערך רב בעסקים, בריאות ויישומים פיננסיים, בין היתר.
+
+בעתיד הקרוב, הבנת היסודות של למידת מכונה תהיה הכרחית עבור אנשים מכל תחום בשל האימוץ הנרחב שלה.
+
+---
+# 🚀 אתגר
+
+שרטטו, על נייר או באמצעות אפליקציה מקוונת כמו [Excalidraw](https://excalidraw.com/), את ההבנה שלכם לגבי ההבדלים בין AI, ML, למידה עמוקה ומדעי הנתונים. הוסיפו רעיונות לבעיות שכל אחת מהטכניקות הללו טובה בפתרונן.
+
+# [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+# סקירה ולימוד עצמי
+
+כדי ללמוד עוד על איך לעבוד עם אלגוריתמים של ML בענן, עקבו אחרי [מסלול הלמידה הזה](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
+
+קחו [מסלול למידה](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) על יסודות ML.
+
+---
+# משימה
+
+[התחילו לעבוד](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/1-intro-to-ML/assignment.md b/translations/he/1-Introduction/1-intro-to-ML/assignment.md
new file mode 100644
index 00000000..0c95b63f
--- /dev/null
+++ b/translations/he/1-Introduction/1-intro-to-ML/assignment.md
@@ -0,0 +1,23 @@
+
+# להתחיל לפעול
+
+## הוראות
+
+במשימה זו שאינה מדורגת, עליכם לרענן את הידע שלכם ב-Python ולהכין את הסביבה שלכם כך שתוכל להריץ מחברות.
+
+קחו את [מסלול הלמידה של Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), ולאחר מכן הכינו את המערכות שלכם על ידי צפייה בסרטוני ההיכרות הבאים:
+
+https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/2-history-of-ML/README.md b/translations/he/1-Introduction/2-history-of-ML/README.md
new file mode 100644
index 00000000..8bfa51ee
--- /dev/null
+++ b/translations/he/1-Introduction/2-history-of-ML/README.md
@@ -0,0 +1,164 @@
+
+# ההיסטוריה של למידת מכונה
+
+
+> סקצ'נוט מאת [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/N6wxM4wZ7V0 "למידת מכונה למתחילים - ההיסטוריה של למידת מכונה")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על השיעור הזה.
+
+בשיעור זה נעבור על אבני הדרך המרכזיות בהיסטוריה של למידת מכונה ובינה מלאכותית.
+
+ההיסטוריה של בינה מלאכותית (AI) כתחום קשורה קשר הדוק להיסטוריה של למידת מכונה, שכן האלגוריתמים וההתקדמות החישובית שמניעים את למידת המכונה תרמו להתפתחות הבינה המלאכותית. חשוב לזכור כי למרות שהתחומים הללו החלו להתגבש כתחומי מחקר נפרדים בשנות ה-50, [גילויים אלגוריתמיים, סטטיסטיים, מתמטיים, חישוביים וטכניים חשובים](https://wikipedia.org/wiki/Timeline_of_machine_learning) קדמו לתקופה זו ואף חפפו לה. למעשה, אנשים חשבו על שאלות אלו במשך [מאות שנים](https://wikipedia.org/wiki/History_of_artificial_intelligence): מאמר זה דן בבסיס האינטלקטואלי ההיסטורי של הרעיון של "מכונה חושבת".
+
+---
+## גילויים חשובים
+
+- 1763, 1812 [משפט בייס](https://wikipedia.org/wiki/Bayes%27_theorem) והקדמיו. משפט זה ויישומיו מהווים בסיס להסקה, ומתארים את ההסתברות להתרחשות אירוע בהתבסס על ידע קודם.
+- 1805 [תורת הריבועים הפחותים](https://wikipedia.org/wiki/Least_squares) מאת המתמטיקאי הצרפתי אדריאן-מארי לז'נדר. תיאוריה זו, שתלמדו עליה ביחידת הרגרסיה שלנו, מסייעת בהתאמת נתונים.
+- 1913 [שרשראות מרקוב](https://wikipedia.org/wiki/Markov_chain), על שם המתמטיקאי הרוסי אנדריי מרקוב, משמשות לתיאור רצף של אירועים אפשריים בהתבסס על מצב קודם.
+- 1957 [פרספטרון](https://wikipedia.org/wiki/Perceptron) הוא סוג של מסווג ליניארי שהומצא על ידי הפסיכולוג האמריקאי פרנק רוזנבלט ומהווה בסיס להתקדמות בלמידה עמוקה.
+
+---
+
+- 1967 [השכן הקרוב](https://wikipedia.org/wiki/Nearest_neighbor) הוא אלגוריתם שתוכנן במקור למיפוי מסלולים. בהקשר של למידת מכונה הוא משמש לזיהוי דפוסים.
+- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) משמש לאימון [רשתות עצביות קדמיות](https://wikipedia.org/wiki/Feedforward_neural_network).
+- 1982 [רשתות עצביות חוזרות](https://wikipedia.org/wiki/Recurrent_neural_network) הן רשתות עצביות מלאכותיות שמקורן ברשתות עצביות קדמיות ויוצרות גרפים זמניים.
+
+✅ בצעו מחקר קטן. אילו תאריכים נוספים בולטים בהיסטוריה של למידת מכונה ובינה מלאכותית?
+
+---
+## 1950: מכונות שחושבות
+
+אלן טיורינג, אדם יוצא דופן שב-2019 נבחר [על ידי הציבור](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) כמדען הגדול ביותר של המאה ה-20, נחשב כמי שסייע להניח את היסודות לרעיון של "מכונה שיכולה לחשוב". הוא התמודד עם ספקנים ועם הצורך שלו עצמו בראיות אמפיריות לרעיון זה, בין היתר על ידי יצירת [מבחן טיורינג](https://www.bbc.com/news/technology-18475646), אותו תחקור בשיעורי עיבוד השפה הטבעית שלנו.
+
+---
+## 1956: פרויקט המחקר הקיץ בדארטמות'
+
+"פרויקט המחקר הקיץ בדארטמות' על בינה מלאכותית היה אירוע מכונן עבור תחום הבינה המלאכותית," ובו נטבע המונח 'בינה מלאכותית' ([מקור](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
+
+> כל היבט של למידה או כל תכונה אחרת של אינטליגנציה ניתן לתיאור מדויק מספיק כך שניתן יהיה ליצור מכונה שתדמה אותו.
+
+---
+
+החוקר הראשי, פרופסור למתמטיקה ג'ון מקארתי, קיווה "להתקדם על בסיס ההשערה שכל היבט של למידה או כל תכונה אחרת של אינטליגנציה ניתן לתיאור מדויק מספיק כך שניתן יהיה ליצור מכונה שתדמה אותו." בין המשתתפים היה גם מרווין מינסקי, דמות בולטת בתחום.
+
+הסדנה נחשבת כמי שיזמה ועודדה דיונים רבים, כולל "עליית השיטות הסמליות, מערכות שהתמקדו בתחומים מוגבלים (מערכות מומחה מוקדמות), ומערכות דדוקטיביות מול מערכות אינדוקטיביות." ([מקור](https://wikipedia.org/wiki/Dartmouth_workshop)).
+
+---
+## 1956 - 1974: "שנות הזהב"
+
+משנות ה-50 ועד אמצע שנות ה-70, שררה אופטימיות רבה לגבי היכולת של בינה מלאכותית לפתור בעיות רבות. ב-1967, מרווין מינסקי הצהיר בביטחון ש"בתוך דור ... הבעיה של יצירת 'בינה מלאכותית' תיפתר באופן משמעותי." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
+
+מחקר עיבוד שפה טבעית פרח, חיפוש שוכלל והפך לעוצמתי יותר, ונוצר הרעיון של 'עולמות מיקרו', שבהם משימות פשוטות הושלמו באמצעות הוראות בשפה פשוטה.
+
+---
+
+המחקר מומן היטב על ידי סוכנויות ממשלתיות, התקדמות נעשתה בחישוב ובאלגוריתמים, ונבנו אב-טיפוס של מכונות חכמות. כמה מהמכונות הללו כוללות:
+
+* [שייקי הרובוט](https://wikipedia.org/wiki/Shakey_the_robot), שיכול היה לתמרן ולהחליט כיצד לבצע משימות בצורה 'חכמה'.
+
+ 
+ > שייקי ב-1972
+
+---
+
+* אלייזה, 'צ'טרבוט' מוקדם, יכלה לשוחח עם אנשים ולשמש כ'מטפלת' פרימיטיבית. תלמדו עוד על אלייזה בשיעורי עיבוד השפה הטבעית.
+
+ 
+ > גרסה של אלייזה, צ'טבוט
+
+---
+
+* "עולם הקוביות" היה דוגמה לעולם מיקרו שבו ניתן היה לערום ולמיין קוביות, ונערכו ניסויים בלימוד מכונות לקבל החלטות. התקדמות שנעשתה עם ספריות כמו [SHRDLU](https://wikipedia.org/wiki/SHRDLU) סייעה לקדם את עיבוד השפה.
+
+ [](https://www.youtube.com/watch?v=QAJz4YKUwqw "עולם הקוביות עם SHRDLU")
+
+ > 🎥 לחצו על התמונה למעלה לצפייה בסרטון: עולם הקוביות עם SHRDLU
+
+---
+## 1974 - 1980: "חורף הבינה המלאכותית"
+
+עד אמצע שנות ה-70, התברר כי המורכבות של יצירת 'מכונות חכמות' הוערכה בחסר וכי ההבטחה שלה, בהתחשב בכוח החישוב הזמין, הוערכה יתר על המידה. המימון התייבש והאמון בתחום פחת. כמה בעיות שהשפיעו על האמון כוללות:
+---
+- **מגבלות**. כוח החישוב היה מוגבל מדי.
+- **התפוצצות קומבינטורית**. כמות הפרמטרים שצריך לאמן גדלה באופן מעריכי ככל שנדרשו יותר מהמחשבים, ללא התפתחות מקבילה של כוח חישוב ויכולת.
+- **מחסור בנתונים**. היה מחסור בנתונים שהקשה על תהליך הבדיקה, הפיתוח והעידון של אלגוריתמים.
+- **האם אנו שואלים את השאלות הנכונות?**. עצם השאלות שנשאלו החלו להישאל מחדש. חוקרים החלו להתמודד עם ביקורת על הגישות שלהם:
+ - מבחני טיורינג הועמדו בסימן שאלה, בין היתר, על ידי תיאוריית "החדר הסיני" שטענה כי "תכנות מחשב דיגיטלי עשוי לגרום לו להיראות כאילו הוא מבין שפה אך לא יכול לייצר הבנה אמיתית." ([מקור](https://plato.stanford.edu/entries/chinese-room/))
+ - האתיקה של הכנסת אינטליגנציות מלאכותיות כמו "המטפלת" אלייזה לחברה הועמדה בסימן שאלה.
+
+---
+
+במקביל, החלו להיווצר אסכולות שונות בתחום הבינה המלאכותית. נוצרה דיכוטומיה בין ["בינה מלאכותית 'מבולגנת' לעומת 'מסודרת'"](https://wikipedia.org/wiki/Neats_and_scruffies). מעבדות 'מבולגנות' שיפצו תוכניות במשך שעות עד שהשיגו את התוצאות הרצויות. מעבדות 'מסודרות' "התמקדו בלוגיקה ובפתרון בעיות פורמלי". אלייזה ו-SHRDLU היו מערכות 'מבולגנות' ידועות. בשנות ה-80, עם הדרישה להפיק מערכות למידת מכונה שניתן לשחזר, הגישה ה'מסודרת' תפסה בהדרגה את הבכורה שכן תוצאותיה ניתנות להסבר טוב יותר.
+
+---
+## שנות ה-80: מערכות מומחה
+
+ככל שהתחום גדל, היתרון שלו לעסקים הפך ברור יותר, ובשנות ה-80 כך גם התפשטותן של 'מערכות מומחה'. "מערכות מומחה היו בין הצורות הראשונות של תוכנות בינה מלאכותית (AI) שהצליחו באמת." ([מקור](https://wikipedia.org/wiki/Expert_system)).
+
+סוג זה של מערכת הוא למעשה _היברידי_, המורכב בחלקו ממנוע חוקים שמגדיר דרישות עסקיות, ובחלקו ממנוע הסקה שמנצל את מערכת החוקים כדי להסיק עובדות חדשות.
+
+התקופה הזו גם ראתה תשומת לב גוברת לרשתות עצביות.
+
+---
+## 1987 - 1993: "הקיפאון של הבינה המלאכותית"
+
+התפשטות החומרה המיוחדת של מערכות מומחה גרמה, למרבה הצער, להתמחות יתר. עלייתם של מחשבים אישיים גם התחרתה במערכות גדולות, מיוחדות ומרכזיות אלו. הדמוקרטיזציה של המחשוב החלה, והיא בסופו של דבר סללה את הדרך להתפוצצות המודרנית של נתונים גדולים.
+
+---
+## 1993 - 2011
+
+תקופה זו ראתה עידן חדש שבו למידת מכונה ובינה מלאכותית יכלו לפתור חלק מהבעיות שנגרמו קודם לכן בשל מחסור בנתונים ובכוח חישוב. כמות הנתונים החלה לגדול במהירות ולהיות זמינה יותר, לטוב ולרע, במיוחד עם הופעת הסמארטפון סביב 2007. כוח החישוב התרחב באופן מעריכי, והאלגוריתמים התפתחו במקביל. התחום החל להתבגר כאשר הימים החופשיים של העבר החלו להתגבש לכדי דיסציפלינה אמיתית.
+
+---
+## היום
+
+כיום למידת מכונה ובינה מלאכותית נוגעות כמעט בכל חלק בחיינו. תקופה זו דורשת הבנה זהירה של הסיכונים וההשפעות הפוטנציאליות של אלגוריתמים אלו על חיי אדם. כפי שבראד סמית' ממיקרוסופט אמר, "טכנולוגיית המידע מעלה סוגיות שנוגעות ללב ההגנות הבסיסיות של זכויות האדם כמו פרטיות וחופש הביטוי. סוגיות אלו מגבירות את האחריות של חברות טכנולוגיה שיוצרות את המוצרים הללו. לדעתנו, הן גם דורשות רגולציה ממשלתית מחושבת ופיתוח נורמות סביב שימושים מקובלים" ([מקור](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
+
+---
+
+נותר לראות מה צופן העתיד, אך חשוב להבין את מערכות המחשוב הללו ואת התוכנה והאלגוריתמים שהם מפעילים. אנו מקווים שתוכנית הלימודים הזו תסייע לכם להבין טוב יותר כך שתוכלו להחליט בעצמכם.
+
+[](https://www.youtube.com/watch?v=mTtDfKgLm54 "ההיסטוריה של למידה עמוקה")
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: יאן לקון מדבר על ההיסטוריה של למידה עמוקה בהרצאה זו
+
+---
+## 🚀אתגר
+
+התעמקו באחד מהרגעים ההיסטוריים הללו ולמדו עוד על האנשים שמאחוריהם. ישנם דמויות מרתקות, ואף גילוי מדעי מעולם לא נוצר בוואקום תרבותי. מה תגלו?
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+## סקירה ולימוד עצמי
+
+הנה פריטים לצפייה והאזנה:
+
+[פודקאסט זה שבו איימי בויד דנה בהתפתחות הבינה המלאכותית](http://runasradio.com/Shows/Show/739)
+
+[](https://www.youtube.com/watch?v=EJt3_bFYKss "ההיסטוריה של בינה מלאכותית מאת איימי בויד")
+
+---
+
+## משימה
+
+[צרו ציר זמן](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/2-history-of-ML/assignment.md b/translations/he/1-Introduction/2-history-of-ML/assignment.md
new file mode 100644
index 00000000..768245a5
--- /dev/null
+++ b/translations/he/1-Introduction/2-history-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# יצירת ציר זמן
+
+## הוראות
+
+באמצעות [הריפו הזה](https://github.com/Digital-Humanities-Toolkit/timeline-builder), צרו ציר זמן של היבט כלשהו בהיסטוריה של אלגוריתמים, מתמטיקה, סטטיסטיקה, בינה מלאכותית או למידת מכונה, או שילוב של אלה. תוכלו להתמקד באדם אחד, רעיון אחד, או תקופת זמן ארוכה של מחשבה. הקפידו להוסיף אלמנטים מולטימדיה.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ----------------------------------------------- | ------------------------------------- | ------------------------------------------------------------- |
+| | ציר זמן פרוס מוצג כעמוד GitHub | הקוד אינו שלם ולא פרוס | ציר הזמן אינו שלם, אינו מבוסס היטב ואינו פרוס |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/3-fairness/README.md b/translations/he/1-Introduction/3-fairness/README.md
new file mode 100644
index 00000000..9aac6b0a
--- /dev/null
+++ b/translations/he/1-Introduction/3-fairness/README.md
@@ -0,0 +1,170 @@
+
+# בניית פתרונות למידת מכונה עם AI אחראי
+
+
+> סקיצה מאת [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [שאלון לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## מבוא
+
+בתוכנית לימודים זו, תתחילו לגלות כיצד למידת מכונה משפיעה על חיי היומיום שלנו. כבר עכשיו, מערכות ומודלים מעורבים במשימות קבלת החלטות יומיומיות, כמו אבחנות רפואיות, אישורי הלוואות או זיהוי הונאות. לכן, חשוב שהמודלים הללו יפעלו בצורה טובה ויספקו תוצאות אמינות. כמו כל יישום תוכנה, מערכות AI עשויות לאכזב או להוביל לתוצאה לא רצויה. זו הסיבה שחשוב להבין ולהסביר את ההתנהגות של מודל AI.
+
+דמיינו מה יכול לקרות כאשר הנתונים שבהם אתם משתמשים לבניית המודלים חסרים ייצוג של קבוצות דמוגרפיות מסוימות, כמו גזע, מגדר, השקפה פוליטית, דת, או מייצגים אותן באופן לא פרופורציונלי. ומה לגבי מצב שבו תוצאות המודל מפורשות כך שהן מעדיפות קבוצה דמוגרפית מסוימת? מה ההשלכות עבור היישום? בנוסף, מה קורה כאשר למודל יש תוצאה שלילית שפוגעת באנשים? מי אחראי להתנהגות של מערכות AI? אלו שאלות שנחקור בתוכנית לימודים זו.
+
+בשיעור זה תלמדו:
+
+- להעלות את המודעות לחשיבות ההוגנות בלמידת מכונה ולנזקים הקשורים להוגנות.
+- להכיר את הפרקטיקה של חקר חריגים ותסריטים לא שגרתיים כדי להבטיח אמינות ובטיחות.
+- להבין את הצורך להעצים את כולם על ידי עיצוב מערכות מכילות.
+- לחקור את החשיבות של הגנה על פרטיות ואבטחת נתונים ואנשים.
+- לראות את החשיבות של גישה שקופה להסבר התנהגות מודלים של AI.
+- להיות מודעים לכך שאחריות היא חיונית לבניית אמון במערכות AI.
+
+## דרישות מקדימות
+
+כדרישה מקדימה, אנא עברו על מסלול הלמידה "עקרונות AI אחראי" וצפו בסרטון הבא בנושא:
+
+למדו עוד על AI אחראי על ידי מעקב אחר [מסלול הלמידה](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott)
+
+[](https://youtu.be/dnC8-uUZXSc "הגישה של Microsoft ל-AI אחראי")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: הגישה של Microsoft ל-AI אחראי
+
+## הוגנות
+
+מערכות AI צריכות להתייחס לכולם באופן הוגן ולהימנע מהשפעה שונה על קבוצות דומות של אנשים. לדוגמה, כאשר מערכות AI מספקות המלצות לטיפול רפואי, בקשות להלוואות או תעסוקה, עליהן להציע את אותן המלצות לכל מי שיש לו סימפטומים, נסיבות פיננסיות או כישורים מקצועיים דומים. כל אחד מאיתנו נושא עמו הטיות מובנות שמשפיעות על ההחלטות והפעולות שלנו. הטיות אלו יכולות להיות ניכרות בנתונים שבהם אנו משתמשים לאימון מערכות AI. לעיתים, מניפולציה כזו מתרחשת באופן לא מכוון. קשה לעיתים לדעת באופן מודע מתי אנו מכניסים הטיה לנתונים.
+
+**"חוסר הוגנות"** כולל השפעות שליליות, או "נזקים", לקבוצה של אנשים, כמו אלו המוגדרים לפי גזע, מגדר, גיל או מצב נכות. הנזקים העיקריים הקשורים להוגנות יכולים להיות מסווגים כ:
+
+- **הקצאה**, אם מגדר או אתניות, לדוגמה, מועדפים על פני אחרים.
+- **איכות השירות**. אם מאמנים את הנתונים לתרחיש ספציפי אך המציאות מורכבת יותר, זה מוביל לשירות בעל ביצועים ירודים. לדוגמה, מתקן סבון ידיים שלא הצליח לזהות אנשים עם עור כהה. [מקור](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773)
+- **השמצה**. ביקורת לא הוגנת ותיוג של משהו או מישהו. לדוגמה, טכנולוגיית תיוג תמונות שגתה בתיוג תמונות של אנשים כהי עור כגורילות.
+- **ייצוג יתר או חסר**. הרעיון הוא שקבוצה מסוימת אינה נראית במקצוע מסוים, וכל שירות או פונקציה שממשיכים לקדם זאת תורמים לנזק.
+- **סטראוטיפים**. שיוך קבוצה מסוימת לתכונות שהוקצו מראש. לדוגמה, מערכת תרגום בין אנגלית לטורקית עשויה לכלול אי דיוקים בשל מילים עם שיוך סטראוטיפי למגדר.
+
+
+> תרגום לטורקית
+
+
+> תרגום חזרה לאנגלית
+
+בעת עיצוב ובדיקת מערכות AI, עלינו להבטיח שה-AI יהיה הוגן ולא יתוכנת לקבל החלטות מוטות או מפלות, שאסורות גם על בני אדם. הבטחת הוגנות ב-AI ובלמידת מכונה נותרת אתגר סוציוטכני מורכב.
+
+### אמינות ובטיחות
+
+כדי לבנות אמון, מערכות AI צריכות להיות אמינות, בטוחות ועקביות בתנאים רגילים ולא צפויים. חשוב לדעת כיצד מערכות AI יתנהגו במגוון מצבים, במיוחד כאשר מדובר בחריגים. בעת בניית פתרונות AI, יש להתמקד באופן משמעותי בטיפול במגוון רחב של נסיבות שהפתרונות עשויים להיתקל בהן. לדוגמה, רכב אוטונומי צריך לשים את בטיחות האנשים בראש סדר העדיפויות. כתוצאה מכך, ה-AI שמפעיל את הרכב צריך לשקול את כל התרחישים האפשריים שהרכב עשוי להיתקל בהם, כמו לילה, סופות רעמים או שלגים, ילדים שרצים ברחוב, חיות מחמד, עבודות בכביש וכו'. עד כמה מערכת AI יכולה להתמודד עם מגוון רחב של תנאים בצורה אמינה ובטוחה משקף את רמת הציפייה שהמדען נתונים או מפתח ה-AI לקחו בחשבון במהלך העיצוב או הבדיקה של המערכת.
+
+> [🎥 לחצו כאן לצפייה בסרטון: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
+
+### הכלה
+
+מערכות AI צריכות להיות מעוצבות כך שיתקשרו ויעצימו את כולם. בעת עיצוב ויישום מערכות AI, מדעני נתונים ומפתחי AI מזהים ומטפלים במחסומים פוטנציאליים במערכת שיכולים להוציא אנשים באופן לא מכוון. לדוגמה, ישנם מיליארד אנשים עם מוגבלויות ברחבי העולם. עם התקדמות ה-AI, הם יכולים לגשת למגוון רחב של מידע והזדמנויות בקלות רבה יותר בחיי היומיום שלהם. על ידי טיפול במחסומים, נוצרת הזדמנות לחדש ולפתח מוצרים AI עם חוויות טובות יותר שמועילות לכולם.
+
+> [🎥 לחצו כאן לצפייה בסרטון: הכלה ב-AI](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
+
+### אבטחה ופרטיות
+
+מערכות AI צריכות להיות בטוחות ולכבד את פרטיות האנשים. אנשים נותנים פחות אמון במערכות שמסכנות את פרטיותם, המידע שלהם או חייהם. בעת אימון מודלים של למידת מכונה, אנו מסתמכים על נתונים כדי להפיק את התוצאות הטובות ביותר. תוך כדי כך, יש לקחת בחשבון את מקור הנתונים ואת שלמותם. לדוגמה, האם הנתונים הוגשו על ידי משתמשים או היו זמינים לציבור? לאחר מכן, בעת עבודה עם הנתונים, חשוב לפתח מערכות AI שיכולות להגן על מידע חסוי ולהתנגד להתקפות. ככל שה-AI הופך לנפוץ יותר, הגנה על פרטיות ואבטחת מידע אישי ועסקי חשובים הופכת לקריטית ומורכבת יותר. סוגיות פרטיות ואבטחת נתונים דורשות תשומת לב מיוחדת עבור AI מכיוון שגישה לנתונים חיונית למערכות AI כדי לבצע תחזיות והחלטות מדויקות ומושכלות על אנשים.
+
+> [🎥 לחצו כאן לצפייה בסרטון: אבטחה ב-AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- בתעשייה עשינו התקדמות משמעותית בפרטיות ואבטחה, מונעת באופן משמעותי על ידי רגולציות כמו ה-GDPR (General Data Protection Regulation).
+- עם זאת, במערכות AI עלינו להכיר במתח בין הצורך ביותר נתונים אישיים כדי להפוך את המערכות ליותר אישיות ויעילות – לבין פרטיות.
+- כמו עם לידת המחשבים המחוברים לאינטרנט, אנו גם רואים עלייה משמעותית במספר סוגיות האבטחה הקשורות ל-AI.
+- באותו הזמן, ראינו שימוש ב-AI לשיפור האבטחה. לדוגמה, רוב סורקי האנטי-וירוס המודרניים מונעים על ידי AI היום.
+- עלינו להבטיח שתהליכי מדע הנתונים שלנו ישתלבו בהרמוניה עם שיטות הפרטיות והאבטחה העדכניות ביותר.
+
+### שקיפות
+
+מערכות AI צריכות להיות מובנות. חלק קריטי בשקיפות הוא הסבר ההתנהגות של מערכות AI ושל רכיביהן. שיפור ההבנה של מערכות AI דורש שהגורמים המעורבים יבינו כיצד ולמה הן פועלות, כך שיוכלו לזהות בעיות ביצועים פוטנציאליות, חששות בטיחות ופרטיות, הטיות, פרקטיקות מפלות או תוצאות לא מכוונות. אנו גם מאמינים שמי שמשתמש במערכות AI צריך להיות כנה וגלוי לגבי מתי, למה ואיך הוא בוחר להפעיל אותן, כמו גם לגבי המגבלות של המערכות שהוא משתמש בהן. לדוגמה, אם בנק משתמש במערכת AI כדי לתמוך בהחלטות הלוואה לצרכנים, חשוב לבחון את התוצאות ולהבין אילו נתונים משפיעים על ההמלצות של המערכת. ממשלות מתחילות להסדיר את ה-AI בתעשיות שונות, ולכן מדעני נתונים וארגונים חייבים להסביר אם מערכת AI עומדת בדרישות הרגולציה, במיוחד כאשר יש תוצאה לא רצויה.
+
+> [🎥 לחצו כאן לצפייה בסרטון: שקיפות ב-AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- מכיוון שמערכות AI כל כך מורכבות, קשה להבין כיצד הן פועלות ולפרש את התוצאות.
+- חוסר הבנה זה משפיע על האופן שבו מערכות אלו מנוהלות, מופעלות ומתועדות.
+- חוסר הבנה זה משפיע יותר מכל על ההחלטות שמתקבלות באמצעות התוצאות שמערכות אלו מפיקות.
+
+### אחריות
+
+האנשים שמעצבים ומפעילים מערכות AI חייבים להיות אחראים לאופן שבו המערכות שלהם פועלות. הצורך באחריות הוא קריטי במיוחד בטכנולוגיות רגישות כמו זיהוי פנים. לאחרונה, ישנה דרישה גוברת לטכנולוגיית זיהוי פנים, במיוחד מארגוני אכיפת חוק שרואים את הפוטנציאל של הטכנולוגיה בשימושים כמו מציאת ילדים נעדרים. עם זאת, טכנולוגיות אלו עשויות לשמש ממשלות כדי לסכן את חירויות היסוד של אזרחיהן, למשל, על ידי הפעלת מעקב מתמשך על אנשים מסוימים. לכן, מדעני נתונים וארגונים צריכים להיות אחראים לאופן שבו מערכת ה-AI שלהם משפיעה על אנשים או על החברה.
+
+[](https://www.youtube.com/watch?v=Wldt8P5V6D0 "הגישה של Microsoft ל-AI אחראי")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: אזהרות מפני מעקב המוני באמצעות זיהוי פנים
+
+בסופו של דבר, אחת השאלות הגדולות ביותר לדור שלנו, כראשון שמביא את ה-AI לחברה, היא כיצד להבטיח שמחשבים יישארו אחראים לאנשים וכיצד להבטיח שהאנשים שמעצבים מחשבים יישארו אחראים לכל השאר.
+
+## הערכת השפעה
+
+לפני אימון מודל למידת מכונה, חשוב לבצע הערכת השפעה כדי להבין את מטרת מערכת ה-AI; מה השימוש המיועד; היכן היא תופעל; ומי יתקשר עם המערכת. אלו מועילים לבוחנים או למבקרים שמעריכים את המערכת לדעת אילו גורמים יש לקחת בחשבון בעת זיהוי סיכונים פוטנציאליים ותוצאות צפויות.
+
+התחומים הבאים הם מוקדי תשומת לב בעת ביצוע הערכת השפעה:
+
+* **השפעה שלילית על אנשים**. מודעות לכל מגבלה או דרישה, שימוש לא נתמך או כל מגבלה ידועה שמפריעה לביצועי המערכת היא חיונית כדי להבטיח שהמערכת לא תופעל באופן שעלול לגרום נזק לאנשים.
+* **דרישות נתונים**. הבנת האופן והיכן המערכת תשתמש בנתונים מאפשרת למבקרים לחקור כל דרישות נתונים שיש לקחת בחשבון (למשל, תקנות GDPR או HIPPA). בנוסף, יש לבחון האם מקור או כמות הנתונים מספקים לאימון.
+* **סיכום השפעה**. איסוף רשימה של נזקים פוטנציאליים שעלולים להתעורר משימוש במערכת. לאורך מחזור החיים של למידת מכונה, יש לבדוק אם הבעיות שזוהו טופלו או נפתרו.
+* **מטרות ישימות** לכל אחד מששת העקרונות המרכזיים. יש להעריך אם המטרות מכל אחד מהעקרונות הושגו ואם יש פערים.
+
+## איתור באגים עם AI אחראי
+
+בדומה לאיתור באגים ביישום תוכנה, איתור באגים במערכת AI הוא תהליך הכרחי לזיהוי ופתרון בעיות במערכת. ישנם גורמים רבים שיכולים להשפיע על כך שמודל לא יפעל כמצופה או באופן אחראי. רוב מדדי הביצועים המסורתיים של מודלים הם אגרגטים כמותיים של ביצועי המודל, שאינם מספיקים לניתוח כיצד מודל מפר את עקרונות ה-AI האחראי. יתרה מכך, מודל למידת מכונה הוא "קופסה שחורה" שמקשה להבין מה מניע את תוצאותיו או לספק הסבר כאשר הוא טועה. בהמשך הקורס, נלמד כיצד להשתמש בלוח המחוונים של AI אחראי כדי לעזור באיתור באגים במערכות AI. לוח המחוונים מספק כלי הוליסטי למדעני נתונים ומפתחי AI לבצע:
+
+* **ניתוח שגיאות**. לזהות את התפלגות השגיאות של המודל שיכולה להשפיע על ההוגנות או האמינות של המערכת.
+* **סקירת מודל**. לגלות היכן יש פערים בביצועי המודל בין קבוצות נתונים שונות.
+* **ניתוח נתונים**. להבין את התפלגות הנתונים ולזהות כל הטיה פוטנציאלית בנתונים שעלולה להוביל לבעיות הוגנות, הכלה ואמינות.
+* **הבנת מודל**. להבין מה משפיע או משפיע על תחזיות המודל. זה עוזר להסביר את התנהגות המודל, שחשובה לשקיפות ואחריות.
+
+## 🚀 אתגר
+
+כדי למנוע נזקים מלהיות מוכנסים מלכתחילה, עלינו:
+
+- לכלול מגוון של רקעים ופרספקטיבות בקרב האנשים שעובדים על מערכות
+- להשקיע במאגרי נתונים שמייצגים את המגוון של החברה שלנו
+- לפתח שיטות טובות יותר לאורך מחזור החיים של למידת מכונה לזיהוי ותיקון AI אחראי כאשר הוא מתרחש
+
+חשבו על תרחישים אמיתיים שבהם חוסר אמינות של מודל ניכר בבנייה ובשימוש במודל. מה עוד כדאי לקחת בחשבון?
+
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+בשיעור זה, למדתם כמה יסודות של מושגי הוגנות וחוסר הוגנות בלמידת מכונה.
+צפו בסדנה זו כדי להעמיק בנושאים:
+
+- במרדף אחר בינה מלאכותית אחראית: יישום עקרונות בפועל מאת בסמירה נושי, מהרנוש סמקי ואמיט שארמה
+
+[](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: מסגרת קוד פתוח לבניית בינה מלאכותית אחראית")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: RAI Toolbox: מסגרת קוד פתוח לבניית בינה מלאכותית אחראית מאת בסמירה נושי, מהרנוש סמקי ואמיט שארמה
+
+בנוסף, קראו:
+
+- מרכז המשאבים של Microsoft בנושא בינה מלאכותית אחראית: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- קבוצת המחקר FATE של Microsoft: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+RAI Toolbox:
+
+- [מאגר GitHub של Responsible AI Toolbox](https://github.com/microsoft/responsible-ai-toolbox)
+
+קראו על הכלים של Azure Machine Learning להבטחת הוגנות:
+
+- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott)
+
+## משימה
+
+[חקור את RAI Toolbox](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/3-fairness/assignment.md b/translations/he/1-Introduction/3-fairness/assignment.md
new file mode 100644
index 00000000..4473fc6e
--- /dev/null
+++ b/translations/he/1-Introduction/3-fairness/assignment.md
@@ -0,0 +1,25 @@
+
+# חקור את ערכת הכלים של AI אחראי
+
+## הוראות
+
+בשיעור זה למדתם על ערכת הכלים של AI אחראי, פרויקט "קוד פתוח, מונע על ידי הקהילה, שנועד לעזור למדעני נתונים לנתח ולשפר מערכות AI." למשימה זו, חקרו אחד מהמחברות של RAI Toolbox [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) ודווחו על הממצאים שלכם במאמר או מצגת.
+
+## קריטריונים להערכה
+
+| קריטריונים | מצטיין | מספק | דורש שיפור |
+| ----------- | ------- | ----- | ----------- |
+| | מאמר או מצגת פאוורפוינט מוצגים, דנים במערכות של Fairlearn, המחברת שהורצה והמסקנות שהוסקו מהרצתה | מאמר מוצג ללא מסקנות | לא מוצג מאמר |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס AI [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/4-techniques-of-ML/README.md b/translations/he/1-Introduction/4-techniques-of-ML/README.md
new file mode 100644
index 00000000..172a556b
--- /dev/null
+++ b/translations/he/1-Introduction/4-techniques-of-ML/README.md
@@ -0,0 +1,132 @@
+
+# טכניקות בלמידת מכונה
+
+תהליך הבנייה, השימוש והתחזוקה של מודלים בלמידת מכונה והנתונים שהם משתמשים בהם שונה מאוד מתהליכי פיתוח אחרים. בשיעור זה, נבאר את התהליך ונפרט את הטכניקות המרכזיות שעליכם להכיר. אתם תלמדו:
+
+- להבין את התהליכים שמניעים למידת מכונה ברמה גבוהה.
+- לחקור מושגים בסיסיים כמו 'מודלים', 'תחזיות' ו'נתוני אימון'.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+[](https://youtu.be/4NGM0U2ZSHU "ML למתחילים - טכניקות בלמידת מכונה")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר שמסביר את השיעור.
+
+## מבוא
+
+ברמה גבוהה, מלאכת יצירת תהליכי למידת מכונה (ML) מורכבת ממספר שלבים:
+
+1. **הגדרת השאלה**. רוב תהליכי ML מתחילים בשאלה שלא ניתן לענות עליה באמצעות תוכנית מותנית פשוטה או מנוע מבוסס חוקים. שאלות אלו לרוב עוסקות בתחזיות המבוססות על אוסף נתונים.
+2. **איסוף והכנת נתונים**. כדי לענות על השאלה שלכם, אתם זקוקים לנתונים. איכות ולעיתים גם כמות הנתונים שלכם יקבעו עד כמה תוכלו לענות על השאלה הראשונית שלכם. ויזואליזציה של נתונים היא חלק חשוב בשלב זה. שלב זה כולל גם חלוקת הנתונים לקבוצת אימון ובדיקה לצורך בניית מודל.
+3. **בחירת שיטת אימון**. בהתאם לשאלה שלכם ולאופי הנתונים, עליכם לבחור כיצד לאמן מודל שייצג בצורה הטובה ביותר את הנתונים ויבצע תחזיות מדויקות. זהו החלק בתהליך ML שדורש מומחיות ספציפית ולעיתים ניסוי רב.
+4. **אימון המודל**. באמצעות נתוני האימון שלכם, תשתמשו באלגוריתמים שונים כדי לאמן מודל שיזהה דפוסים בנתונים. המודל עשוי להשתמש במשקלים פנימיים שניתן להתאים כדי להעדיף חלקים מסוימים של הנתונים על פני אחרים לצורך בניית מודל טוב יותר.
+5. **הערכת המודל**. תשתמשו בנתונים שלא נראו בעבר (נתוני הבדיקה שלכם) מתוך הסט שנאסף כדי לראות כיצד המודל מתפקד.
+6. **כיוונון פרמטרים**. בהתבסס על ביצועי המודל שלכם, תוכלו לחזור על התהליך עם פרמטרים או משתנים שונים שמכוונים את התנהגות האלגוריתמים ששימשו לאימון המודל.
+7. **תחזית**. השתמשו בקלט חדש כדי לבדוק את דיוק המודל שלכם.
+
+## איזו שאלה לשאול
+
+מחשבים מצטיינים במיוחד בגילוי דפוסים נסתרים בנתונים. יכולת זו מועילה מאוד לחוקרים שיש להם שאלות בתחום מסוים שלא ניתן לענות עליהן בקלות באמצעות יצירת מנוע חוקים מותנה. לדוגמה, במשימה אקטוארית, מדען נתונים עשוי להיות מסוגל לבנות חוקים מותאמים אישית סביב תמותת מעשנים לעומת לא מעשנים.
+
+כאשר משתנים רבים נוספים למשוואה, מודל ML עשוי להיות יעיל יותר בתחזית שיעורי תמותה עתידיים בהתבסס על היסטוריית בריאות קודמת. דוגמה משמחת יותר עשויה להיות תחזיות מזג אוויר לחודש אפריל במיקום מסוים בהתבסס על נתונים הכוללים קו רוחב, קו אורך, שינויי אקלים, קרבה לים, דפוסי זרם סילון ועוד.
+
+✅ מצגת זו [מצגת](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) על מודלים של מזג אוויר מציעה פרספקטיבה היסטורית לשימוש ב-ML בניתוח מזג אוויר.
+
+## משימות לפני בנייה
+
+לפני שתתחילו לבנות את המודל שלכם, ישנם מספר משימות שעליכם להשלים. כדי לבדוק את השאלה שלכם ולגבש השערה המבוססת על תחזיות המודל, עליכם לזהות ולהגדיר מספר אלמנטים.
+
+### נתונים
+
+כדי לענות על השאלה שלכם בוודאות כלשהי, אתם זקוקים לכמות מספקת של נתונים מהסוג הנכון. ישנם שני דברים שעליכם לעשות בשלב זה:
+
+- **איסוף נתונים**. תוך שמירה על השיעור הקודם בנושא הוגנות בניתוח נתונים, אספו את הנתונים שלכם בזהירות. היו מודעים למקורות הנתונים, להטיות מובנות שהם עשויים להכיל, ותעדו את מקורם.
+- **הכנת נתונים**. ישנם מספר שלבים בתהליך הכנת הנתונים. ייתכן שתצטרכו לאחד נתונים ולנרמל אותם אם הם מגיעים ממקורות מגוונים. תוכלו לשפר את איכות וכמות הנתונים באמצעות שיטות שונות כמו המרת מחרוזות למספרים (כפי שעשינו ב[Clustering](../../5-Clustering/1-Visualize/README.md)). ייתכן שתייצרו נתונים חדשים בהתבסס על המקור (כפי שעשינו ב[Classification](../../4-Classification/1-Introduction/README.md)). תוכלו לנקות ולערוך את הנתונים (כפי שנעשה לפני השיעור על [אפליקציות אינטרנט](../../3-Web-App/README.md)). לבסוף, ייתכן שתצטרכו גם לערבב ולשנות את סדר הנתונים, בהתאם לטכניקות האימון שלכם.
+
+✅ לאחר איסוף ועיבוד הנתונים, הקדישו רגע לבדוק אם הצורה שלהם תאפשר לכם להתמודד עם השאלה המיועדת. ייתכן שהנתונים לא יתפקדו היטב במשימה שלכם, כפי שגילינו בשיעורי [Clustering](../../5-Clustering/1-Visualize/README.md)!
+
+### מאפיינים ומטרה
+
+[מאפיין](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) הוא תכונה מדידה של הנתונים שלכם. בהרבה מערכי נתונים הוא מתבטא ככותרת עמודה כמו 'תאריך', 'גודל' או 'צבע'. משתנה המאפיין שלכם, שמיוצג בדרך כלל כ-`X` בקוד, מייצג את משתנה הקלט שישמש לאימון המודל.
+
+מטרה היא הדבר שאתם מנסים לחזות. המטרה, שמיוצגת בדרך כלל כ-`y` בקוד, מייצגת את התשובה לשאלה שאתם מנסים לשאול מהנתונים שלכם: בחודש דצמבר, איזה **צבע** דלעות יהיה הזול ביותר? בסן פרנסיסקו, אילו שכונות יהיו בעלות **מחיר** הנדל"ן הטוב ביותר? לעיתים המטרה מכונה גם תכונת תווית.
+
+### בחירת משתנה המאפיין שלכם
+
+🎓 **בחירת מאפיינים והפקת מאפיינים** איך תדעו איזה משתנה לבחור בעת בניית מודל? סביר להניח שתעברו תהליך של בחירת מאפיינים או הפקת מאפיינים כדי לבחור את המשתנים הנכונים למודל הביצועי ביותר. עם זאת, הם אינם אותו הדבר: "הפקת מאפיינים יוצרת מאפיינים חדשים מפונקציות של המאפיינים המקוריים, בעוד שבחירת מאפיינים מחזירה תת-קבוצה של המאפיינים." ([מקור](https://wikipedia.org/wiki/Feature_selection))
+
+### ויזואליזציה של הנתונים שלכם
+
+היבט חשוב בארגז הכלים של מדען הנתונים הוא היכולת לייצג נתונים באופן חזותי באמצעות ספריות מצוינות כמו Seaborn או MatPlotLib. ייצוג הנתונים שלכם באופן חזותי עשוי לאפשר לכם לחשוף קשרים נסתרים שתוכלו לנצל. הוויזואליזציות שלכם עשויות גם לעזור לכם לחשוף הטיות או נתונים לא מאוזנים (כפי שגילינו ב[Classification](../../4-Classification/2-Classifiers-1/README.md)).
+
+### חלוקת מערך הנתונים שלכם
+
+לפני האימון, עליכם לחלק את מערך הנתונים שלכם לשני חלקים או יותר בגודל לא שווה שעדיין מייצגים את הנתונים היטב.
+
+- **אימון**. חלק זה של מערך הנתונים מותאם למודל שלכם כדי לאמן אותו. סט זה מהווה את רוב מערך הנתונים המקורי.
+- **בדיקה**. מערך בדיקה הוא קבוצה עצמאית של נתונים, לעיתים נאספת מהנתונים המקוריים, שבה אתם משתמשים כדי לאשר את ביצועי המודל שנבנה.
+- **אימות**. סט אימות הוא קבוצה עצמאית קטנה יותר של דוגמאות שבה אתם משתמשים לכוונון ההיפר-פרמטרים של המודל או הארכיטקטורה שלו כדי לשפר את המודל. בהתאם לגודל הנתונים שלכם ולשאלה שאתם שואלים, ייתכן שלא תצטרכו לבנות את הסט השלישי הזה (כפי שאנו מציינים ב[תחזיות סדרות זמן](../../7-TimeSeries/1-Introduction/README.md)).
+
+## בניית מודל
+
+באמצעות נתוני האימון שלכם, המטרה שלכם היא לבנות מודל, או ייצוג סטטיסטי של הנתונים שלכם, באמצעות אלגוריתמים שונים כדי **לאמן** אותו. אימון מודל חושף אותו לנתונים ומאפשר לו לבצע הנחות לגבי דפוסים שהוא מגלה, מאמת ומקבל או דוחה.
+
+### החלטה על שיטת אימון
+
+בהתאם לשאלה שלכם ולאופי הנתונים, תבחרו שיטה לאמן אותם. מעבר על [התיעוד של Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - שבו אנו משתמשים בקורס זה - תוכלו לחקור דרכים רבות לאמן מודל. בהתאם לניסיונכם, ייתכן שתצטרכו לנסות מספר שיטות שונות כדי לבנות את המודל הטוב ביותר. סביר להניח שתעברו תהליך שבו מדעני נתונים מעריכים את ביצועי המודל על ידי הזנת נתונים שלא נראו בעבר, בדיקת דיוק, הטיה ונושאים אחרים שמפחיתים את האיכות, ובחירת שיטת האימון המתאימה ביותר למשימה.
+
+### אימון מודל
+
+מצוידים בנתוני האימון שלכם, אתם מוכנים 'להתאים' אותם כדי ליצור מודל. תבחינו שבספריות ML רבות תמצאו את הקוד 'model.fit' - זהו הזמן שבו אתם שולחים את משתנה המאפיין שלכם כמערך ערכים (בדרך כלל 'X') ומשתנה מטרה (בדרך כלל 'y').
+
+### הערכת המודל
+
+לאחר שתהליך האימון הושלם (זה יכול לקחת מספר איטרציות, או 'epochs', כדי לאמן מודל גדול), תוכלו להעריך את איכות המודל באמצעות נתוני בדיקה כדי למדוד את ביצועיו. נתונים אלו הם תת-קבוצה של הנתונים המקוריים שהמודל לא ניתח בעבר. תוכלו להדפיס טבלה של מדדים על איכות המודל שלכם.
+
+🎓 **התאמת מודל**
+
+בהקשר של למידת מכונה, התאמת מודל מתייחסת לדיוק הפונקציה הבסיסית של המודל כשהוא מנסה לנתח נתונים שאינם מוכרים לו.
+
+🎓 **התאמה חסרה** ו**התאמה יתרה** הן בעיות נפוצות שמפחיתות את איכות המודל, כאשר המודל מתאים או לא מספיק טוב או יותר מדי טוב. זה גורם למודל לבצע תחזיות שמותאמות או קרובות מדי או רחוקות מדי לנתוני האימון שלו. מודל מותאם יתר על המידה חוזה נתוני אימון טוב מדי מכיוון שהוא למד את הפרטים והרעש של הנתונים טוב מדי. מודל מותאם חסר אינו מדויק מכיוון שהוא לא יכול לנתח בצורה מדויקת את נתוני האימון שלו או נתונים שהוא עדיין לא 'ראה'.
+
+
+> אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+## כיוונון פרמטרים
+
+לאחר שהאימון הראשוני שלכם הושלם, התבוננו באיכות המודל ושקלו לשפר אותו על ידי כיוונון 'היפר-פרמטרים' שלו. קראו עוד על התהליך [בתיעוד](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+
+## תחזית
+
+זהו הרגע שבו תוכלו להשתמש בנתונים חדשים לחלוטין כדי לבדוק את דיוק המודל שלכם. בהקשר של ML 'מופעל', שבו אתם בונים נכסי אינטרנט לשימוש המודל בייצור, תהליך זה עשוי לכלול איסוף קלט משתמש (לחיצה על כפתור, למשל) כדי להגדיר משתנה ולשלוח אותו למודל לצורך הסקה או הערכה.
+
+בשיעורים אלו, תגלו כיצד להשתמש בשלבים אלו כדי להכין, לבנות, לבדוק, להעריך ולחזות - כל המחוות של מדען נתונים ועוד, ככל שתתקדמו במסע שלכם להפוך ל'מהנדס ML מלא'.
+
+---
+
+## 🚀אתגר
+
+ציירו תרשים זרימה שמייצג את שלבי העבודה של מומחה ML. היכן אתם רואים את עצמכם כרגע בתהליך? היכן אתם צופים שתתקלו בקשיים? מה נראה לכם קל?
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+חפשו באינטרנט ראיונות עם מדעני נתונים שמדברים על עבודתם היומיומית. הנה [אחד](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+
+## משימה
+
+[ראיינו מדען נתונים](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/4-techniques-of-ML/assignment.md b/translations/he/1-Introduction/4-techniques-of-ML/assignment.md
new file mode 100644
index 00000000..81d01284
--- /dev/null
+++ b/translations/he/1-Introduction/4-techniques-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# ראיון עם מדען נתונים
+
+## הוראות
+
+בחברה שלכם, בקבוצת משתמשים, או בין חברים או עמיתים ללימודים, שוחחו עם מישהו שעובד באופן מקצועי כמדען נתונים. כתבו מאמר קצר (500 מילים) על העיסוקים היומיומיים שלהם. האם הם מתמחים בתחום מסוים, או שהם עובדים בגישה של 'מלא ערימה'?
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| --------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------- | --------------------- |
+| | מאמר באורך הנדרש, עם מקורות מצוינים, מוגש כקובץ .doc | המאמר עם ייחוס לקוי או קצר מהאורך הנדרש | לא הוגש מאמר |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/1-Introduction/README.md b/translations/he/1-Introduction/README.md
new file mode 100644
index 00000000..1f5862f1
--- /dev/null
+++ b/translations/he/1-Introduction/README.md
@@ -0,0 +1,37 @@
+
+# מבוא ללמידת מכונה
+
+בחלק זה של תוכנית הלימודים, תכירו את המושגים הבסיסיים שמאחורי תחום הלמידת המכונה, מה זה בעצם, ותלמדו על ההיסטוריה שלו ועל הטכניקות שהחוקרים משתמשים בהן כדי לעבוד איתו. בואו נחקור יחד את העולם החדש הזה של למידת מכונה!
+
+
+> צילום על ידי Bill Oxford ב-Unsplash
+
+### שיעורים
+
+1. [מבוא ללמידת מכונה](1-intro-to-ML/README.md)
+1. [ההיסטוריה של למידת מכונה ובינה מלאכותית](2-history-of-ML/README.md)
+1. [הוגנות בלמידת מכונה](3-fairness/README.md)
+1. [טכניקות בלמידת מכונה](4-techniques-of-ML/README.md)
+
+### קרדיטים
+
+"מבוא ללמידת מכונה" נכתב באהבה על ידי צוות אנשים כולל [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) ו-[Jen Looper](https://twitter.com/jenlooper)
+
+"ההיסטוריה של למידת מכונה" נכתב באהבה על ידי [Jen Looper](https://twitter.com/jenlooper) ו-[Amy Boyd](https://twitter.com/AmyKateNicho)
+
+"הוגנות בלמידת מכונה" נכתב באהבה על ידי [Tomomi Imura](https://twitter.com/girliemac)
+
+"טכניקות בלמידת מכונה" נכתב באהבה על ידי [Jen Looper](https://twitter.com/jenlooper) ו-[Chris Noring](https://twitter.com/softchris)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/1-Tools/README.md b/translations/he/2-Regression/1-Tools/README.md
new file mode 100644
index 00000000..1b272135
--- /dev/null
+++ b/translations/he/2-Regression/1-Tools/README.md
@@ -0,0 +1,239 @@
+
+# התחילו עם Python ו-Scikit-learn עבור מודלים של רגרסיה
+
+
+
+> סקצ'נוט מאת [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [השיעור הזה זמין גם ב-R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
+
+## מבוא
+
+בארבעת השיעורים הללו, תלמדו כיצד לבנות מודלים של רגרסיה. נדון במה הם משמשים בקרוב. אבל לפני שתתחילו, ודאו שיש לכם את הכלים הנכונים כדי להתחיל את התהליך!
+
+בשיעור הזה תלמדו:
+
+- להגדיר את המחשב שלכם למשימות למידת מכונה מקומיות.
+- לעבוד עם מחברות Jupyter.
+- להשתמש ב-Scikit-learn, כולל התקנה.
+- לחקור רגרסיה ליניארית באמצעות תרגיל מעשי.
+
+## התקנות והגדרות
+
+[](https://youtu.be/-DfeD2k2Kj0 "ML למתחילים - הגדרת הכלים שלכם לבניית מודלים של למידת מכונה")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על הגדרת המחשב שלכם ללמידת מכונה.
+
+1. **התקינו Python**. ודאו ש-[Python](https://www.python.org/downloads/) מותקן במחשב שלכם. תשתמשו ב-Python עבור משימות רבות במדעי הנתונים ולמידת מכונה. רוב מערכות המחשב כבר כוללות התקנה של Python. ישנם [חבילות קוד Python](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) שימושיות שיכולות להקל על ההגדרה עבור חלק מהמשתמשים.
+
+ עם זאת, שימושים מסוימים ב-Python דורשים גרסה אחת של התוכנה, בעוד אחרים דורשים גרסה שונה. לכן, כדאי לעבוד בתוך [סביבה וירטואלית](https://docs.python.org/3/library/venv.html).
+
+2. **התקינו Visual Studio Code**. ודאו ש-Visual Studio Code מותקן במחשב שלכם. עקבו אחר ההוראות הללו ל-[התקנת Visual Studio Code](https://code.visualstudio.com/) עבור התקנה בסיסית. אתם הולכים להשתמש ב-Python בתוך Visual Studio Code בקורס הזה, אז אולי תרצו ללמוד כיצד [להגדיר את Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) לפיתוח ב-Python.
+
+ > תרגישו בנוח עם Python על ידי עבודה עם אוסף זה של [מודולי למידה](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott)
+ >
+ > [](https://youtu.be/yyQM70vi7V8 "הגדרת Python עם Visual Studio Code")
+ >
+ > 🎥 לחצו על התמונה למעלה לצפייה בסרטון: שימוש ב-Python בתוך VS Code.
+
+3. **התקינו Scikit-learn**, על ידי מעקב אחר [ההוראות הללו](https://scikit-learn.org/stable/install.html). מכיוון שאתם צריכים לוודא שאתם משתמשים ב-Python 3, מומלץ להשתמש בסביבה וירטואלית. שימו לב, אם אתם מתקינים את הספרייה הזו על Mac עם M1, יש הוראות מיוחדות בעמוד המקושר למעלה.
+
+4. **התקינו Jupyter Notebook**. תצטרכו [להתקין את חבילת Jupyter](https://pypi.org/project/jupyter/).
+
+## סביבת העבודה שלכם ללמידת מכונה
+
+אתם הולכים להשתמש ב-**מחברות** כדי לפתח את קוד ה-Python שלכם וליצור מודלים של למידת מכונה. סוג קובץ זה הוא כלי נפוץ עבור מדעני נתונים, וניתן לזהות אותו לפי הסיומת `.ipynb`.
+
+מחברות הן סביבה אינטראקטיבית שמאפשרת למפתח גם לקודד וגם להוסיף הערות ולכתוב תיעוד סביב הקוד, מה שמאוד מועיל עבור פרויקטים ניסיוניים או מחקריים.
+
+[](https://youtu.be/7E-jC8FLA2E "ML למתחילים - הגדרת מחברות Jupyter כדי להתחיל לבנות מודלים של רגרסיה")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על ביצוע התרגיל הזה.
+
+### תרגיל - עבודה עם מחברת
+
+בתיקייה הזו, תמצאו את הקובץ _notebook.ipynb_.
+
+1. פתחו את _notebook.ipynb_ ב-Visual Studio Code.
+
+ שרת Jupyter יתחיל עם Python 3+. תמצאו אזורים במחברת שניתן `להריץ`, חלקי קוד. תוכלו להריץ בלוק קוד על ידי בחירת האייקון שנראה כמו כפתור הפעלה.
+
+2. בחרו את האייקון `md` והוסיפו קצת Markdown, ואת הטקסט הבא **# ברוכים הבאים למחברת שלכם**.
+
+ לאחר מכן, הוסיפו קצת קוד Python.
+
+3. הקלידו **print('hello notebook')** בבלוק הקוד.
+4. בחרו את החץ כדי להריץ את הקוד.
+
+ אתם אמורים לראות את ההצהרה המודפסת:
+
+ ```output
+ hello notebook
+ ```
+
+
+
+אתם יכולים לשלב את הקוד שלכם עם הערות כדי לתעד את המחברת בעצמכם.
+
+✅ חשבו לרגע כמה שונה סביבת העבודה של מפתחי אתרים מזו של מדעני נתונים.
+
+## התחלה עם Scikit-learn
+
+עכשיו ש-Python מוגדר בסביבה המקומית שלכם, ואתם מרגישים בנוח עם מחברות Jupyter, בואו נרגיש בנוח גם עם Scikit-learn (יש להגות `sci` כמו `science`). Scikit-learn מספקת [API נרחב](https://scikit-learn.org/stable/modules/classes.html#api-ref) שיעזור לכם לבצע משימות למידת מכונה.
+
+לפי [האתר שלהם](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn היא ספריית למידת מכונה בקוד פתוח שתומכת בלמידה מונחית ולמידה לא מונחית. היא גם מספקת כלים שונים להתאמת מודלים, עיבוד נתונים, בחירת מודלים והערכה, ועוד הרבה כלי עזר."
+
+בקורס הזה, תשתמשו ב-Scikit-learn ובכלים נוספים כדי לבנות מודלים של למידת מכונה לביצוע מה שאנחנו מכנים 'למידת מכונה מסורתית'. נמנענו בכוונה מרשתות נוירונים ולמידה עמוקה, שכן הם מכוסים טוב יותר בתוכנית הלימודים שלנו 'AI למתחילים' שתצא בקרוב.
+
+Scikit-learn הופכת את בניית המודלים והערכתם לשימוש לפשוטה. היא מתמקדת בעיקר בשימוש בנתונים מספריים וכוללת כמה מערכי נתונים מוכנים לשימוש ככלי למידה. היא גם כוללת מודלים מוכנים לסטודנטים לנסות. בואו נחקור את תהליך טעינת הנתונים המובנים מראש ושימוש באומדן מובנה למודל למידת מכונה הראשון עם Scikit-learn באמצעות נתונים בסיסיים.
+
+## תרגיל - המחברת הראשונה שלכם עם Scikit-learn
+
+> מדריך זה נוצר בהשראת [דוגמת הרגרסיה הליניארית](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) באתר של Scikit-learn.
+
+[](https://youtu.be/2xkXL5EUpS0 "ML למתחילים - פרויקט הרגרסיה הליניארית הראשון שלכם ב-Python")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על ביצוע התרגיל הזה.
+
+בקובץ _notebook.ipynb_ המשויך לשיעור הזה, נקו את כל התאים על ידי לחיצה על אייקון 'פח האשפה'.
+
+בקטע הזה, תעבדו עם מערך נתונים קטן על סוכרת שמובנה ב-Scikit-learn לצורכי למידה. דמיינו שאתם רוצים לבדוק טיפול עבור חולי סוכרת. מודלים של למידת מכונה עשויים לעזור לכם לקבוע אילו חולים יגיבו טוב יותר לטיפול, בהתבסס על שילובים של משתנים. אפילו מודל רגרסיה בסיסי מאוד, כאשר הוא מוצג בצורה חזותית, עשוי להראות מידע על משתנים שיעזרו לכם לארגן את הניסויים הקליניים התיאורטיים שלכם.
+
+✅ ישנם סוגים רבים של שיטות רגרסיה, והבחירה תלויה בשאלה שאתם מחפשים תשובה עליה. אם אתם רוצים לחזות את הגובה הסביר של אדם בגיל מסוים, תשתמשו ברגרסיה ליניארית, שכן אתם מחפשים **ערך מספרי**. אם אתם מעוניינים לגלות האם סוג מסוים של מטבח צריך להיחשב טבעוני או לא, אתם מחפשים **שיוך קטגוריה**, ולכן תשתמשו ברגרסיה לוגיסטית. תלמדו יותר על רגרסיה לוגיסטית בהמשך. חשבו קצת על שאלות שתוכלו לשאול את הנתונים, ואיזו משיטה זו תהיה המתאימה יותר.
+
+בואו נתחיל במשימה הזו.
+
+### ייבוא ספריות
+
+למשימה הזו נייבא כמה ספריות:
+
+- **matplotlib**. זהו [כלי גרפי](https://matplotlib.org/) שימושי, ונשתמש בו ליצירת גרף קו.
+- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) היא ספרייה שימושית לטיפול בנתונים מספריים ב-Python.
+- **sklearn**. זו הספרייה [Scikit-learn](https://scikit-learn.org/stable/user_guide.html).
+
+ייבאו כמה ספריות שיעזרו לכם במשימות.
+
+1. הוסיפו ייבוא על ידי הקלדת הקוד הבא:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import numpy as np
+ from sklearn import datasets, linear_model, model_selection
+ ```
+
+ למעלה אתם מייבאים `matplotlib`, `numpy`, ואתם מייבאים `datasets`, `linear_model` ו-`model_selection` מ-`sklearn`. `model_selection` משמש לפיצול נתונים לסטי אימון ובדיקה.
+
+### מערך הנתונים של סוכרת
+
+מערך הנתונים המובנה [diabetes dataset](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) כולל 442 דגימות נתונים על סוכרת, עם 10 משתנים תכונה, שחלקם כוללים:
+
+- גיל: גיל בשנים
+- BMI: מדד מסת גוף
+- BP: לחץ דם ממוצע
+- S1 TC: תאי T (סוג של תאי דם לבנים)
+
+✅ מערך הנתונים הזה כולל את מושג 'מין' כמשתנה תכונה חשוב למחקר על סוכרת. מערכי נתונים רפואיים רבים כוללים סוג זה של סיווג בינארי. חשבו קצת על איך סיווגים כאלה עשויים להוציא חלקים מסוימים מהאוכלוסייה מטיפולים.
+
+עכשיו, טענו את נתוני X ו-y.
+
+> 🎓 זכרו, זו למידה מונחית, ואנחנו צריכים מטרה בשם 'y'.
+
+בתא קוד חדש, טענו את מערך הנתונים של סוכרת על ידי קריאה ל-`load_diabetes()`. הקלט `return_X_y=True` מסמן ש-`X` יהיה מטריצת נתונים, ו-`y` יהיה יעד הרגרסיה.
+
+1. הוסיפו כמה פקודות הדפסה כדי להציג את הצורה של מטריצת הנתונים והאלמנט הראשון שלה:
+
+ ```python
+ X, y = datasets.load_diabetes(return_X_y=True)
+ print(X.shape)
+ print(X[0])
+ ```
+
+ מה שאתם מקבלים בתגובה הוא טופל. מה שאתם עושים הוא להקצות את שני הערכים הראשונים של הטופל ל-`X` ו-`y` בהתאמה. למדו יותר [על טופלים](https://wikipedia.org/wiki/Tuple).
+
+ אתם יכולים לראות שלנתונים האלה יש 442 פריטים בצורת מערכים של 10 אלמנטים:
+
+ ```text
+ (442, 10)
+ [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076
+ -0.04340085 -0.00259226 0.01990842 -0.01764613]
+ ```
+
+ ✅ חשבו קצת על הקשר בין הנתונים ליעד הרגרסיה. רגרסיה ליניארית חוזה קשרים בין תכונה X למשתנה יעד y. האם תוכלו למצוא את [היעד](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) עבור מערך הנתונים של סוכרת בתיעוד? מה מערך הנתונים הזה מדגים, בהתחשב ביעד?
+
+2. לאחר מכן, בחרו חלק ממערך הנתונים הזה כדי לשרטט על ידי בחירת העמודה השלישית של מערך הנתונים. תוכלו לעשות זאת על ידי שימוש באופרטור `:` כדי לבחור את כל השורות, ואז לבחור את העמודה השלישית באמצעות האינדקס (2). תוכלו גם לשנות את צורת הנתונים להיות מערך דו-ממדי - כפי שנדרש לשרטוט - על ידי שימוש ב-`reshape(n_rows, n_columns)`. אם אחד הפרמטרים הוא -1, הממד המתאים מחושב אוטומטית.
+
+ ```python
+ X = X[:, 2]
+ X = X.reshape((-1,1))
+ ```
+
+ ✅ בכל זמן, הדפיסו את הנתונים כדי לבדוק את צורתם.
+
+3. עכשיו כשיש לכם נתונים מוכנים לשרטוט, תוכלו לראות אם מכונה יכולה לעזור לקבוע חלוקה הגיונית בין המספרים במערך הנתונים הזה. כדי לעשות זאת, עליכם לפצל גם את הנתונים (X) וגם את היעד (y) לסטי בדיקה ואימון. ל-Scikit-learn יש דרך פשוטה לעשות זאת; תוכלו לפצל את נתוני הבדיקה שלכם בנקודה נתונה.
+
+ ```python
+ X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
+ ```
+
+4. עכשיו אתם מוכנים לאמן את המודל שלכם! טענו את מודל הרגרסיה הליניארית ואמנו אותו עם סטי האימון של X ו-y באמצעות `model.fit()`:
+
+ ```python
+ model = linear_model.LinearRegression()
+ model.fit(X_train, y_train)
+ ```
+
+ ✅ `model.fit()` היא פונקציה שתראו בהרבה ספריות למידת מכונה כמו TensorFlow.
+
+5. לאחר מכן, צרו תחזית באמצעות נתוני הבדיקה, באמצעות הפונקציה `predict()`. זה ישמש לציור הקו בין קבוצות הנתונים של המודל.
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+6. עכשיו הגיע הזמן להציג את הנתונים בגרף. Matplotlib הוא כלי מאוד שימושי למשימה הזו. צרו גרף פיזור של כל נתוני הבדיקה של X ו-y, והשתמשו בתחזית כדי לצייר קו במקום המתאים ביותר, בין קבוצות הנתונים של המודל.
+
+ ```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()
+ ```
+
+ 
+✅ תחשבו קצת על מה שקורה כאן. קו ישר עובר דרך הרבה נקודות קטנות של נתונים, אבל מה הוא עושה בדיוק? האם אתם יכולים לראות איך אפשר להשתמש בקו הזה כדי לחזות איפה נקודת נתונים חדשה ולא מוכרת צריכה להתאים ביחס לציר ה-y של הגרף? נסו לנסח במילים את השימוש המעשי של המודל הזה.
+
+מזל טוב, יצרתם את מודל הרגרסיה הליניארית הראשון שלכם, ביצעתם תחזית באמצעותו, והצגתם אותה בגרף!
+
+---
+## 🚀אתגר
+
+צרו גרף עבור משתנה אחר מתוך מערך הנתונים הזה. רמז: ערכו את השורה הזו: `X = X[:,2]`. בהתחשב במטרת מערך הנתונים הזה, מה אתם יכולים לגלות על התקדמות מחלת הסוכרת?
+
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+במדריך הזה עבדתם עם רגרסיה ליניארית פשוטה, ולא עם רגרסיה חד-משתנית או רגרסיה מרובת משתנים. קראו מעט על ההבדלים בין השיטות הללו, או צפו ב-[סרטון הזה](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef).
+
+קראו עוד על מושג הרגרסיה וחשבו אילו סוגי שאלות ניתן לענות באמצעות הטכניקה הזו. קחו את [המדריך הזה](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) כדי להעמיק את ההבנה שלכם.
+
+## משימה
+
+[מערך נתונים אחר](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/1-Tools/assignment.md b/translations/he/2-Regression/1-Tools/assignment.md
new file mode 100644
index 00000000..a3d8bc7d
--- /dev/null
+++ b/translations/he/2-Regression/1-Tools/assignment.md
@@ -0,0 +1,27 @@
+
+# רגרסיה עם Scikit-learn
+
+## הוראות
+
+עיינו ב-[מערך הנתונים של Linnerud](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) ב-Scikit-learn. מערך נתונים זה כולל מספר [יעדים](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset): 'הוא מורכב משלושה משתנים של פעילות גופנית (נתונים) ושלושה משתנים פיזיולוגיים (יעדים) שנאספו מעשרים גברים בגיל העמידה במועדון כושר'.
+
+במילים שלכם, תארו כיצד ליצור מודל רגרסיה שימפה את הקשר בין היקף המותניים לבין מספר כפיפות הבטן שבוצעו. עשו את אותו הדבר עבור נקודות הנתונים האחרות במערך נתונים זה.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| ----------------------------- | --------------------------------- | --------------------------- | ------------------------- |
+| הגשת פסקה תיאורית | פסקה כתובה היטב מוגשת | כמה משפטים מוגשים | לא נמסרה תיאור כלשהו |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/1-Tools/solution/Julia/README.md b/translations/he/2-Regression/1-Tools/solution/Julia/README.md
new file mode 100644
index 00000000..42490383
--- /dev/null
+++ b/translations/he/2-Regression/1-Tools/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/2-Data/README.md b/translations/he/2-Regression/2-Data/README.md
new file mode 100644
index 00000000..d429100a
--- /dev/null
+++ b/translations/he/2-Regression/2-Data/README.md
@@ -0,0 +1,226 @@
+
+# בניית מודל רגרסיה באמצעות Scikit-learn: הכנת ויזואליזציה של נתונים
+
+
+
+אינפוגרפיקה מאת [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [השיעור הזה זמין גם ב-R!](../../../../2-Regression/2-Data/solution/R/lesson_2.html)
+
+## מבוא
+
+עכשיו, כשיש לך את הכלים הדרושים כדי להתחיל לבנות מודלים של למידת מכונה באמצעות Scikit-learn, אתה מוכן להתחיל לשאול שאלות על הנתונים שלך. כשאתה עובד עם נתונים ומיישם פתרונות ML, חשוב מאוד להבין איך לשאול את השאלה הנכונה כדי למצות את הפוטנציאל של מערך הנתונים שלך.
+
+בשיעור זה תלמד:
+
+- איך להכין את הנתונים שלך לבניית מודלים.
+- איך להשתמש ב-Matplotlib לויזואליזציה של נתונים.
+
+## לשאול את השאלה הנכונה על הנתונים שלך
+
+השאלה שאתה רוצה לענות עליה תקבע איזה סוג של אלגוריתמים ML תשתמש. איכות התשובה שתקבל תהיה תלויה מאוד באופי הנתונים שלך.
+
+תסתכל על [הנתונים](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) שסופקו לשיעור הזה. אתה יכול לפתוח את קובץ ה-.csv הזה ב-VS Code. מבט מהיר מראה מיד שיש בו ערכים חסרים ותערובת של נתונים טקסטואליים ומספריים. יש גם עמודה מוזרה בשם 'Package' שבה הנתונים הם תערובת של 'sacks', 'bins' וערכים אחרים. למעשה, הנתונים די מבולגנים.
+
+[](https://youtu.be/5qGjczWTrDQ "ML למתחילים - איך לנתח ולנקות מערך נתונים")
+
+> 🎥 לחץ על התמונה למעלה לצפייה בסרטון קצר שמסביר איך להכין את הנתונים לשיעור הזה.
+
+למעשה, זה לא מאוד נפוץ לקבל מערך נתונים שמוכן לחלוטין לשימוש ליצירת מודל ML ישר מהקופסה. בשיעור הזה תלמד איך להכין מערך נתונים גולמי באמצעות ספריות Python סטנדרטיות. תלמד גם טכניקות שונות לויזואליזציה של הנתונים.
+
+## מחקר מקרה: 'שוק הדלעות'
+
+בתיקייה זו תמצא קובץ .csv בתיקיית השורש `data` בשם [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) שמכיל 1757 שורות של נתונים על שוק הדלעות, מסודרות לפי ערים. אלו נתונים גולמיים שנלקחו מתוך [דוחות שוקי היבולים המיוחדים](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) שמופצים על ידי משרד החקלאות של ארצות הברית.
+
+### הכנת נתונים
+
+הנתונים האלה הם נחלת הכלל. ניתן להוריד אותם בקבצים נפרדים רבים, לפי עיר, מאתר ה-USDA. כדי להימנע ממספר רב של קבצים נפרדים, איחדנו את כל נתוני הערים לגיליון אלקטרוני אחד, כך שכבר _הכנו_ את הנתונים מעט. עכשיו, בואו נסתכל מקרוב על הנתונים.
+
+### נתוני הדלעות - מסקנות ראשוניות
+
+מה אתה שם לב לגבי הנתונים האלה? כבר ראית שיש תערובת של טקסטים, מספרים, ערכים חסרים וערכים מוזרים שצריך להבין.
+
+איזו שאלה אפשר לשאול על הנתונים האלה, באמצעות טכניקת רגרסיה? מה דעתך על "לחזות את המחיר של דלעת למכירה במהלך חודש נתון". מבט נוסף על הנתונים מראה שיש כמה שינויים שצריך לעשות כדי ליצור את מבנה הנתונים הדרוש למשימה.
+
+## תרגיל - ניתוח נתוני הדלעות
+
+בואו נשתמש ב-[Pandas](https://pandas.pydata.org/) (השם הוא קיצור של `Python Data Analysis`), כלי מאוד שימושי לעיצוב נתונים, כדי לנתח ולהכין את נתוני הדלעות.
+
+### קודם כל, בדוק אם יש תאריכים חסרים
+
+קודם כל תצטרך לנקוט צעדים כדי לבדוק אם יש תאריכים חסרים:
+
+1. המרה של התאריכים לפורמט חודשי (אלו תאריכים אמריקאים, כך שהפורמט הוא `MM/DD/YYYY`).
+2. חילוץ החודש לעמודה חדשה.
+
+פתח את הקובץ _notebook.ipynb_ ב-Visual Studio Code וייבא את הגיליון האלקטרוני ל-DataFrame חדש של Pandas.
+
+1. השתמש בפונקציה `head()` כדי לצפות בחמש השורות הראשונות.
+
+ ```python
+ import pandas as pd
+ pumpkins = pd.read_csv('../data/US-pumpkins.csv')
+ pumpkins.head()
+ ```
+
+ ✅ באיזו פונקציה היית משתמש כדי לצפות בחמש השורות האחרונות?
+
+1. בדוק אם יש נתונים חסרים ב-DataFrame הנוכחי:
+
+ ```python
+ pumpkins.isnull().sum()
+ ```
+
+ יש נתונים חסרים, אבל אולי זה לא משנה למשימה הנוכחית.
+
+1. כדי להפוך את ה-DataFrame שלך לקל יותר לעבודה, בחר רק את העמודות שאתה צריך, באמצעות פונקציית `loc` שמחלצת מה-DataFrame המקורי קבוצת שורות (שנמסרות כפרמטר ראשון) ועמודות (שנמסרות כפרמטר שני). הביטוי `:` במקרה הזה אומר "כל השורות".
+
+ ```python
+ columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
+ pumpkins = pumpkins.loc[:, columns_to_select]
+ ```
+
+### שנית, קבע את המחיר הממוצע של דלעת
+
+חשוב איך לקבוע את המחיר הממוצע של דלעת בחודש נתון. אילו עמודות היית בוחר למשימה הזו? רמז: תצטרך 3 עמודות.
+
+פתרון: קח את הממוצע של העמודות `Low Price` ו-`High Price` כדי למלא את עמודת המחיר החדשה, והמר את עמודת התאריך כך שתציג רק את החודש. למרבה המזל, לפי הבדיקה לעיל, אין נתונים חסרים עבור תאריכים או מחירים.
+
+1. כדי לחשב את הממוצע, הוסף את הקוד הבא:
+
+ ```python
+ price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
+
+ month = pd.DatetimeIndex(pumpkins['Date']).month
+
+ ```
+
+ ✅ אתה מוזמן להדפיס כל נתון שתרצה לבדוק באמצעות `print(month)`.
+
+2. עכשיו, העתק את הנתונים שהומרו ל-DataFrame חדש של Pandas:
+
+ ```python
+ new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
+ ```
+
+ הדפסת ה-DataFrame שלך תראה לך מערך נתונים נקי ומסודר שעליו תוכל לבנות את מודל הרגרסיה החדש שלך.
+
+### אבל רגע! יש כאן משהו מוזר
+
+אם תסתכל על עמודת `Package`, דלעות נמכרות בהרבה תצורות שונות. חלקן נמכרות במידות של '1 1/9 bushel', חלקן ב-'1/2 bushel', חלקן לפי דלעת, חלקן לפי פאונד, וחלקן בקופסאות גדולות עם רוחבים משתנים.
+
+> נראה שדלעות מאוד קשה לשקול באופן עקבי
+
+כשחוקרים את הנתונים המקוריים, מעניין שכל דבר עם `Unit of Sale` השווה ל-'EACH' או 'PER BIN' גם יש לו סוג `Package` לפי אינץ', לפי bin, או 'each'. נראה שדלעות מאוד קשה לשקול באופן עקבי, אז בואו נסנן אותן על ידי בחירת דלעות בלבד עם המחרוזת 'bushel' בעמודת `Package`.
+
+1. הוסף מסנן בראש הקובץ, מתחת לייבוא הראשוני של ה-.csv:
+
+ ```python
+ pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
+ ```
+
+ אם תדפיס את הנתונים עכשיו, תוכל לראות שאתה מקבל רק את 415 השורות בערך שמכילות דלעות לפי bushel.
+
+### אבל רגע! יש עוד משהו שצריך לעשות
+
+שמת לב שהכמות של bushel משתנה לפי שורה? אתה צריך לנרמל את התמחור כך שתראה את התמחור לפי bushel, אז תעשה קצת חישובים כדי לסטנדרט אותו.
+
+1. הוסף את השורות האלה אחרי הבלוק שיוצר את ה-DataFrame החדש של הדלעות:
+
+ ```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)
+ ```
+
+✅ לפי [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), המשקל של bushel תלוי בסוג התוצרת, מכיוון שמדובר במדידת נפח. "bushel של עגבניות, למשל, אמור לשקול 56 פאונד... עלים וירוקים תופסים יותר מקום עם פחות משקל, כך ש-bushel של תרד שוקל רק 20 פאונד." זה די מסובך! בואו לא נטרח עם המרה של bushel לפאונד, ובמקום זאת נתמחר לפי bushel. כל המחקר הזה על bushels של דלעות, עם זאת, מראה כמה חשוב להבין את אופי הנתונים שלך!
+
+עכשיו, אתה יכול לנתח את התמחור ליחידה בהתבסס על מדידת ה-bushel שלהם. אם תדפיס את הנתונים פעם נוספת, תוכל לראות איך הם סטנדרטיים.
+
+✅ שמת לב שדלעות שנמכרות לפי חצי bushel הן מאוד יקרות? האם תוכל להבין למה? רמז: דלעות קטנות יקרות הרבה יותר מדלעות גדולות, כנראה בגלל שיש הרבה יותר מהן בכל bushel, בהתחשב במקום הלא מנוצל שנלקח על ידי דלעת פאי גדולה וחלולה אחת.
+
+## אסטרטגיות ויזואליזציה
+
+חלק מתפקידו של מדען הנתונים הוא להציג את האיכות והאופי של הנתונים שהוא עובד איתם. לשם כך, הם לעיתים קרובות יוצרים ויזואליזציות מעניינות, כמו גרפים, תרשימים ומפות, שמציגים היבטים שונים של הנתונים. בדרך זו, הם יכולים להראות באופן חזותי קשרים ופערים שקשה לחשוף בדרך אחרת.
+
+[](https://youtu.be/SbUkxH6IJo0 "ML למתחילים - איך לויזואליזציה של נתונים עם Matplotlib")
+
+> 🎥 לחץ על התמונה למעלה לצפייה בסרטון קצר שמסביר איך לויזואליזציה של הנתונים לשיעור הזה.
+
+ויזואליזציות יכולות גם לעזור לקבוע את טכניקת הלמידת מכונה המתאימה ביותר לנתונים. למשל, תרשים פיזור שנראה כמו קו יכול להצביע על כך שהנתונים מתאימים לתרגיל רגרסיה ליניארית.
+
+אחת מספריות הויזואליזציה שעובדות היטב במחברות Jupyter היא [Matplotlib](https://matplotlib.org/) (שגם ראית בשיעור הקודם).
+
+> קבל עוד ניסיון עם ויזואליזציה של נתונים ב-[המדריכים האלה](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott).
+
+## תרגיל - להתנסות עם Matplotlib
+
+נסה ליצור כמה גרפים בסיסיים כדי להציג את ה-DataFrame החדש שיצרת. מה יראה גרף קו בסיסי?
+
+1. ייבא את Matplotlib בראש הקובץ, מתחת לייבוא של Pandas:
+
+ ```python
+ import matplotlib.pyplot as plt
+ ```
+
+1. הרץ מחדש את כל המחברת כדי לרענן.
+1. בתחתית המחברת, הוסף תא כדי לשרטט את הנתונים כקופסה:
+
+ ```python
+ price = new_pumpkins.Price
+ month = new_pumpkins.Month
+ plt.scatter(price, month)
+ plt.show()
+ ```
+
+ 
+
+ האם זה גרף שימושי? האם משהו בו מפתיע אותך?
+
+ זה לא מאוד שימושי מכיוון שכל מה שהוא עושה זה להציג את הנתונים שלך כפריסה של נקודות בחודש נתון.
+
+### להפוך את זה לשימושי
+
+כדי לקבל גרפים שמציגים נתונים שימושיים, בדרך כלל צריך לקבץ את הנתונים בצורה כלשהי. בואו ננסה ליצור גרף שבו ציר ה-y מציג את החודשים והנתונים מדגימים את התפלגות הנתונים.
+
+1. הוסף תא ליצירת תרשים עמודות מקובץ:
+
+ ```python
+ new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
+ plt.ylabel("Pumpkin Price")
+ ```
+
+ 
+
+ זהו ויזואליזציה נתונים שימושית יותר! נראה שהיא מצביעה על כך שהמחיר הגבוה ביותר לדלעות מתרחש בספטמבר ובאוקטובר. האם זה תואם את הציפיות שלך? למה או למה לא?
+
+---
+
+## 🚀אתגר
+
+חקור את סוגי הויזואליזציה השונים ש-Matplotlib מציעה. אילו סוגים הם המתאימים ביותר לבעיות רגרסיה?
+
+## [שאלון אחרי השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+תסתכל על הדרכים הרבות לויזואליזציה של נתונים. צור רשימה של הספריות השונות הזמינות וציין אילו מהן מתאימות לסוגי משימות מסוימים, למשל ויזואליזציות דו-ממדיות לעומת תלת-ממדיות. מה אתה מגלה?
+
+## משימה
+
+[חקירת ויזואליזציה](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/2-Data/assignment.md b/translations/he/2-Regression/2-Data/assignment.md
new file mode 100644
index 00000000..0bcf2c2c
--- /dev/null
+++ b/translations/he/2-Regression/2-Data/assignment.md
@@ -0,0 +1,23 @@
+
+# חקר ויזואליזציות
+
+ישנן מספר ספריות שונות זמינות ליצירת ויזואליזציות של נתונים. צרו כמה ויזואליזציות באמצעות נתוני הדלעת בשיעור זה עם matplotlib ו-seaborn במחברת לדוגמה. אילו ספריות קלות יותר לשימוש?
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | --------- | -------- | ----------------- |
+| | מחברת מוגשת עם שתי חקירות/ויזואליזציות | מחברת מוגשת עם חקירה/ויזואליזציה אחת | מחברת לא מוגשת |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/2-Data/solution/Julia/README.md b/translations/he/2-Regression/2-Data/solution/Julia/README.md
new file mode 100644
index 00000000..8e5c1899
--- /dev/null
+++ b/translations/he/2-Regression/2-Data/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/3-Linear/README.md b/translations/he/2-Regression/3-Linear/README.md
new file mode 100644
index 00000000..af0a5d08
--- /dev/null
+++ b/translations/he/2-Regression/3-Linear/README.md
@@ -0,0 +1,380 @@
+
+# בניית מודל רגרסיה באמצעות Scikit-learn: רגרסיה בארבע דרכים
+
+
+> אינפוגרפיקה מאת [Dasani Madipalli](https://twitter.com/dasani_decoded)
+## [מבחן מקדים להרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [השיעור הזה זמין גם ב-R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### הקדמה
+
+עד כה חקרתם מהי רגרסיה עם נתוני דוגמה שנאספו ממאגר נתוני מחירי דלעת, אותו נשתמש לאורך השיעור הזה. כמו כן, ביצעתם ויזואליזציה של הנתונים באמצעות Matplotlib.
+
+עכשיו אתם מוכנים לצלול לעומק הרגרסיה עבור למידת מכונה. בעוד שויזואליזציה מאפשרת להבין את הנתונים, הכוח האמיתי של למידת מכונה מגיע מ_אימון מודלים_. מודלים מאומנים על נתונים היסטוריים כדי ללכוד באופן אוטומטי תלות בין נתונים, ומאפשרים לכם לחזות תוצאות עבור נתונים חדשים שהמודל לא ראה קודם.
+
+בשיעור הזה תלמדו יותר על שני סוגי רגרסיה: _רגרסיה לינארית בסיסית_ ו_רגרסיה פולינומית_, יחד עם מעט מתמטיקה שמאחורי הטכניקות הללו. מודלים אלו יאפשרו לנו לחזות מחירי דלעת בהתאם לנתוני קלט שונים.
+
+[](https://youtu.be/CRxFT8oTDMg "למידת מכונה למתחילים - הבנת רגרסיה לינארית")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על רגרסיה לינארית.
+
+> לאורך הקורס הזה, אנו מניחים ידע מתמטי מינימלי, ושואפים להפוך אותו לנגיש לסטודנטים שמגיעים מתחומים אחרים. שימו לב להערות, 🧮 קריאות, דיאגרמות וכלים אחרים שיעזרו בהבנה.
+
+### דרישות מקדימות
+
+כעת אתם אמורים להיות מוכנים עם מבנה נתוני הדלעת שאנו בוחנים. תוכלו למצוא אותו טעון מראש ומנוקה בקובץ _notebook.ipynb_ של השיעור הזה. בקובץ, מחיר הדלעת מוצג לפי יחידת bushel במסגרת נתונים חדשה. ודאו שאתם יכולים להריץ את המחברות הללו ב-kernels ב-Visual Studio Code.
+
+### הכנה
+
+כתזכורת, אתם טוענים את הנתונים הללו כדי לשאול שאלות לגביהם.
+
+- מתי הזמן הטוב ביותר לקנות דלעות?
+- איזה מחיר אני יכול לצפות עבור מארז של דלעות מיניאטוריות?
+- האם כדאי לי לקנות אותן בסלים של חצי bushel או בקופסאות של 1 1/9 bushel?
+בואו נמשיך לחקור את הנתונים הללו.
+
+בשיעור הקודם יצרתם מסגרת נתונים של Pandas ומילאתם אותה עם חלק ממאגר הנתונים המקורי, תוך סטנדרטיזציה של המחירים לפי bushel. עם זאת, על ידי כך הצלחתם לאסוף רק כ-400 נקודות נתונים ורק עבור חודשי הסתיו.
+
+הסתכלו על הנתונים שטעונים מראש במחברת המצורפת לשיעור הזה. הנתונים טעונים מראש וגרף פיזור ראשוני מוצג כדי להראות נתוני חודשים. אולי נוכל לקבל מעט יותר פרטים על טיב הנתונים על ידי ניקוי נוסף שלהם.
+
+## קו רגרסיה לינארית
+
+כפי שלמדתם בשיעור הראשון, המטרה של תרגיל רגרסיה לינארית היא להיות מסוגלים לשרטט קו כדי:
+
+- **להראות קשרים בין משתנים**. להראות את הקשר בין משתנים
+- **לבצע תחזיות**. לבצע תחזיות מדויקות על מיקום נקודת נתונים חדשה ביחס לקו הזה.
+
+זה אופייני ל**רגרסיית ריבועים קטנים** לשרטט סוג כזה של קו. המונח 'ריבועים קטנים' מתייחס לכך שכל נקודות הנתונים שמסביב לקו הרגרסיה מרובעות ואז מסוכמות. באופן אידיאלי, הסכום הסופי הזה הוא קטן ככל האפשר, מכיוון שאנו רוצים מספר נמוך של שגיאות, או `ריבועים קטנים`.
+
+אנו עושים זאת מכיוון שאנו רוצים לדגם קו שיש לו את המרחק המצטבר הקטן ביותר מכל נקודות הנתונים שלנו. אנו גם מרבעים את המונחים לפני הסכימה מכיוון שאנו מתמקדים בגודל שלהם ולא בכיוונם.
+
+> **🧮 תראו לי את המתמטיקה**
+>
+> הקו הזה, שנקרא _קו ההתאמה הטוב ביותר_, יכול להיות מבוטא על ידי [משוואה](https://en.wikipedia.org/wiki/Simple_linear_regression):
+>
+> ```
+> Y = a + bX
+> ```
+>
+> `X` הוא המשתנה המסביר. `Y` הוא המשתנה התלוי. השיפוע של הקו הוא `b` ו-`a` הוא נקודת החיתוך עם ציר ה-Y, שמתייחסת לערך של `Y` כאשר `X = 0`.
+>
+>
+>
+> ראשית, חשבו את השיפוע `b`. אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+>
+> במילים אחרות, בהתייחס לשאלת הנתונים המקורית שלנו על דלעות: "חיזוי מחיר דלעת לפי bushel לפי חודש", `X` יתייחס למחיר ו-`Y` יתייחס לחודש המכירה.
+>
+>
+>
+> חשבו את הערך של Y. אם אתם משלמים בסביבות $4, זה חייב להיות אפריל! אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+>
+> המתמטיקה שמחשבת את הקו חייבת להראות את השיפוע של הקו, שתלוי גם בנקודת החיתוך, או היכן ש-`Y` ממוקם כאשר `X = 0`.
+>
+> תוכלו לצפות בשיטת החישוב לערכים הללו באתר [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). כמו כן, בקרו ב[מחשבון ריבועים קטנים](https://www.mathsisfun.com/data/least-squares-calculator.html) כדי לראות כיצד ערכי המספרים משפיעים על הקו.
+
+## מתאם
+
+מונח נוסף שחשוב להבין הוא **מקדם המתאם** בין משתני X ו-Y נתונים. באמצעות גרף פיזור, תוכלו לראות במהירות את מקדם המתאם. גרף עם נקודות נתונים מפוזרות בקו מסודר יש לו מתאם גבוה, אבל גרף עם נקודות נתונים מפוזרות בכל מקום בין X ל-Y יש לו מתאם נמוך.
+
+מודל רגרסיה לינארית טוב יהיה כזה שיש לו מקדם מתאם גבוה (קרוב יותר ל-1 מאשר ל-0) באמצעות שיטת רגרסיית ריבועים קטנים עם קו רגרסיה.
+
+✅ הריצו את המחברת המצורפת לשיעור הזה והסתכלו על גרף הפיזור של חודש מול מחיר. האם הנתונים שמקשרים בין חודש למחיר עבור מכירות דלעת נראים בעלי מתאם גבוה או נמוך, לפי הפרשנות הוויזואלית שלכם לגרף הפיזור? האם זה משתנה אם אתם משתמשים במדד מדויק יותר במקום `חודש`, למשל *יום בשנה* (כלומר מספר הימים מתחילת השנה)?
+
+בקוד למטה, נניח שניקינו את הנתונים וקיבלנו מסגרת נתונים בשם `new_pumpkins`, דומה לזו הבאה:
+
+ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
+---|-------|-----------|---------|------|---------|-----------|------------|-------
+70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+
+> הקוד לניקוי הנתונים זמין ב-[`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). ביצענו את אותם שלבי ניקוי כמו בשיעור הקודם, וחישבנו את עמודת `DayOfYear` באמצעות הביטוי הבא:
+
+```python
+day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
+```
+
+עכשיו כשיש לכם הבנה של המתמטיקה שמאחורי רגרסיה לינארית, בואו ניצור מודל רגרסיה כדי לראות אם נוכל לחזות איזה מארז דלעות יציע את המחירים הטובים ביותר. מישהו שקונה דלעות עבור חוות דלעות לחג עשוי לרצות את המידע הזה כדי לייעל את רכישותיו של מארזי דלעות לחווה.
+
+## חיפוש מתאם
+
+[](https://youtu.be/uoRq-lW2eQo "למידת מכונה למתחילים - חיפוש מתאם: המפתח לרגרסיה לינארית")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על מתאם.
+
+מהשיעור הקודם כנראה ראיתם שהמחיר הממוצע עבור חודשים שונים נראה כך:
+
+
+
+זה מציע שיכול להיות מתאם, ואנו יכולים לנסות לאמן מודל רגרסיה לינארית כדי לחזות את הקשר בין `Month` ל-`Price`, או בין `DayOfYear` ל-`Price`. הנה גרף הפיזור שמראה את הקשר האחרון:
+
+
+
+בואו נראה אם יש מתאם באמצעות פונקציית `corr`:
+
+```python
+print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
+print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
+```
+
+נראה שהמתאם די קטן, -0.15 לפי `Month` ו- -0.17 לפי `DayOfMonth`, אבל יכול להיות קשר חשוב אחר. נראה שיש קבוצות שונות של מחירים שמקבילות לזני דלעות שונים. כדי לאשר את ההשערה הזו, בואו נשרטט כל קטגוריית דלעות בצבע שונה. על ידי העברת פרמטר `ax` לפונקציית גרף הפיזור, נוכל לשרטט את כל הנקודות על אותו גרף:
+
+```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)
+```
+
+
+
+החקירה שלנו מציעה שלזן יש השפעה גדולה יותר על המחיר הכולל מאשר תאריך המכירה בפועל. אנו יכולים לראות זאת עם גרף עמודות:
+
+```python
+new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
+```
+
+
+
+בואו נתמקד לרגע רק בזן אחד של דלעות, 'סוג פאי', ונראה מה ההשפעה של התאריך על המחיר:
+
+```python
+pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
+pie_pumpkins.plot.scatter('DayOfYear','Price')
+```
+
+
+אם עכשיו נחשב את המתאם בין `Price` ל-`DayOfYear` באמצעות פונקציית `corr`, נקבל משהו כמו `-0.27` - מה שאומר שאימון מודל חיזוי הגיוני.
+
+> לפני אימון מודל רגרסיה לינארית, חשוב לוודא שהנתונים שלנו נקיים. רגרסיה לינארית לא עובדת טוב עם ערכים חסרים, ולכן הגיוני להיפטר מכל התאים הריקים:
+
+```python
+pie_pumpkins.dropna(inplace=True)
+pie_pumpkins.info()
+```
+
+גישה נוספת תהיה למלא את הערכים הריקים בערכים ממוצעים מהעמודה המתאימה.
+
+## רגרסיה לינארית פשוטה
+
+[](https://youtu.be/e4c_UP2fSjg "למידת מכונה למתחילים - רגרסיה לינארית ופולינומית באמצעות Scikit-learn")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על רגרסיה לינארית ופולינומית.
+
+כדי לאמן את מודל הרגרסיה הלינארית שלנו, נשתמש בספריית **Scikit-learn**.
+
+```python
+from sklearn.linear_model import LinearRegression
+from sklearn.metrics import mean_squared_error
+from sklearn.model_selection import train_test_split
+```
+
+נתחיל בהפרדת ערכי הקלט (תכונות) והתוצאה הצפויה (תווית) למערכים נפרדים של numpy:
+
+```python
+X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
+y = pie_pumpkins['Price']
+```
+
+> שימו לב שהיינו צריכים לבצע `reshape` על נתוני הקלט כדי שחבילת הרגרסיה הלינארית תבין אותם נכון. רגרסיה לינארית מצפה למערך דו-ממדי כקלט, שבו כל שורה במערך מתאימה לווקטור של תכונות קלט. במקרה שלנו, מכיוון שיש לנו רק קלט אחד - אנו צריכים מערך עם צורה N×1, כאשר N הוא גודל מאגר הנתונים.
+
+לאחר מכן, אנו צריכים לחלק את הנתונים למאגרי אימון ובדיקה, כך שנוכל לאמת את המודל שלנו לאחר האימון:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+```
+
+לבסוף, אימון מודל הרגרסיה הלינארית עצמו לוקח רק שתי שורות קוד. אנו מגדירים את אובייקט `LinearRegression`, ומתאימים אותו לנתונים שלנו באמצעות שיטת `fit`:
+
+```python
+lin_reg = LinearRegression()
+lin_reg.fit(X_train,y_train)
+```
+
+אובייקט `LinearRegression` לאחר התאמה (`fit`) מכיל את כל המקדמים של הרגרסיה, שניתן לגשת אליהם באמצעות תכונת `.coef_`. במקרה שלנו, יש רק מקדם אחד, שאמור להיות בסביבות `-0.017`. זה אומר שהמחירים נראים כאילו הם יורדים מעט עם הזמן, אבל לא יותר מדי, בסביבות 2 סנט ליום. אנו יכולים גם לגשת לנקודת החיתוך של הרגרסיה עם ציר ה-Y באמצעות `lin_reg.intercept_` - זה יהיה בסביבות `21` במקרה שלנו, מה שמעיד על המחיר בתחילת השנה.
+
+כדי לראות עד כמה המודל שלנו מדויק, אנו יכולים לחזות מחירים על מאגר נתוני הבדיקה, ואז למדוד עד כמה התחזיות שלנו קרובות לערכים הצפויים. ניתן לעשות זאת באמצעות מדד שגיאה ממוצעת ריבועית (MSE), שהוא הממוצע של כל ההבדלים הריבועיים בין הערך הצפוי לערך החזוי.
+
+```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}%)')
+```
+נראה שהשגיאה שלנו מתרכזת סביב 2 נקודות, שזה בערך 17%. לא כל כך טוב. אינדיקטור נוסף לאיכות המודל הוא **מקדם ההחלטיות**, שניתן לחשב כך:
+
+```python
+score = lin_reg.score(X_train,y_train)
+print('Model determination: ', score)
+```
+אם הערך הוא 0, זה אומר שהמודל לא מתחשב בנתוני הקלט ופועל כ*מנבא הליניארי הגרוע ביותר*, שהוא פשוט ממוצע של התוצאה. ערך של 1 אומר שאנחנו יכולים לנבא באופן מושלם את כל התוצאות הצפויות. במקרה שלנו, המקדם הוא בערך 0.06, שזה די נמוך.
+
+ניתן גם לשרטט את נתוני הבדיקה יחד עם קו הרגרסיה כדי לראות טוב יותר איך הרגרסיה פועלת במקרה שלנו:
+
+```python
+plt.scatter(X_test,y_test)
+plt.plot(X_test,pred)
+```
+
+
+
+## רגרסיה פולינומית
+
+סוג נוסף של רגרסיה ליניארית הוא רגרסיה פולינומית. בעוד שלפעמים יש קשר ליניארי בין משתנים - ככל שנפח הדלעת גדול יותר, כך המחיר גבוה יותר - לפעמים קשרים אלו לא יכולים להיות מיוצגים כמישור או כקו ישר.
+
+✅ הנה [כמה דוגמאות נוספות](https://online.stat.psu.edu/stat501/lesson/9/9.8) לנתונים שיכולים להשתמש ברגרסיה פולינומית.
+
+תסתכלו שוב על הקשר בין תאריך למחיר. האם פיזור הנתונים נראה כאילו הוא חייב להיות מנותח באמצעות קו ישר? האם מחירים לא יכולים להשתנות? במקרה כזה, ניתן לנסות רגרסיה פולינומית.
+
+✅ פולינומים הם ביטויים מתמטיים שיכולים לכלול משתנה אחד או יותר ומקדמים.
+
+רגרסיה פולינומית יוצרת קו מעוקל שמתאים טוב יותר לנתונים לא ליניאריים. במקרה שלנו, אם נכלול משתנה `DayOfYear` בריבוע בנתוני הקלט, נוכל להתאים את הנתונים שלנו לעקומה פרבולית, שתהיה לה מינימום בנקודה מסוימת במהלך השנה.
+
+ספריית Scikit-learn כוללת [API של צינור](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) שמאפשר לשלב שלבים שונים של עיבוד נתונים יחד. **צינור** הוא שרשרת של **אומדנים**. במקרה שלנו, ניצור צינור שמוסיף תחילה תכונות פולינומיות למודל שלנו, ואז מאמן את הרגרסיה:
+
+```python
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.pipeline import make_pipeline
+
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+
+pipeline.fit(X_train,y_train)
+```
+
+שימוש ב-`PolynomialFeatures(2)` אומר שנכלול את כל הפולינומים מדרגה שנייה מנתוני הקלט. במקרה שלנו זה פשוט אומר `DayOfYear`2, אבל אם ישנם שני משתני קלט X ו-Y, זה יוסיף X2, XY ו-Y2. ניתן גם להשתמש בפולינומים מדרגה גבוהה יותר אם רוצים.
+
+ניתן להשתמש בצינורות באותו אופן כמו באובייקט `LinearRegression` המקורי, כלומר ניתן להשתמש ב-`fit` בצינור ואז ב-`predict` כדי לקבל את תוצאות הניבוי. הנה הגרף שמראה את נתוני הבדיקה ואת עקומת הקירוב:
+
+
+
+שימוש ברגרסיה פולינומית מאפשר לנו לקבל MSE מעט נמוך יותר ומקדם החלטיות גבוה יותר, אך לא באופן משמעותי. יש לקחת בחשבון תכונות נוספות!
+
+> ניתן לראות שהמחירים המינימליים של דלעות נצפים איפשהו סביב ליל כל הקדושים. איך אפשר להסביר את זה?
+
+🎃 כל הכבוד, יצרתם מודל שיכול לעזור לנבא את מחיר דלעות הפאי. כנראה שתוכלו לחזור על אותו תהליך עבור כל סוגי הדלעות, אבל זה יהיה מייגע. עכשיו נלמד איך לקחת בחשבון את סוג הדלעת במודל שלנו!
+
+## תכונות קטגוריות
+
+בעולם האידיאלי, נרצה להיות מסוגלים לנבא מחירים עבור סוגי דלעות שונים באמצעות אותו מודל. עם זאת, העמודה `Variety` שונה במקצת מעמודות כמו `Month`, מכיוון שהיא מכילה ערכים לא מספריים. עמודות כאלה נקראות **קטגוריות**.
+
+[](https://youtu.be/DYGliioIAE0 "ML למתחילים - ניבוי תכונות קטגוריות עם רגרסיה ליניארית")
+
+> 🎥 לחצו על התמונה למעלה לסרטון קצר על שימוש בתכונות קטגוריות.
+
+כאן ניתן לראות איך המחיר הממוצע תלוי בסוג הדלעת:
+
+
+
+כדי לקחת את סוג הדלעת בחשבון, תחילה עלינו להמיר אותו לצורה מספרית, או **לקודד** אותו. ישנן מספר דרכים לעשות זאת:
+
+* **קידוד מספרי פשוט** יבנה טבלה של סוגי דלעות שונים, ואז יחליף את שם הסוג במספר אינדקס בטבלה. זו לא הבחירה הטובה ביותר עבור רגרסיה ליניארית, מכיוון שרגרסיה ליניארית מתחשבת בערך המספרי של האינדקס ומוסיפה אותו לתוצאה, תוך הכפלה במקדם מסוים. במקרה שלנו, הקשר בין מספר האינדקס למחיר הוא בבירור לא ליניארי, גם אם נוודא שהאינדקסים מסודרים בצורה מסוימת.
+* **קידוד One-hot** יחליף את העמודה `Variety` בארבע עמודות שונות, אחת לכל סוג. כל עמודה תכיל `1` אם השורה המתאימה היא מסוג מסוים, ו-`0` אחרת. זה אומר שיהיו ארבעה מקדמים ברגרסיה ליניארית, אחד לכל סוג דלעת, שאחראי על "מחיר התחלתי" (או ליתר דיוק "מחיר נוסף") עבור אותו סוג מסוים.
+
+הקוד הבא מראה איך ניתן לקודד סוג דלעת בשיטת One-hot:
+
+```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
+
+כדי לאמן רגרסיה ליניארית באמצעות סוג דלעת מקודד בשיטת One-hot כקלט, פשוט צריך לאתחל את נתוני `X` ו-`y` בצורה נכונה:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety'])
+y = new_pumpkins['Price']
+```
+
+שאר הקוד זהה למה שהשתמשנו בו קודם כדי לאמן רגרסיה ליניארית. אם תנסו זאת, תראו ש-Mean Squared Error נשאר בערך אותו דבר, אבל מקדם ההחלטיות עולה משמעותית (~77%). כדי לקבל ניבויים מדויקים יותר, ניתן לקחת בחשבון תכונות קטגוריות נוספות, כמו גם תכונות מספריות, כגון `Month` או `DayOfYear`. כדי לקבל מערך גדול של תכונות, ניתן להשתמש ב-`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']
+```
+
+כאן אנו לוקחים בחשבון גם את `City` ואת סוג האריזה, מה שמביא אותנו ל-MSE של 2.84 (10%) ולמקדם החלטיות של 0.94!
+
+## לשלב הכל יחד
+
+כדי ליצור את המודל הטוב ביותר, ניתן להשתמש בנתונים משולבים (קטגוריות מקודדות בשיטת One-hot + נתונים מספריים) מהדוגמה לעיל יחד עם רגרסיה פולינומית. הנה הקוד המלא לנוחיותכם:
+
+```python
+# set up training data
+X = pd.get_dummies(new_pumpkins['Variety']) \
+ .join(new_pumpkins['Month']) \
+ .join(pd.get_dummies(new_pumpkins['City'])) \
+ .join(pd.get_dummies(new_pumpkins['Package']))
+y = new_pumpkins['Price']
+
+# make train-test split
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+
+# 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)
+```
+
+זה אמור לתת לנו את מקדם ההחלטיות הטוב ביותר של כמעט 97%, ו-MSE=2.23 (~8% שגיאת ניבוי).
+
+| מודל | MSE | מקדם החלטיות |
+|-------|-----|---------------|
+| `DayOfYear` ליניארי | 2.77 (17.2%) | 0.07 |
+| `DayOfYear` פולינומי | 2.73 (17.0%) | 0.08 |
+| `Variety` ליניארי | 5.24 (19.7%) | 0.77 |
+| כל התכונות ליניארי | 2.84 (10.5%) | 0.94 |
+| כל התכונות פולינומי | 2.23 (8.25%) | 0.97 |
+
+🏆 כל הכבוד! יצרתם ארבעה מודלים של רגרסיה בשיעור אחד ושיפרתם את איכות המודל ל-97%. בחלק האחרון על רגרסיה תלמדו על רגרסיה לוגיסטית כדי לקבוע קטגוריות.
+
+---
+## 🚀אתגר
+
+בדקו משתנים שונים במחברת זו כדי לראות איך הקורלציה משפיעה על דיוק המודל.
+
+## [מבחן לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+בשיעור זה למדנו על רגרסיה ליניארית. ישנם סוגים חשובים נוספים של רגרסיה. קראו על טכניקות Stepwise, Ridge, Lasso ו-Elasticnet. קורס טוב ללמוד כדי להעמיק הוא [קורס הלמידה הסטטיסטית של סטנפורד](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
+
+## משימה
+
+[בנו מודל](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/3-Linear/assignment.md b/translations/he/2-Regression/3-Linear/assignment.md
new file mode 100644
index 00000000..93957c30
--- /dev/null
+++ b/translations/he/2-Regression/3-Linear/assignment.md
@@ -0,0 +1,25 @@
+
+# יצירת מודל רגרסיה
+
+## הוראות
+
+בשיעור זה הוצג כיצד לבנות מודל באמצעות רגרסיה לינארית ורגרסיה פולינומית. בעזרת הידע הזה, מצאו מערך נתונים או השתמשו באחד ממערכי הנתונים המובנים של Scikit-learn כדי לבנות מודל חדש. הסבירו במחברת שלכם מדוע בחרתם בטכניקה שבחרתם, והציגו את דיוק המודל שלכם. אם המודל אינו מדויק, הסבירו מדוע.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ---------------------------------------------------------- | ------------------------- | --------------------------- |
+| | מציג מחברת מלאה עם פתרון מתועד היטב | הפתרון אינו שלם | הפתרון פגום או מכיל באגים |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/3-Linear/solution/Julia/README.md b/translations/he/2-Regression/3-Linear/solution/Julia/README.md
new file mode 100644
index 00000000..7af54768
--- /dev/null
+++ b/translations/he/2-Regression/3-Linear/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/4-Logistic/README.md b/translations/he/2-Regression/4-Logistic/README.md
new file mode 100644
index 00000000..e09ba8bb
--- /dev/null
+++ b/translations/he/2-Regression/4-Logistic/README.md
@@ -0,0 +1,412 @@
+
+# רגרסיה לוגיסטית לחיזוי קטגוריות
+
+
+
+## [מבחן מקדים להרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [השיעור הזה זמין גם ב-R!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html)
+
+## מבוא
+
+בשיעור האחרון על רגרסיה, אחת מטכניקות ה-ML הקלאסיות הבסיסיות, נבחן את הרגרסיה הלוגיסטית. תשתמשו בטכניקה זו כדי לגלות דפוסים לחיזוי קטגוריות בינאריות. האם הממתק הזה הוא שוקולד או לא? האם המחלה הזו מדבקת או לא? האם הלקוח הזה יבחר במוצר הזה או לא?
+
+בשיעור הזה תלמדו:
+
+- ספרייה חדשה להדמיית נתונים
+- טכניקות לרגרסיה לוגיסטית
+
+✅ העמיקו את ההבנה שלכם בעבודה עם סוג זה של רגרסיה במודול [Learn](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott)
+
+## דרישות מקדימות
+
+לאחר שעבדנו עם נתוני הדלעת, אנחנו כבר מספיק מכירים אותם כדי להבין שיש קטגוריה בינארית אחת שאפשר לעבוד איתה: `Color`.
+
+בואו נבנה מודל רגרסיה לוגיסטית כדי לחזות, בהתבסס על משתנים מסוימים, _איזה צבע צפוי להיות לדלעת מסוימת_ (כתום 🎃 או לבן 👻).
+
+> למה אנחנו מדברים על סיווג בינארי בשיעור שמקושר לרגרסיה? רק מטעמי נוחות לשונית, שכן רגרסיה לוגיסטית היא [בעצם שיטת סיווג](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), אם כי מבוססת על ליניאריות. למדו על דרכים אחרות לסווג נתונים בקבוצת השיעורים הבאה.
+
+## הגדרת השאלה
+
+למטרותינו, נבטא זאת כבינארי: 'לבן' או 'לא לבן'. יש גם קטגוריה 'מפוספסת' במאגר הנתונים שלנו, אבל יש מעט מקרים שלה, ולכן לא נשתמש בה. היא נעלמת בכל מקרה ברגע שמסירים ערכים חסרים מהמאגר.
+
+> 🎃 עובדה מעניינת: לפעמים אנחנו קוראים לדלעות לבנות 'דלעות רפאים'. הן לא קלות לגילוף, ולכן הן פחות פופולריות מהכתומות, אבל הן נראות מגניבות! אז אפשר גם לנסח מחדש את השאלה שלנו כ: 'רפאים' או 'לא רפאים'. 👻
+
+## על רגרסיה לוגיסטית
+
+רגרסיה לוגיסטית שונה מרגרסיה ליניארית, שלמדתם עליה קודם, בכמה דרכים חשובות.
+
+[](https://youtu.be/KpeCT6nEpBY "ML למתחילים - הבנת רגרסיה לוגיסטית לסיווג בלמידת מכונה")
+
+> 🎥 לחצו על התמונה למעלה לסרטון קצר על רגרסיה לוגיסטית.
+
+### סיווג בינארי
+
+רגרסיה לוגיסטית לא מציעה את אותן תכונות כמו רגרסיה ליניארית. הראשונה מציעה חיזוי של קטגוריה בינארית ("לבן או לא לבן"), בעוד שהאחרונה מסוגלת לחזות ערכים רציפים, למשל בהתבסס על מקור הדלעת וזמן הקטיף, _כמה המחיר שלה יעלה_.
+
+
+> אינפוגרפיקה מאת [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+### סיווגים אחרים
+
+ישנם סוגים אחרים של רגרסיה לוגיסטית, כולל מולטינומיאלית ואורדינלית:
+
+- **מולטינומיאלית**, שכוללת יותר מקטגוריה אחת - "כתום, לבן ומפוספס".
+- **אורדינלית**, שכוללת קטגוריות מסודרות, שימושית אם נרצה לסדר את התוצאות שלנו באופן לוגי, כמו הדלעות שלנו שמסודרות לפי מספר סופי של גדלים (מיני, קטן, בינוני, גדול, XL, XXL).
+
+
+
+### המשתנים לא חייבים להיות מתואמים
+
+זוכרים איך רגרסיה ליניארית עבדה טוב יותר עם משתנים מתואמים? רגרסיה לוגיסטית היא ההפך - המשתנים לא חייבים להיות מתואמים. זה עובד עבור הנתונים האלה שיש להם מתאמים חלשים יחסית.
+
+### צריך הרבה נתונים נקיים
+
+רגרסיה לוגיסטית תיתן תוצאות מדויקות יותר אם תשתמשו ביותר נתונים; מאגר הנתונים הקטן שלנו אינו אופטימלי למשימה זו, אז קחו זאת בחשבון.
+
+[](https://youtu.be/B2X4H9vcXTs "ML למתחילים - ניתוח והכנת נתונים לרגרסיה לוגיסטית")
+
+> 🎥 לחצו על התמונה למעלה לסרטון קצר על הכנת נתונים לרגרסיה ליניארית.
+
+✅ חשבו על סוגי הנתונים שיתאימו לרגרסיה לוגיסטית.
+
+## תרגיל - ניקוי הנתונים
+
+ראשית, ננקה את הנתונים מעט, נסיר ערכים חסרים ונבחר רק חלק מהעמודות:
+
+1. הוסיפו את הקוד הבא:
+
+ ```python
+
+ columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
+ pumpkins = full_pumpkins.loc[:, columns_to_select]
+
+ pumpkins.dropna(inplace=True)
+ ```
+
+ תמיד אפשר להציץ במאגר הנתונים החדש שלכם:
+
+ ```python
+ pumpkins.info
+ ```
+
+### הדמיה - תרשים קטגוריאלי
+
+עד עכשיו טענתם את [מחברת ההתחלה](../../../../2-Regression/4-Logistic/notebook.ipynb) עם נתוני הדלעות שוב וניקיתם אותה כך שתשמר מאגר נתונים המכיל כמה משתנים, כולל `Color`. בואו נדמיין את מאגר הנתונים במחברת באמצעות ספרייה אחרת: [Seaborn](https://seaborn.pydata.org/index.html), שנבנתה על Matplotlib שבה השתמשנו קודם.
+
+Seaborn מציעה דרכים מעניינות להדמיית הנתונים שלכם. לדוגמה, אפשר להשוות את התפלגות הנתונים עבור כל `Variety` ו-`Color` בתרשים קטגוריאלי.
+
+1. צרו תרשים כזה באמצעות הפונקציה `catplot`, תוך שימוש בנתוני הדלעות שלנו `pumpkins`, והגדירו מיפוי צבעים לכל קטגוריית דלעת (כתום או לבן):
+
+ ```python
+ import seaborn as sns
+
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+
+ sns.catplot(
+ data=pumpkins, y="Variety", hue="Color", kind="count",
+ palette=palette,
+ )
+ ```
+
+ 
+
+ בהתבוננות בנתונים, אפשר לראות כיצד נתוני הצבע קשורים לזן.
+
+ ✅ בהתבסס על התרשים הקטגוריאלי הזה, אילו חקירות מעניינות אתם יכולים לדמיין?
+
+### עיבוד נתונים: קידוד תכונות ותוויות
+
+מאגר הנתונים של הדלעות שלנו מכיל ערכי מחרוזת עבור כל העמודות שלו. עבודה עם נתונים קטגוריאליים היא אינטואיטיבית עבור בני אדם אך לא עבור מכונות. אלגוריתמים של למידת מכונה עובדים טוב עם מספרים. לכן קידוד הוא שלב חשוב מאוד בשלב עיבוד הנתונים, מכיוון שהוא מאפשר לנו להפוך נתונים קטגוריאליים לנתונים מספריים, מבלי לאבד מידע. קידוד טוב מוביל לבניית מודל טוב.
+
+לקידוד תכונות יש שני סוגים עיקריים של מקודדים:
+
+1. מקודד אורדינלי: מתאים היטב למשתנים אורדינליים, שהם משתנים קטגוריאליים שבהם הנתונים שלהם עוקבים אחר סדר לוגי, כמו עמודת `Item Size` במאגר הנתונים שלנו. הוא יוצר מיפוי כך שכל קטגוריה מיוצגת על ידי מספר, שהוא הסדר של הקטגוריה בעמודה.
+
+ ```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. מקודד קטגוריאלי: מתאים היטב למשתנים נומינליים, שהם משתנים קטגוריאליים שבהם הנתונים שלהם אינם עוקבים אחר סדר לוגי, כמו כל התכונות השונות מ-`Item Size` במאגר הנתונים שלנו. זהו קידוד one-hot, כלומר כל קטגוריה מיוצגת על ידי עמודה בינארית: המשתנה המקודד שווה ל-1 אם הדלעת שייכת לזן הזה ול-0 אחרת.
+
+ ```python
+ from sklearn.preprocessing import OneHotEncoder
+
+ categorical_features = ['City Name', 'Package', 'Variety', 'Origin']
+ categorical_encoder = OneHotEncoder(sparse_output=False)
+ ```
+
+לאחר מכן, משתמשים ב-`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)
+```
+
+מצד שני, לקידוד התווית, משתמשים במחלקת `LabelEncoder` של scikit-learn, שהיא מחלקת עזר לנרמל תוויות כך שיכילו רק ערכים בין 0 ל-n_classes-1 (כאן, 0 ו-1).
+
+```python
+ from sklearn.preprocessing import LabelEncoder
+
+ label_encoder = LabelEncoder()
+ encoded_label = label_encoder.fit_transform(pumpkins['Color'])
+```
+
+לאחר שקידדנו את התכונות והתווית, אפשר למזג אותן למאגר נתונים חדש `encoded_pumpkins`.
+
+```python
+ encoded_pumpkins = encoded_features.assign(Color=encoded_label)
+```
+
+✅ מה היתרונות של שימוש במקודד אורדינלי עבור עמודת `Item Size`?
+
+### ניתוח קשרים בין משתנים
+
+עכשיו, לאחר שעיבדנו את הנתונים שלנו, אפשר לנתח את הקשרים בין התכונות לתווית כדי להבין עד כמה המודל יוכל לחזות את התווית בהתבסס על התכונות. הדרך הטובה ביותר לבצע ניתוח כזה היא באמצעות הדמיית הנתונים. נשתמש שוב בפונקציה `catplot` של Seaborn, כדי להמחיש את הקשרים בין `Item Size`, `Variety` ו-`Color` בתרשים קטגוריאלי. כדי להמחיש את הנתונים טוב יותר נשתמש בעמודת `Item Size` המקודדת ובעמודת `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}")
+```
+
+
+
+### שימוש בתרשים swarm
+
+מכיוון ש-Color הוא קטגוריה בינארית (לבן או לא), הוא דורש '[גישה מיוחדת](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) להדמיה'. יש דרכים אחרות להמחיש את הקשר של קטגוריה זו עם משתנים אחרים.
+
+אפשר להמחיש משתנים זה לצד זה עם תרשימי Seaborn.
+
+1. נסו תרשים 'swarm' כדי להראות את התפלגות הערכים:
+
+ ```python
+ palette = {
+ 0: 'orange',
+ 1: 'wheat'
+ }
+ sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette)
+ ```
+
+ 
+
+**שימו לב**: הקוד למעלה עשוי ליצור אזהרה, מכיוון ש-Seaborn מתקשה לייצג כמות כזו של נקודות נתונים בתרשים swarm. פתרון אפשרי הוא להקטין את גודל הסמן, באמצעות הפרמטר 'size'. עם זאת, שימו לב שזה משפיע על קריאות התרשים.
+
+> **🧮 תראו לי את המתמטיקה**
+>
+> רגרסיה לוגיסטית מתבססת על הרעיון של 'סבירות מרבית' באמצעות [פונקציות סיגמואיד](https://wikipedia.org/wiki/Sigmoid_function). פונקציית סיגמואיד על תרשים נראית כמו צורת 'S'. היא לוקחת ערך וממפה אותו למקום בין 0 ל-1. העקומה שלה נקראת גם 'עקומה לוגיסטית'. הנוסחה שלה נראית כך:
+>
+> 
+>
+> כאשר נקודת האמצע של הסיגמואיד נמצאת בנקודת ה-0 של x, L הוא הערך המרבי של העקומה, ו-k הוא תלילות העקומה. אם תוצאת הפונקציה היא יותר מ-0.5, התווית המדוברת תינתן למעמד '1' של הבחירה הבינארית. אם לא, היא תסווג כ-'0'.
+
+## בניית המודל שלכם
+
+בניית מודל למציאת סיווגים בינאריים היא פשוטה באופן מפתיע ב-Scikit-learn.
+
+[](https://youtu.be/MmZS2otPrQ8 "ML למתחילים - רגרסיה לוגיסטית לסיווג נתונים")
+
+> 🎥 לחצו על התמונה למעלה לסרטון קצר על בניית מודל רגרסיה ליניארית.
+
+1. בחרו את המשתנים שתרצו להשתמש בהם במודל הסיווג שלכם וחלקו את קבוצות האימון והבדיקה באמצעות קריאה ל-`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. עכשיו אפשר לאמן את המודל, באמצעות קריאה ל-`fit()` עם נתוני האימון שלכם, ולהדפיס את התוצאה שלו:
+
+ ```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))
+ ```
+
+ הסתכלו על לוח התוצאות של המודל שלכם. הוא לא רע, בהתחשב בכך שיש לכם רק כ-1000 שורות נתונים:
+
+ ```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
+ ```
+
+## הבנה טובה יותר באמצעות מטריצת בלבול
+
+בעוד שאפשר לקבל דוח תוצאות [מונחים](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) על ידי הדפסת הפריטים למעלה, ייתכן שתוכלו להבין את המודל שלכם ביתר קלות באמצעות [מטריצת בלבול](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) שתעזור לנו להבין כיצד המודל מתפקד.
+
+> 🎓 '[מטריצת בלבול](https://wikipedia.org/wiki/Confusion_matrix)' (או 'מטריצת שגיאות') היא טבלה שמבטאת את החיוביים והשליליים האמיתיים מול השגויים של המודל שלכם, ובכך מעריכה את דיוק התחזיות.
+
+1. כדי להשתמש במטריצת בלבול, קראו ל-`confusion_matrix()`:
+
+ ```python
+ from sklearn.metrics import confusion_matrix
+ confusion_matrix(y_test, predictions)
+ ```
+
+ הסתכלו על מטריצת הבלבול של המודל שלכם:
+
+ ```output
+ array([[162, 4],
+ [ 11, 22]])
+ ```
+
+ב-Scikit-learn, שורות (axis 0) הן תוויות אמיתיות ועמודות (axis 1) הן תוויות חזויות.
+
+| | 0 | 1 |
+| :---: | :---: | :---: |
+| 0 | TN | FP |
+| 1 | FN | TP |
+
+מה קורה כאן? נניח שהמודל שלנו מתבקש לסווג דלעות בין שתי קטגוריות בינאריות, קטגוריה 'לבן' וקטגוריה 'לא-לבן'.
+
+- אם המודל שלכם חוזה דלעת כלא לבנה והיא שייכת לקטגוריה 'לא-לבן' במציאות, אנחנו קוראים לזה שלילי אמיתי (True Negative), שמוצג על ידי המספר בפינה השמאלית העליונה.
+- אם המודל שלכם חוזה דלעת כלבנה והיא שייכת לקטגוריה 'לא-לבן' במציאות, אנחנו קוראים לזה שלילי שגוי (False Negative), שמוצג על ידי המספר בפינה השמאלית התחתונה.
+- אם המודל שלכם חוזה דלעת כלא לבנה והיא שייכת לקטגוריה 'לבן' במציאות, אנחנו קוראים לזה חיובי שגוי (False Positive), שמוצג על ידי המספר בפינה הימנית העליונה.
+- אם המודל שלכם חוזה דלעת כלבנה והיא שייכת לקטגוריה 'לבן' במציאות, אנחנו קוראים לזה חיובי אמיתי (True Positive), שמוצג על ידי המספר בפינה הימנית התחתונה.
+
+כפי שכנראה ניחשתם, עדיף שיהיו יותר חיוביים אמיתיים ושליליים אמיתיים ומספר נמוך יותר של חיוביים שגויים ושליליים שגויים, מה שמעיד על כך שהמודל מתפקד טוב יותר.
+כיצד מטריצת הבלבול קשורה לדיוק ולשליפה? זכרו, דוח הסיווג שהודפס למעלה הציג דיוק (0.85) ושליפה (0.67).
+
+דיוק = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461
+
+שליפה = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666
+
+✅ ש: לפי מטריצת הבלבול, איך המודל ביצע? ת: לא רע; יש מספר טוב של שליליים אמיתיים אבל גם כמה שליליים שגויים.
+
+בואו נחזור למונחים שראינו קודם בעזרת המיפוי של TP/TN ו-FP/FN במטריצת הבלבול:
+
+🎓 דיוק: TP/(TP + FP) החלק של המקרים הרלוונטיים מתוך המקרים שנמצאו (לדוגמה, אילו תוויות סווגו היטב).
+
+🎓 שליפה: TP/(TP + FN) החלק של המקרים הרלוונטיים שנמצאו, בין אם סווגו היטב או לא.
+
+🎓 ציון f1: (2 * דיוק * שליפה)/(דיוק + שליפה) ממוצע משוקלל של דיוק ושליפה, כאשר הטוב ביותר הוא 1 והגרוע ביותר הוא 0.
+
+🎓 תמיכה: מספר המופעים של כל תווית שנמצאה.
+
+🎓 דיוק כללי: (TP + TN)/(TP + TN + FP + FN) אחוז התוויות שסווגו בצורה מדויקת עבור דגימה.
+
+🎓 ממוצע מאקרו: חישוב הממוצע הלא משוקלל של המדדים עבור כל תווית, מבלי להתחשב באי-איזון בין התוויות.
+
+🎓 ממוצע משוקלל: חישוב הממוצע של המדדים עבור כל תווית, תוך התחשבות באי-איזון בין התוויות על ידי שקילתן לפי התמיכה (מספר המקרים האמיתיים עבור כל תווית).
+
+✅ האם אתם יכולים לחשוב על איזה מדד כדאי להתמקד אם אתם רוצים שהמודל יפחית את מספר השליליים השגויים?
+
+## ויזואליזציה של עקומת ROC של המודל הזה
+
+[](https://youtu.be/GApO575jTA0 "ML למתחילים - ניתוח ביצועי רגרסיה לוגיסטית עם עקומות ROC")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר על עקומות ROC
+
+בואו נעשה ויזואליזציה נוספת כדי לראות את מה שנקרא 'עקומת 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()
+```
+
+באמצעות Matplotlib, שרטטו את [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) או ROC של המודל. עקומות ROC משמשות לעיתים קרובות כדי לקבל מבט על תוצאות מסווג במונחים של חיוביים אמיתיים מול חיוביים שגויים. "עקומות ROC מציגות בדרך כלל את שיעור החיוביים האמיתיים על ציר ה-Y, ואת שיעור החיוביים השגויים על ציר ה-X." לכן, תלילות העקומה והמרחק בין קו האמצע לעקומה חשובים: אתם רוצים עקומה שמתקדמת במהירות למעלה ומעל הקו. במקרה שלנו, יש חיוביים שגויים בהתחלה, ואז הקו מתקדם למעלה ומעל בצורה נכונה:
+
+
+
+לבסוף, השתמשו ב-API של [`roc_auc_score`](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) של Scikit-learn כדי לחשב את 'שטח מתחת לעקומה' (AUC):
+
+```python
+auc = roc_auc_score(y_test,y_scores[:,1])
+print(auc)
+```
+התוצאה היא `0.9749908725812341`. מכיוון ש-AUC נע בין 0 ל-1, אתם רוצים ציון גבוה, שכן מודל שמנבא בצורה נכונה ב-100% יקבל AUC של 1; במקרה הזה, המודל _די טוב_.
+
+בשיעורים עתידיים על סיווגים, תלמדו כיצד לשפר את ציוני המודל שלכם. אבל לעת עתה, ברכות! סיימתם את שיעורי הרגרסיה האלה!
+
+---
+## 🚀אתגר
+
+יש עוד הרבה ללמוד על רגרסיה לוגיסטית! אבל הדרך הטובה ביותר ללמוד היא להתנסות. מצאו מערך נתונים שמתאים לסוג זה של ניתוח ובנו מודל איתו. מה אתם לומדים? טיפ: נסו [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) עבור מערכי נתונים מעניינים.
+
+## [מבחן לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+קראו את העמודים הראשונים של [המאמר הזה מסטנפורד](https://web.stanford.edu/~jurafsky/slp3/5.pdf) על שימושים מעשיים לרגרסיה לוגיסטית. חשבו על משימות שמתאימות יותר לאחד מסוגי הרגרסיה שלמדנו עד כה. מה יעבוד הכי טוב?
+
+## משימה
+
+[נסו שוב את הרגרסיה הזו](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/4-Logistic/assignment.md b/translations/he/2-Regression/4-Logistic/assignment.md
new file mode 100644
index 00000000..1fb50008
--- /dev/null
+++ b/translations/he/2-Regression/4-Logistic/assignment.md
@@ -0,0 +1,25 @@
+
+# ניסיון חוזר עם רגרסיה
+
+## הוראות
+
+בשיעור השתמשת בתת-קבוצה של נתוני הדלעת. עכשיו, חזור לנתונים המקוריים ונסה להשתמש בכולם, לאחר ניקוי וסטנדרטיזציה, כדי לבנות מודל רגרסיה לוגיסטית.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ----------------------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------------- |
+| | מוצג מחברת עם מודל מוסבר היטב ובעל ביצועים טובים | מוצג מחברת עם מודל בעל ביצועים מינימליים | מוצג מחברת עם מודל בעל ביצועים נמוכים או ללא מודל כלל |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/4-Logistic/solution/Julia/README.md b/translations/he/2-Regression/4-Logistic/solution/Julia/README.md
new file mode 100644
index 00000000..4f66a0df
--- /dev/null
+++ b/translations/he/2-Regression/4-Logistic/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/2-Regression/README.md b/translations/he/2-Regression/README.md
new file mode 100644
index 00000000..76e33197
--- /dev/null
+++ b/translations/he/2-Regression/README.md
@@ -0,0 +1,54 @@
+
+# מודלים של רגרסיה ללמידת מכונה
+## נושא אזורי: מודלים של רגרסיה למחירי דלעת בצפון אמריקה 🎃
+
+בצפון אמריקה, דלעות משמשות לעיתים קרובות ליצירת פרצופים מפחידים לכבוד ליל כל הקדושים. בואו נגלה עוד על הירקות המרתקים האלה!
+
+
+> צילום על ידי Beth Teutschmann ב-Unsplash
+
+## מה תלמדו
+
+[](https://youtu.be/5QnJtDad4iQ "סרטון מבוא לרגרסיה - לחצו לצפייה!")
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון מבוא קצר לשיעור זה
+
+השיעורים בסעיף זה עוסקים בסוגי רגרסיה בהקשר של למידת מכונה. מודלים של רגרסיה יכולים לעזור לקבוע את _הקשר_ בין משתנים. סוג זה של מודל יכול לחזות ערכים כמו אורך, טמפרטורה או גיל, ובכך לחשוף קשרים בין משתנים תוך ניתוח נקודות נתונים.
+
+בסדרת השיעורים הזו, תגלו את ההבדלים בין רגרסיה לינארית לרגרסיה לוגיסטית, ומתי כדאי להעדיף אחת על פני השנייה.
+
+[](https://youtu.be/XA3OaoW86R8 "למידת מכונה למתחילים - מבוא למודלים של רגרסיה בלמידת מכונה")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר שמציג את מודלי הרגרסיה.
+
+בקבוצת השיעורים הזו, תתארגנו להתחיל משימות למידת מכונה, כולל הגדרת Visual Studio Code לניהול מחברות, הסביבה הנפוצה למדעני נתונים. תגלו את Scikit-learn, ספרייה ללמידת מכונה, ותבנו את המודלים הראשונים שלכם, עם דגש על מודלים של רגרסיה בפרק זה.
+
+> ישנם כלים שימושיים עם מעט קוד שיכולים לעזור לכם ללמוד על עבודה עם מודלים של רגרסיה. נסו [Azure ML למשימה זו](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+### שיעורים
+
+1. [כלים מקצועיים](1-Tools/README.md)
+2. [ניהול נתונים](2-Data/README.md)
+3. [רגרסיה לינארית ופולינומית](3-Linear/README.md)
+4. [רגרסיה לוגיסטית](4-Logistic/README.md)
+
+---
+### קרדיטים
+
+"למידת מכונה עם רגרסיה" נכתב באהבה על ידי [Jen Looper](https://twitter.com/jenlooper)
+
+♥️ תורמי חידונים כוללים: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) ו-[Ornella Altunyan](https://twitter.com/ornelladotcom)
+
+מאגר הנתונים של דלעות הוצע על ידי [הפרויקט הזה ב-Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) והנתונים שלו נלקחו מ-[דוחות סטנדרטיים של שווקי טרמינל לגידולים מיוחדים](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) שמופצים על ידי משרד החקלאות של ארצות הברית. הוספנו כמה נקודות סביב צבע בהתבסס על מגוון כדי לנרמל את ההתפלגות. נתונים אלה נמצאים בתחום הציבורי.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/3-Web-App/1-Web-App/README.md b/translations/he/3-Web-App/1-Web-App/README.md
new file mode 100644
index 00000000..11a12759
--- /dev/null
+++ b/translations/he/3-Web-App/1-Web-App/README.md
@@ -0,0 +1,359 @@
+
+# בניית אפליקציית אינטרנט לשימוש במודל למידת מכונה
+
+בשיעור הזה, תאמנו מודל למידת מכונה על סט נתונים יוצא דופן: _תצפיות עב"מים במאה האחרונה_, שנאספו ממאגר הנתונים של NUFORC.
+
+תלמדו:
+
+- איך 'לשמר' מודל מאומן
+- איך להשתמש במודל הזה באפליקציית Flask
+
+נמשיך להשתמש במחברות לניקוי נתונים ולאימון המודל שלנו, אבל תוכלו לקחת את התהליך צעד אחד קדימה על ידי חקר השימוש במודל "בשדה", כלומר: באפליקציית אינטרנט.
+
+כדי לעשות זאת, תצטרכו לבנות אפליקציית אינטרנט באמצעות Flask.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## בניית אפליקציה
+
+ישנן מספר דרכים לבנות אפליקציות אינטרנט לצריכת מודלים של למידת מכונה. הארכיטקטורה של האינטרנט שלכם עשויה להשפיע על הדרך שבה המודל שלכם מאומן. דמיינו שאתם עובדים בעסק שבו קבוצת מדעני הנתונים אימנה מודל שהם רוצים שתשתמשו בו באפליקציה.
+
+### שיקולים
+
+ישנן שאלות רבות שעליכם לשאול:
+
+- **האם זו אפליקציית אינטרנט או אפליקציה לנייד?** אם אתם בונים אפליקציה לנייד או צריכים להשתמש במודל בהקשר של IoT, תוכלו להשתמש ב-[TensorFlow Lite](https://www.tensorflow.org/lite/) ולהשתמש במודל באפליקציות אנדרואיד או iOS.
+- **היכן המודל יימצא?** בענן או מקומית?
+- **תמיכה לא מקוונת.** האם האפליקציה צריכה לעבוד במצב לא מקוון?
+- **איזו טכנולוגיה שימשה לאימון המודל?** הטכנולוגיה שנבחרה עשויה להשפיע על הכלים שתצטרכו להשתמש בהם.
+ - **שימוש ב-TensorFlow.** אם אתם מאמנים מודל באמצעות TensorFlow, למשל, האקוסיסטם הזה מספק את היכולת להמיר מודל TensorFlow לשימוש באפליקציית אינטרנט באמצעות [TensorFlow.js](https://www.tensorflow.org/js/).
+ - **שימוש ב-PyTorch.** אם אתם בונים מודל באמצעות ספרייה כמו [PyTorch](https://pytorch.org/), יש לכם אפשרות לייצא אותו בפורמט [ONNX](https://onnx.ai/) (Open Neural Network Exchange) לשימוש באפליקציות אינטרנט JavaScript שיכולות להשתמש ב-[Onnx Runtime](https://www.onnxruntime.ai/). אפשרות זו תיחקר בשיעור עתידי עבור מודל שאומן באמצעות Scikit-learn.
+ - **שימוש ב-Lobe.ai או Azure Custom Vision.** אם אתם משתמשים במערכת SaaS (תוכנה כשירות) ללמידת מכונה כמו [Lobe.ai](https://lobe.ai/) או [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) לאימון מודל, סוג זה של תוכנה מספק דרכים לייצא את המודל לפלטפורמות רבות, כולל בניית API מותאם אישית שניתן לשאול בענן על ידי האפליקציה המקוונת שלכם.
+
+יש לכם גם את האפשרות לבנות אפליקציית אינטרנט שלמה ב-Flask שתוכל לאמן את המודל בעצמה בדפדפן אינטרנט. ניתן לעשות זאת גם באמצעות TensorFlow.js בהקשר של JavaScript.
+
+למטרותינו, מכיוון שעבדנו עם מחברות מבוססות Python, בואו נחקור את השלבים שעליכם לבצע כדי לייצא מודל מאומן ממחברת כזו לפורמט שניתן לקריאה על ידי אפליקציית אינטרנט שנבנתה ב-Python.
+
+## כלי
+
+למשימה זו, תצטרכו שני כלים: Flask ו-Pickle, שניהם פועלים על Python.
+
+✅ מהו [Flask](https://palletsprojects.com/p/flask/)? מוגדר כ'מיקרו-פריימוורק' על ידי יוצריו, Flask מספק את התכונות הבסיסיות של פריימוורקים לאינטרנט באמצעות Python ומנוע תבניות לבניית דפי אינטרנט. עיינו ב-[מודול הלמידה הזה](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) כדי לתרגל בנייה עם Flask.
+
+✅ מהו [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 הוא מודול Python שמבצע סריאליזציה ודס-סריאליזציה של מבנה אובייקט ב-Python. כשאתם 'משמרים' מודל, אתם מבצעים סריאליזציה או משטחים את המבנה שלו לשימוש באינטרנט. שימו לב: Pickle אינו בטוח באופן אינהרנטי, אז היו זהירים אם תתבקשו 'לפרוק' קובץ. קובץ משומר מסומן בסיומת `.pkl`.
+
+## תרגיל - ניקוי הנתונים שלכם
+
+בשיעור הזה תשתמשו בנתונים מ-80,000 תצפיות עב"מים, שנאספו על ידי [NUFORC](https://nuforc.org) (המרכז הלאומי לדיווח על עב"מים). לנתונים האלה יש תיאורים מעניינים של תצפיות עב"מים, לדוגמה:
+
+- **תיאור ארוך לדוגמה.** "אדם יוצא מקרן אור שמאירה על שדה דשא בלילה ורץ לכיוון מגרש החניה של Texas Instruments".
+- **תיאור קצר לדוגמה.** "האורות רדפו אחרינו".
+
+גיליון הנתונים [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) כולל עמודות על `עיר`, `מדינה` ו`ארץ` שבהן התצפית התרחשה, `צורה` של האובייקט ו`קו רוחב` ו`קו אורך`.
+
+ב-[מחברת](../../../../3-Web-App/1-Web-App/notebook.ipynb) הריקה שמצורפת לשיעור הזה:
+
+1. ייבאו את `pandas`, `matplotlib`, ו-`numpy` כפי שעשיתם בשיעורים קודמים וייבאו את גיליון הנתונים של עב"מים. תוכלו להסתכל על דוגמת סט נתונים:
+
+ ```python
+ import pandas as pd
+ import numpy as np
+
+ ufos = pd.read_csv('./data/ufos.csv')
+ ufos.head()
+ ```
+
+1. המירו את נתוני העב"מים למסגרת נתונים קטנה עם כותרות חדשות. בדקו את הערכים הייחודיים בשדה `Country`.
+
+ ```python
+ ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})
+
+ ufos.Country.unique()
+ ```
+
+1. עכשיו, תוכלו לצמצם את כמות הנתונים שעלינו להתמודד איתם על ידי הסרת ערכים ריקים וייבוא תצפיות בין 1-60 שניות בלבד:
+
+ ```python
+ ufos.dropna(inplace=True)
+
+ ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)]
+
+ ufos.info()
+ ```
+
+1. ייבאו את ספריית `LabelEncoder` של Scikit-learn כדי להמיר את ערכי הטקסט של מדינות למספר:
+
+ ✅ LabelEncoder מקודד נתונים לפי סדר אלפביתי
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+
+ ufos['Country'] = LabelEncoder().fit_transform(ufos['Country'])
+
+ ufos.head()
+ ```
+
+ הנתונים שלכם צריכים להיראות כך:
+
+ ```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
+ ```
+
+## תרגיל - בניית המודל שלכם
+
+עכשיו תוכלו להתכונן לאמן מודל על ידי חלוקת הנתונים לקבוצת אימון ובדיקה.
+
+1. בחרו את שלושת המאפיינים שתרצו לאמן עליהם כוקטור X שלכם, והוקטור y יהיה `Country`. אתם רוצים להיות מסוגלים להזין `Seconds`, `Latitude` ו-`Longitude` ולקבל מזהה מדינה להחזרה.
+
+ ```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. אימנו את המודל שלכם באמצעות רגרסיה לוגיסטית:
+
+ ```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))
+ ```
+
+הדיוק לא רע **(כ-95%)**, ולא מפתיע, מכיוון ש-`Country` ו-`Latitude/Longitude` מתואמים.
+
+המודל שיצרתם אינו מאוד מהפכני מכיוון שאתם אמורים להיות מסוגלים להסיק `Country` מ-`Latitude` ו-`Longitude`, אבל זהו תרגיל טוב לנסות לאמן מנתונים גולמיים שניקיתם, ייצאתם, ואז להשתמש במודל הזה באפליקציית אינטרנט.
+
+## תרגיל - 'שימור' המודל שלכם
+
+עכשיו, הגיע הזמן _לשמר_ את המודל שלכם! תוכלו לעשות זאת בכמה שורות קוד. לאחר שהוא _משומר_, טענו את המודל המשומר ובדקו אותו מול מערך נתונים לדוגמה שמכיל ערכים עבור שניות, קו רוחב וקו אורך.
+
+```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]]))
+```
+
+המודל מחזיר **'3'**, שזהו קוד המדינה עבור בריטניה. מדהים! 👽
+
+## תרגיל - בניית אפליקציית Flask
+
+עכשיו תוכלו לבנות אפליקציית Flask שתוכל לקרוא את המודל שלכם ולהחזיר תוצאות דומות, אבל בצורה יותר נעימה לעין.
+
+1. התחילו ביצירת תיקייה בשם **web-app** ליד קובץ _notebook.ipynb_ שבו נמצא קובץ _ufo-model.pkl_ שלכם.
+
+1. בתיקייה הזו צרו עוד שלוש תיקיות: **static**, עם תיקייה **css** בתוכה, ו-**templates**. עכשיו אמורים להיות לכם הקבצים והתיקיות הבאים:
+
+ ```output
+ web-app/
+ static/
+ css/
+ templates/
+ notebook.ipynb
+ ufo-model.pkl
+ ```
+
+ ✅ עיינו בתיקיית הפתרון כדי לראות את האפליקציה המוגמרת
+
+1. הקובץ הראשון שיש ליצור בתיקיית _web-app_ הוא קובץ **requirements.txt**. כמו _package.json_ באפליקציית JavaScript, קובץ זה מפרט את התלויות הנדרשות על ידי האפליקציה. ב-**requirements.txt** הוסיפו את השורות:
+
+ ```text
+ scikit-learn
+ pandas
+ numpy
+ flask
+ ```
+
+1. עכשיו, הריצו את הקובץ הזה על ידי ניווט ל-_web-app_:
+
+ ```bash
+ cd web-app
+ ```
+
+1. בטרמינל שלכם הקלידו `pip install`, כדי להתקין את הספריות המפורטות ב-_requirements.txt_:
+
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+1. עכשיו, אתם מוכנים ליצור עוד שלושה קבצים כדי לסיים את האפליקציה:
+
+ 1. צרו **app.py** בשורש.
+ 2. צרו **index.html** בתיקיית _templates_.
+ 3. צרו **styles.css** בתיקיית _static/css_.
+
+1. בנו את קובץ _styles.css_ עם כמה סגנונות:
+
+ ```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. לאחר מכן, בנו את קובץ _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 }}
+
+
+
+
+
+
+
+ ```
+
+ שימו לב לתבניות בקובץ הזה. שימו לב לסינטקס 'mustache' סביב משתנים שיסופקו על ידי האפליקציה, כמו טקסט התחזית: `{{}}`. יש גם טופס ששולח תחזית לנתיב `/predict`.
+
+ לבסוף, אתם מוכנים לבנות את קובץ ה-Python שמניע את צריכת המודל והצגת התחזיות:
+
+1. ב-`app.py` הוסיפו:
+
+ ```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)
+ ```
+
+ > 💡 טיפ: כשאתם מוסיפים [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) בזמן הרצת אפליקציית האינטרנט באמצעות Flask, כל שינוי שתעשו באפליקציה שלכם ישתקף מיד ללא צורך להפעיל מחדש את השרת. שימו לב! אל תפעילו מצב זה באפליקציה בסביבת ייצור.
+
+אם תריצו `python app.py` או `python3 app.py` - שרת האינטרנט שלכם יתחיל לפעול, מקומית, ותוכלו למלא טופס קצר כדי לקבל תשובה לשאלה הבוערת שלכם על היכן נצפו עב"מים!
+
+לפני שתעשו זאת, הסתכלו על החלקים של `app.py`:
+
+1. קודם כל, התלויות נטענות והאפליקציה מתחילה.
+1. לאחר מכן, המודל מיובא.
+1. לאחר מכן, index.html מוצג בנתיב הבית.
+
+בנתיב `/predict`, מספר דברים קורים כשהטופס נשלח:
+
+1. משתני הטופס נאספים ומומרים למערך numpy. הם נשלחים למודל ותחזית מוחזרת.
+2. המדינות שאנחנו רוצים להציג מוצגות מחדש כטקסט קריא מקוד המדינה החזוי שלהן, והערך הזה נשלח חזרה ל-index.html כדי להיות מוצג בתבנית.
+
+שימוש במודל בדרך זו, עם Flask ומודל משומר, הוא יחסית פשוט. הדבר הקשה ביותר הוא להבין באיזו צורה הנתונים צריכים להיות כדי להישלח למודל ולקבל תחזית. זה תלוי לחלוטין באיך המודל אומן. למודל הזה יש שלוש נקודות נתונים שצריך להזין כדי לקבל תחזית.
+
+בסביבה מקצועית, תוכלו לראות עד כמה תקשורת טובה היא הכרחית בין האנשים שמאמנים את המודל לבין אלה שצורכים אותו באפליקציית אינטרנט או נייד. במקרה שלנו, זה רק אדם אחד, אתם!
+
+---
+
+## 🚀 אתגר
+
+במקום לעבוד במחברת ולייבא את המודל לאפליקציית Flask, תוכלו לאמן את המודל ממש בתוך אפליקציית Flask! נסו להמיר את קוד ה-Python במחברת, אולי לאחר ניקוי הנתונים שלכם, כדי לאמן את המודל מתוך האפליקציה בנתיב שנקרא `train`. מה היתרונות והחסרונות של שיטה זו?
+
+## [שאלון אחרי השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+ישנן דרכים רבות לבנות אפליקציית אינטרנט לצריכת מודלים של למידת מכונה. הכינו רשימה של הדרכים שבהן תוכלו להשתמש ב-JavaScript או Python כדי לבנות אפליקציית אינטרנט שתנצל למידת מכונה. שקלו ארכיטקטורה: האם המודל צריך להישאר באפליקציה או לחיות בענן? אם האפשרות השנייה, איך הייתם ניגשים אליו? ציירו מודל ארכיטקטוני לפתרון אינטרנטי של למידת מכונה.
+
+## משימה
+
+[נסו מודל אחר](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/3-Web-App/1-Web-App/assignment.md b/translations/he/3-Web-App/1-Web-App/assignment.md
new file mode 100644
index 00000000..576c5d43
--- /dev/null
+++ b/translations/he/3-Web-App/1-Web-App/assignment.md
@@ -0,0 +1,25 @@
+
+# נסה מודל אחר
+
+## הוראות
+
+עכשיו, לאחר שבנית אפליקציית אינטרנט אחת באמצעות מודל רגרסיה מאומן, השתמש באחד מהמודלים משיעור הרגרסיה הקודם כדי לבנות מחדש את אפליקציית האינטרנט הזו. תוכל לשמור על הסגנון או לעצב אותה באופן שונה כך שתשקף את נתוני הדלעת. שים לב לשנות את הקלטים כך שיתאימו לשיטת האימון של המודל שלך.
+
+## קריטריונים להערכה
+
+| קריטריונים | מצטיין | מספק | דורש שיפור |
+| ------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | ----------------------------------- |
+| | אפליקציית האינטרנט פועלת כמצופה ומותקנת בענן | אפליקציית האינטרנט מכילה פגמים או מציגה תוצאות בלתי צפויות | אפליקציית האינטרנט אינה פועלת כראוי |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/3-Web-App/README.md b/translations/he/3-Web-App/README.md
new file mode 100644
index 00000000..8c3dda2c
--- /dev/null
+++ b/translations/he/3-Web-App/README.md
@@ -0,0 +1,35 @@
+
+# בנה אפליקציית ווב לשימוש במודל ML שלך
+
+בחלק זה של הקורס, תיחשף לנושא יישומי בתחום למידת מכונה: כיצד לשמור את המודל שלך שנבנה ב-Scikit-learn כקובץ שניתן להשתמש בו כדי לבצע תחזיות בתוך אפליקציית ווב. לאחר שהמודל נשמר, תלמד כיצד להשתמש בו באפליקציית ווב שנבנתה ב-Flask. תחילה תיצור מודל באמצעות נתונים העוסקים בתצפיות על עב"מים! לאחר מכן, תבנה אפליקציית ווב שתאפשר לך להזין מספר שניות יחד עם ערכי קו רוחב וקו אורך כדי לחזות באיזו מדינה דווח על עב"ם.
+
+
+
+צילום על ידי Michael Herren ב-Unsplash
+
+## שיעורים
+
+1. [בנה אפליקציית ווב](1-Web-App/README.md)
+
+## קרדיטים
+
+"בנה אפליקציית ווב" נכתב באהבה על ידי [Jen Looper](https://twitter.com/jenlooper).
+
+♥️ החידונים נכתבו על ידי Rohan Raj.
+
+המאגר נלקח מ-[Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings).
+
+ארכיטקטורת אפליקציית הווב הוצעה בחלקה על ידי [המאמר הזה](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) ו-[הריפו הזה](https://github.com/abhinavsagar/machine-learning-deployment) מאת Abhinav Sagar.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. אנו לא נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/1-Introduction/README.md b/translations/he/4-Classification/1-Introduction/README.md
new file mode 100644
index 00000000..8b9f7ebd
--- /dev/null
+++ b/translations/he/4-Classification/1-Introduction/README.md
@@ -0,0 +1,313 @@
+
+# מבוא לסיווג
+
+בארבעת השיעורים הללו, תחקור את אחד הנושאים המרכזיים בלמידת מכונה קלאסית - _סיווג_. נעבור יחד על שימוש באלגוריתמים שונים לסיווג עם מערך נתונים על כל המטבחים המדהימים של אסיה והודו. מקווים שאתה רעב!
+
+
+
+> חוגגים את המטבחים הפאן-אסייתיים בשיעורים האלה! תמונה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+סיווג הוא סוג של [למידה מונחית](https://wikipedia.org/wiki/Supervised_learning) שיש לה הרבה מן המשותף עם טכניקות רגרסיה. אם למידת מכונה עוסקת בניבוי ערכים או שמות לדברים באמצעות מערכי נתונים, אז סיווג בדרך כלל מתחלק לשתי קבוצות: _סיווג בינארי_ ו_סיווג רב-קטגורי_.
+
+[](https://youtu.be/eg8DJYwdMyg "מבוא לסיווג")
+
+> 🎥 לחץ על התמונה למעלה לצפייה בסרטון: ג'ון גוטאג מ-MIT מציג את נושא הסיווג
+
+זכור:
+
+- **רגרסיה ליניארית** עזרה לך לנבא קשרים בין משתנים ולבצע תחזיות מדויקות על מיקום נקודת נתונים חדשה ביחס לקו. לדוגמה, יכולת לנבא _מה יהיה מחיר דלעת בספטמבר לעומת דצמבר_.
+- **רגרסיה לוגיסטית** עזרה לך לגלות "קטגוריות בינאריות": בנקודת מחיר זו, _האם הדלעת כתומה או לא כתומה_?
+
+סיווג משתמש באלגוריתמים שונים כדי לקבוע דרכים אחרות להגדיר את התווית או הקטגוריה של נקודת נתונים. בואו נעבוד עם נתוני המטבחים האלה כדי לראות האם, על ידי התבוננות בקבוצת מרכיבים, נוכל לקבוע את מקור המטבח.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [השיעור הזה זמין ב-R!](../../../../4-Classification/1-Introduction/solution/R/lesson_10.html)
+
+### מבוא
+
+סיווג הוא אחת הפעילויות המרכזיות של חוקרי למידת מכונה ומדעני נתונים. החל מסיווג בסיסי של ערך בינארי ("האם האימייל הזה הוא ספאם או לא?"), ועד לסיווג תמונות מורכב וחלוקה באמצעות ראייה ממוחשבת, תמיד מועיל להיות מסוגל למיין נתונים לקטגוריות ולשאול שאלות עליהם.
+
+במונחים מדעיים יותר, שיטת הסיווג שלך יוצרת מודל חיזוי שמאפשר לך למפות את הקשר בין משתני קלט למשתני פלט.
+
+
+
+> בעיות בינאריות לעומת רב-קטגוריות עבור אלגוריתמי סיווג. אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+לפני שנתחיל בתהליך ניקוי הנתונים, ויזואליזציה שלהם והכנתם למשימות למידת המכונה שלנו, בואו נלמד מעט על הדרכים השונות שבהן ניתן להשתמש בלמידת מכונה כדי לסווג נתונים.
+
+בהשראת [סטטיסטיקה](https://wikipedia.org/wiki/Statistical_classification), סיווג באמצעות למידת מכונה קלאסית משתמש בתכונות כמו `smoker`, `weight`, ו-`age` כדי לקבוע _סבירות לפתח מחלה X_. כטכניקת למידה מונחית הדומה לתרגילי הרגרסיה שביצעתם קודם לכן, הנתונים שלכם מתויגים והאלגוריתמים של למידת המכונה משתמשים בתוויות אלו כדי לסווג ולחזות קטגוריות (או 'תכונות') של מערך נתונים ולהקצות אותם לקבוצה או לתוצאה.
+
+✅ הקדש רגע לדמיין מערך נתונים על מטבחים. מה מודל רב-קטגורי יוכל לענות עליו? מה מודל בינארי יוכל לענות עליו? מה אם היית רוצה לקבוע האם מטבח מסוים נוטה להשתמש בחילבה? מה אם היית רוצה לראות אם, בהתחשב בשקית מצרכים מלאה בכוכב אניס, ארטישוק, כרובית וחזרת, תוכל ליצור מנה הודית טיפוסית?
+
+[](https://youtu.be/GuTeDbaNoEU "סלים מסתוריים משוגעים")
+
+> 🎥 לחץ על התמונה למעלה לצפייה בסרטון. כל הרעיון של התוכנית 'Chopped' הוא 'סל מסתורין' שבו שפים צריכים להכין מנה מתוך בחירה אקראית של מרכיבים. בטוח שמודל למידת מכונה היה עוזר!
+
+## שלום 'מסווג'
+
+השאלה שאנחנו רוצים לשאול על מערך הנתונים של המטבחים היא למעשה שאלה **רב-קטגורית**, מכיוון שיש לנו כמה מטבחים לאומיים פוטנציאליים לעבוד איתם. בהתחשב בקבוצת מרכיבים, לאיזו מהקטגוריות הרבות הנתונים יתאימו?
+
+Scikit-learn מציעה מספר אלגוריתמים שונים לשימוש בסיווג נתונים, בהתאם לסוג הבעיה שברצונך לפתור. בשני השיעורים הבאים תלמד על כמה מהאלגוריתמים הללו.
+
+## תרגיל - ניקוי ואיזון הנתונים שלך
+
+המשימה הראשונה, לפני תחילת הפרויקט, היא לנקות ול**אזן** את הנתונים שלך כדי לקבל תוצאות טובות יותר. התחל עם הקובץ הריק _notebook.ipynb_ בתיקיית השורש של תיקייה זו.
+
+הדבר הראשון להתקין הוא [imblearn](https://imbalanced-learn.org/stable/). זהו חבילת Scikit-learn שתאפשר לך לאזן את הנתונים בצורה טובה יותר (תלמד יותר על משימה זו בעוד רגע).
+
+1. כדי להתקין `imblearn`, הרץ `pip install`, כך:
+
+ ```python
+ pip install imblearn
+ ```
+
+1. ייבא את החבילות שאתה צריך כדי לייבא את הנתונים שלך ולבצע ויזואליזציה, וגם ייבא `SMOTE` מ-`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
+ ```
+
+ עכשיו אתה מוכן לייבא את הנתונים.
+
+1. המשימה הבאה תהיה לייבא את הנתונים:
+
+ ```python
+ df = pd.read_csv('../data/cuisines.csv')
+ ```
+
+ שימוש ב-`read_csv()` יקרא את תוכן קובץ ה-csv _cusines.csv_ וימקם אותו במשתנה `df`.
+
+1. בדוק את צורת הנתונים:
+
+ ```python
+ df.head()
+ ```
+
+ חמש השורות הראשונות נראות כך:
+
+ ```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. קבל מידע על הנתונים האלה על ידי קריאה ל-`info()`:
+
+ ```python
+ df.info()
+ ```
+
+ הפלט שלך נראה כך:
+
+ ```output
+
+ RangeIndex: 2448 entries, 0 to 2447
+ Columns: 385 entries, Unnamed: 0 to zucchini
+ dtypes: int64(384), object(1)
+ memory usage: 7.2+ MB
+ ```
+
+## תרגיל - ללמוד על מטבחים
+
+עכשיו העבודה מתחילה להיות מעניינת יותר. בואו נגלה את התפלגות הנתונים, לפי מטבח.
+
+1. הצג את הנתונים כעמודות על ידי קריאה ל-`barh()`:
+
+ ```python
+ df.cuisine.value_counts().plot.barh()
+ ```
+
+ 
+
+ יש מספר סופי של מטבחים, אבל התפלגות הנתונים אינה אחידה. אתה יכול לתקן את זה! לפני כן, חקור קצת יותר.
+
+1. גלה כמה נתונים זמינים לכל מטבח והדפס אותם:
+
+ ```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}')
+ ```
+
+ הפלט נראה כך:
+
+ ```output
+ thai df: (289, 385)
+ japanese df: (320, 385)
+ chinese df: (442, 385)
+ indian df: (598, 385)
+ korean df: (799, 385)
+ ```
+
+## גילוי מרכיבים
+
+עכשיו אתה יכול להעמיק בנתונים וללמוד מהם המרכיבים הטיפוסיים לכל מטבח. כדאי לנקות נתונים חוזרים שיוצרים בלבול בין מטבחים, אז בואו נלמד על הבעיה הזו.
+
+1. צור פונקציה `create_ingredient()` ב-Python כדי ליצור מסגרת נתונים של מרכיבים. פונקציה זו תתחיל בהשמטת עמודה לא מועילה ותמיין מרכיבים לפי הספירה שלהם:
+
+ ```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
+ ```
+
+ עכשיו תוכל להשתמש בפונקציה הזו כדי לקבל מושג על עשרת המרכיבים הפופולריים ביותר לפי מטבח.
+
+1. קרא ל-`create_ingredient()` והצג את הנתונים על ידי קריאה ל-`barh()`:
+
+ ```python
+ thai_ingredient_df = create_ingredient_df(thai_df)
+ thai_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. עשה את אותו הדבר עבור הנתונים היפניים:
+
+ ```python
+ japanese_ingredient_df = create_ingredient_df(japanese_df)
+ japanese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. עכשיו עבור המרכיבים הסיניים:
+
+ ```python
+ chinese_ingredient_df = create_ingredient_df(chinese_df)
+ chinese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. הצג את המרכיבים ההודיים:
+
+ ```python
+ indian_ingredient_df = create_ingredient_df(indian_df)
+ indian_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. לבסוף, הצג את המרכיבים הקוריאניים:
+
+ ```python
+ korean_ingredient_df = create_ingredient_df(korean_df)
+ korean_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. עכשיו, השמט את המרכיבים הנפוצים ביותר שיוצרים בלבול בין מטבחים שונים, על ידי קריאה ל-`drop()`:
+
+ כולם אוהבים אורז, שום וג'ינג'ר!
+
+ ```python
+ feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1)
+ labels_df = df.cuisine #.unique()
+ feature_df.head()
+ ```
+
+## איזון מערך הנתונים
+
+עכשיו, לאחר שניקית את הנתונים, השתמש ב-[SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "טכניקת דגימה יתר סינתטית" - כדי לאזן אותם.
+
+1. קרא ל-`fit_resample()`, אסטרטגיה זו יוצרת דגימות חדשות באמצעות אינטרפולציה.
+
+ ```python
+ oversample = SMOTE()
+ transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)
+ ```
+
+ על ידי איזון הנתונים שלך, תקבל תוצאות טובות יותר בעת סיווגם. חשב על סיווג בינארי. אם רוב הנתונים שלך הם מקטגוריה אחת, מודל למידת מכונה הולך לנבא את הקטגוריה הזו בתדירות גבוהה יותר, פשוט כי יש יותר נתונים עבורה. איזון הנתונים לוקח נתונים מוטים ועוזר להסיר את חוסר האיזון הזה.
+
+1. עכשיו תוכל לבדוק את מספרי התוויות לפי מרכיב:
+
+ ```python
+ print(f'new label count: {transformed_label_df.value_counts()}')
+ print(f'old label count: {df.cuisine.value_counts()}')
+ ```
+
+ הפלט שלך נראה כך:
+
+ ```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
+ ```
+
+ הנתונים נקיים, מאוזנים, ומאוד טעימים!
+
+1. השלב האחרון הוא לשמור את הנתונים המאוזנים שלך, כולל תוויות ותכונות, למסגרת נתונים חדשה שניתן לייצא לקובץ:
+
+ ```python
+ transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer')
+ ```
+
+1. תוכל להציץ שוב בנתונים באמצעות `transformed_df.head()` ו-`transformed_df.info()`. שמור עותק של הנתונים האלה לשימוש בשיעורים עתידיים:
+
+ ```python
+ transformed_df.head()
+ transformed_df.info()
+ transformed_df.to_csv("../data/cleaned_cuisines.csv")
+ ```
+
+ קובץ ה-CSV החדש הזה נמצא עכשיו בתיקיית הנתונים הראשית.
+
+---
+
+## 🚀אתגר
+
+תוכנית הלימודים הזו מכילה כמה מערכי נתונים מעניינים. חפש בתיקיות `data` וראה אם יש מערכי נתונים שמתאימים לסיווג בינארי או רב-קטגורי? אילו שאלות היית שואל על מערך הנתונים הזה?
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+חקור את ה-API של SMOTE. לאילו מקרי שימוש הוא מתאים ביותר? אילו בעיות הוא פותר?
+
+## משימה
+
+[חקור שיטות סיווג](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/1-Introduction/assignment.md b/translations/he/4-Classification/1-Introduction/assignment.md
new file mode 100644
index 00000000..0f73c54d
--- /dev/null
+++ b/translations/he/4-Classification/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# חקור שיטות סיווג
+
+## הוראות
+
+ב[תיעוד של Scikit-learn](https://scikit-learn.org/stable/supervised_learning.html) תמצא רשימה גדולה של דרכים לסווג נתונים. ערוך חיפוש קצר בתיעוד הזה: המטרה שלך היא לחפש שיטות סיווג ולשייך אותן למערך נתונים בתוכנית הלימודים, שאלה שניתן לשאול לגביו, וטכניקת סיווג. צור גיליון אלקטרוני או טבלה בקובץ .doc והסבר כיצד מערך הנתונים יעבוד עם האלגוריתם של הסיווג.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| | מוצג מסמך שמסביר 5 אלגוריתמים לצד טכניקת סיווג. ההסבר מפורט וברור. | מוצג מסמך שמסביר 3 אלגוריתמים לצד טכניקת סיווג. ההסבר מפורט וברור. | מוצג מסמך שמסביר פחות משלושה אלגוריתמים לצד טכניקת סיווג, וההסבר אינו מפורט או ברור. |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/1-Introduction/solution/Julia/README.md b/translations/he/4-Classification/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..406708b7
--- /dev/null
+++ b/translations/he/4-Classification/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/2-Classifiers-1/README.md b/translations/he/4-Classification/2-Classifiers-1/README.md
new file mode 100644
index 00000000..647e7cf0
--- /dev/null
+++ b/translations/he/4-Classification/2-Classifiers-1/README.md
@@ -0,0 +1,253 @@
+
+# מסווגי מטבחים 1
+
+בשיעור הזה, תשתמשו במאגר הנתונים ששמרתם מהשיעור הקודם, שמלא בנתונים מאוזנים ונקיים על מטבחים.
+
+תשתמשו במאגר הנתונים הזה עם מגוון מסווגים כדי _לחזות מטבח לאומי מסוים בהתבסס על קבוצת מרכיבים_. תוך כדי כך, תלמדו יותר על כמה מהדרכים שבהן ניתן להשתמש באלגוריתמים למשימות סיווג.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+# הכנה
+
+בהנחה שסיימתם את [שיעור 1](../1-Introduction/README.md), ודאו שקובץ _cleaned_cuisines.csv_ נמצא בתיקיית השורש `/data` עבור ארבעת השיעורים הללו.
+
+## תרגיל - חיזוי מטבח לאומי
+
+1. בעבודה בתיקיית _notebook.ipynb_ של השיעור הזה, ייבאו את הקובץ יחד עם ספריית Pandas:
+
+ ```python
+ import pandas as pd
+ cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv")
+ cuisines_df.head()
+ ```
+
+ הנתונים נראים כך:
+
+| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
+| 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. עכשיו, ייבאו עוד כמה ספריות:
+
+ ```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. חלקו את הקואורדינטות X ו-y לשני מסגרות נתונים עבור אימון. `cuisine` יכולה להיות מסגרת הנתונים של התוויות:
+
+ ```python
+ cuisines_label_df = cuisines_df['cuisine']
+ cuisines_label_df.head()
+ ```
+
+ זה ייראה כך:
+
+ ```output
+ 0 indian
+ 1 indian
+ 2 indian
+ 3 indian
+ 4 indian
+ Name: cuisine, dtype: object
+ ```
+
+1. הסירו את העמודה `Unnamed: 0` ואת העמודה `cuisine` באמצעות `drop()`. שמרו את שאר הנתונים כמאפיינים לאימון:
+
+ ```python
+ cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
+ cuisines_feature_df.head()
+ ```
+
+ המאפיינים שלכם ייראו כך:
+
+| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
+| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
+| 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 |
+
+עכשיו אתם מוכנים לאמן את המודל שלכם!
+
+## בחירת המסווג
+
+עכשיו כשהנתונים שלכם נקיים ומוכנים לאימון, עליכם להחליט איזה אלגוריתם להשתמש בו למשימה.
+
+Scikit-learn מקטלגת סיווג תחת למידה מונחית, ובקטגוריה הזו תמצאו דרכים רבות לסווג. [המגוון](https://scikit-learn.org/stable/supervised_learning.html) עשוי להיות מבלבל במבט ראשון. השיטות הבאות כולן כוללות טכניקות סיווג:
+
+- מודלים ליניאריים
+- מכונות וקטור תמיכה
+- ירידה גרדיאנטית סטוכסטית
+- שכנים קרובים
+- תהליכים גאוסיאניים
+- עצי החלטה
+- שיטות אנסמבל (מסווג הצבעה)
+- אלגוריתמים רב-מחלקתיים ורב-תוצאות (סיווג רב-מחלקתי ורב-תוויתי, סיווג רב-מחלקתי-רב-תוצאות)
+
+> ניתן גם להשתמש [ברשתות נוירונים לסיווג נתונים](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), אבל זה מחוץ לתחום השיעור הזה.
+
+### איזה מסווג לבחור?
+
+אז, איזה מסווג כדאי לבחור? לעיתים, מעבר על כמה מהם וחיפוש אחר תוצאה טובה היא דרך לבדוק. Scikit-learn מציעה [השוואה צד-לצד](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) על מאגר נתונים שנוצר, המשווה בין KNeighbors, SVC בשתי דרכים, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ו-QuadraticDiscrinationAnalysis, ומציגה את התוצאות בצורה חזותית:
+
+
+> גרפים שנוצרו בתיעוד של Scikit-learn
+
+> AutoML פותר את הבעיה הזו בצורה מסודרת על ידי הרצת ההשוואות הללו בענן, ומאפשר לכם לבחור את האלגוריתם הטוב ביותר עבור הנתונים שלכם. נסו זאת [כאן](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
+
+### גישה טובה יותר
+
+גישה טובה יותר מאשר לנחש באופן אקראי היא לעקוב אחר הרעיונות בדף העזר להורדה [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). כאן, אנו מגלים שבשביל הבעיה הרב-מחלקתית שלנו, יש לנו כמה אפשרויות:
+
+
+> חלק מדף העזר של Microsoft לאלגוריתמים, המתאר אפשרויות סיווג רב-מחלקתיות
+
+✅ הורידו את דף העזר הזה, הדפיסו אותו ותלו אותו על הקיר שלכם!
+
+### נימוקים
+
+בואו נראה אם נוכל לנמק את דרכנו דרך גישות שונות בהתחשב במגבלות שיש לנו:
+
+- **רשתות נוירונים כבדות מדי**. בהתחשב במאגר הנתונים הנקי אך המינימלי שלנו, ובעובדה שאנחנו מריצים את האימון באופן מקומי דרך מחברות, רשתות נוירונים כבדות מדי למשימה הזו.
+- **אין מסווג דו-מחלקתי**. אנחנו לא משתמשים במסווג דו-מחלקתי, כך שזה שולל את האפשרות של one-vs-all.
+- **עץ החלטה או רגרסיה לוגיסטית יכולים לעבוד**. עץ החלטה עשוי לעבוד, או רגרסיה לוגיסטית עבור נתונים רב-מחלקתיים.
+- **עצים החלטה מחוזקים רב-מחלקתיים פותרים בעיה אחרת**. עץ החלטה מחוזק רב-מחלקתי מתאים ביותר למשימות לא פרמטריות, למשל משימות שנועדו לבנות דירוגים, ולכן הוא לא שימושי עבורנו.
+
+### שימוש ב-Scikit-learn
+
+נשתמש ב-Scikit-learn כדי לנתח את הנתונים שלנו. עם זאת, ישנן דרכים רבות להשתמש ברגרסיה לוגיסטית ב-Scikit-learn. הסתכלו על [הפרמטרים להעברה](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+בעיקרון, ישנם שני פרמטרים חשובים - `multi_class` ו-`solver` - שעלינו לציין, כאשר אנו מבקשים מ-Scikit-learn לבצע רגרסיה לוגיסטית. הערך של `multi_class` מיישם התנהגות מסוימת. הערך של `solver` הוא האלגוריתם לשימוש. לא כל הפותרים יכולים להיות משולבים עם כל ערכי `multi_class`.
+
+לפי התיעוד, במקרה הרב-מחלקתי, אלגוריתם האימון:
+
+- **משתמש בתוכנית one-vs-rest (OvR)**, אם אפשרות `multi_class` מוגדרת כ-`ovr`
+- **משתמש באובדן קרוס-אנטרופי**, אם אפשרות `multi_class` מוגדרת כ-`multinomial`. (כרגע אפשרות `multinomial` נתמכת רק על ידי הפותרים ‘lbfgs’, ‘sag’, ‘saga’ ו-‘newton-cg’.)"
+
+> 🎓 ה'תוכנית' כאן יכולה להיות 'ovr' (one-vs-rest) או 'multinomial'. מכיוון שרגרסיה לוגיסטית נועדה למעשה לתמוך בסיווג בינארי, תוכניות אלו מאפשרות לה להתמודד טוב יותר עם משימות סיווג רב-מחלקתיות. [מקור](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
+
+> 🎓 ה'פותר' מוגדר כ"האלגוריתם לשימוש בבעיה האופטימיזציה". [מקור](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Scikit-learn מציעה את הטבלה הזו כדי להסביר כיצד פותרים מתמודדים עם אתגרים שונים שמוצגים על ידי מבני נתונים שונים:
+
+
+
+## תרגיל - פיצול הנתונים
+
+נוכל להתמקד ברגרסיה לוגיסטית לניסוי האימון הראשון שלנו מכיוון שלמדתם עליה לאחרונה בשיעור קודם.
+פצלו את הנתונים שלכם לקבוצות אימון ובדיקה על ידי קריאה ל-`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)
+```
+
+## תרגיל - יישום רגרסיה לוגיסטית
+
+מכיוון שאתם משתמשים במקרה הרב-מחלקתי, עליכם לבחור איזו _תוכנית_ להשתמש ואיזה _פותר_ להגדיר. השתמשו ב-LogisticRegression עם הגדרה רב-מחלקתית והפותר **liblinear** לאימון.
+
+1. צרו רגרסיה לוגיסטית עם multi_class מוגדר כ-`ovr` והפותר מוגדר כ-`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))
+ ```
+
+ ✅ נסו פותר אחר כמו `lbfgs`, שלרוב מוגדר כברירת מחדל
+> שים לב, השתמש בפונקציה [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) של Pandas כדי לשטח את הנתונים שלך בעת הצורך.
+הדיוק טוב ביותר מ-**80%**!
+
+1. ניתן לראות את המודל בפעולה על ידי בדיקת שורה אחת של נתונים (#50):
+
+ ```python
+ print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
+ print(f'cuisine: {y_test.iloc[50]}')
+ ```
+
+ התוצאה מודפסת:
+
+ ```output
+ ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
+ cuisine: indian
+ ```
+
+ ✅ נסו מספר שורה שונה ובדקו את התוצאות
+
+1. אם נעמיק, ניתן לבדוק את דיוק התחזית הזו:
+
+ ```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()
+ ```
+
+ התוצאה מודפסת - המטבח ההודי הוא הניחוש הטוב ביותר, עם הסתברות גבוהה:
+
+ | | 0 |
+ | -------: | -------: |
+ | indian | 0.715851 |
+ | chinese | 0.229475 |
+ | japanese | 0.029763 |
+ | korean | 0.017277 |
+ | thai | 0.007634 |
+
+ ✅ האם תוכלו להסביר מדוע המודל די בטוח שזהו מטבח הודי?
+
+1. קבלו פרטים נוספים על ידי הדפסת דוח סיווג, כפי שעשיתם בשיעורי הרגרסיה:
+
+ ```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 |
+
+## 🚀אתגר
+
+בשיעור זה השתמשתם בנתונים הנקיים שלכם כדי לבנות מודל למידת מכונה שיכול לחזות מטבח לאומי בהתבסס על סדרת מרכיבים. הקדישו זמן לקרוא על האפשרויות הרבות ש-Scikit-learn מציעה לסיווג נתונים. העמיקו במושג 'solver' כדי להבין מה מתרחש מאחורי הקלעים.
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+העמיקו מעט במתמטיקה שמאחורי רגרסיה לוגיסטית ב[שיעור הזה](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
+## משימה
+
+[לימדו על ה-solvers](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/2-Classifiers-1/assignment.md b/translations/he/4-Classification/2-Classifiers-1/assignment.md
new file mode 100644
index 00000000..8e43dd0d
--- /dev/null
+++ b/translations/he/4-Classification/2-Classifiers-1/assignment.md
@@ -0,0 +1,24 @@
+
+# למד את הפותרים
+## הוראות
+
+בשיעור זה למדת על הפותרים השונים שמשלבים אלגוריתמים עם תהליך למידת מכונה כדי ליצור מודל מדויק. עבור על הפותרים שהוזכרו בשיעור ובחר שניים. במילים שלך, השווה והנגיד בין שני הפותרים הללו. איזה סוג של בעיה הם פותרים? כיצד הם עובדים עם מבני נתונים שונים? מדוע היית בוחר באחד על פני השני?
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | -------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------- |
+| | קובץ .doc מוצג עם שני פסקאות, אחת על כל פותר, המשוות ביניהם באופן מעמיק. | קובץ .doc מוצג עם פסקה אחת בלבד | המשימה אינה מלאה |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/2-Classifiers-1/solution/Julia/README.md b/translations/he/4-Classification/2-Classifiers-1/solution/Julia/README.md
new file mode 100644
index 00000000..368b0d4e
--- /dev/null
+++ b/translations/he/4-Classification/2-Classifiers-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/3-Classifiers-2/README.md b/translations/he/4-Classification/3-Classifiers-2/README.md
new file mode 100644
index 00000000..17132347
--- /dev/null
+++ b/translations/he/4-Classification/3-Classifiers-2/README.md
@@ -0,0 +1,249 @@
+
+# מסווגי מטבחים 2
+
+בשיעור הסיווג השני הזה, תחקור דרכים נוספות לסווג נתונים מספריים. בנוסף, תלמד על ההשלכות של בחירת מסווג אחד על פני אחר.
+
+## [מבחן מקדים להרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+### דרישות מוקדמות
+
+אנו מניחים שסיימת את השיעורים הקודמים ויש לך מערך נתונים מנוקה בתיקיית `data` בשם _cleaned_cuisines.csv_ שנמצא בשורש תיקיית ארבעת השיעורים.
+
+### הכנה
+
+טענו את קובץ _notebook.ipynb_ שלך עם מערך הנתונים המנוקה וחילקנו אותו למסגרות נתונים X ו-y, מוכנות לתהליך בניית המודל.
+
+## מפת סיווג
+
+בשיעור הקודם, למדת על האפשרויות השונות שיש לך בעת סיווג נתונים באמצעות דף העזר של Microsoft. Scikit-learn מציעה דף עזר דומה אך מפורט יותר שיכול לעזור לצמצם את הבחירה במעריכים (מונח נוסף למסווגים):
+
+
+> טיפ: [בקר במפה הזו אונליין](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ולחץ לאורך המסלול כדי לקרוא את התיעוד.
+
+### התוכנית
+
+המפה הזו מאוד מועילה ברגע שיש לך הבנה ברורה של הנתונים שלך, שכן ניתן 'ללכת' לאורך המסלולים שלה כדי להגיע להחלטה:
+
+- יש לנו >50 דגימות
+- אנחנו רוצים לחזות קטגוריה
+- יש לנו נתונים מתויגים
+- יש לנו פחות מ-100K דגימות
+- ✨ אנחנו יכולים לבחור ב-Linear SVC
+- אם זה לא עובד, מכיוון שיש לנו נתונים מספריים
+ - אנחנו יכולים לנסות ✨ KNeighbors Classifier
+ - אם זה לא עובד, לנסות ✨ SVC ו-✨ Ensemble Classifiers
+
+זהו מסלול מאוד מועיל לעקוב אחריו.
+
+## תרגיל - חלוקת הנתונים
+
+בהתאם למסלול הזה, כדאי להתחיל בייבוא כמה ספריות לשימוש.
+
+1. ייבא את הספריות הנדרשות:
+
+ ```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. חלק את נתוני האימון והבדיקה שלך:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+ ```
+
+## מסווג Linear SVC
+
+סיווג באמצעות Support-Vector (SVC) הוא חלק ממשפחת טכניקות ה-ML של Support-Vector Machines (למידע נוסף על אלו למטה). בשיטה זו, ניתן לבחור 'גרעין' כדי להחליט כיצד לקבץ את התוויות. הפרמטר 'C' מתייחס ל'רגולריזציה' שמווסתת את השפעת הפרמטרים. הגרעין יכול להיות אחד מ-[כמה](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); כאן אנו מגדירים אותו כ'לינארי' כדי להבטיח שנשתמש ב-Linear SVC. ברירת המחדל של הסתברות היא 'false'; כאן אנו מגדירים אותה כ'true' כדי לקבל הערכות הסתברות. אנו מגדירים את מצב האקראיות כ-'0' כדי לערבב את הנתונים ולקבל הסתברויות.
+
+### תרגיל - יישום Linear SVC
+
+התחל ביצירת מערך מסווגים. תוסיף בהדרגה למערך הזה ככל שנבדוק.
+
+1. התחל עם Linear SVC:
+
+ ```python
+ C = 10
+ # Create different classifiers.
+ classifiers = {
+ 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
+ }
+ ```
+
+2. אמן את המודל שלך באמצעות Linear SVC והדפס דוח:
+
+ ```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))
+ ```
+
+ התוצאה די טובה:
+
+ ```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
+
+K-Neighbors הוא חלק ממשפחת שיטות ה-ML של "שכנים", שניתן להשתמש בהן ללמידה מונחית ולא מונחית. בשיטה זו, נוצר מספר מוגדר מראש של נקודות, והנתונים נאספים סביב נקודות אלו כך שניתן לחזות תוויות כלליות עבור הנתונים.
+
+### תרגיל - יישום מסווג K-Neighbors
+
+המסווג הקודם היה טוב ועבד היטב עם הנתונים, אבל אולי נוכל להשיג דיוק טוב יותר. נסה מסווג K-Neighbors.
+
+1. הוסף שורה למערך המסווגים שלך (הוסף פסיק אחרי הפריט של Linear SVC):
+
+ ```python
+ 'KNN classifier': KNeighborsClassifier(C),
+ ```
+
+ התוצאה קצת פחות טובה:
+
+ ```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
+ ```
+
+ ✅ למד על [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
+
+## מסווג Support Vector
+
+מסווגי Support-Vector הם חלק ממשפחת [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) של שיטות ML המשמשות למשימות סיווג ורגרסיה. SVMs "ממפים דוגמאות אימון לנקודות במרחב" כדי למקסם את המרחק בין שתי קטגוריות. נתונים עוקבים ממופים למרחב הזה כך שניתן לחזות את הקטגוריה שלהם.
+
+### תרגיל - יישום מסווג Support Vector
+
+בואו ננסה להשיג דיוק קצת יותר טוב עם מסווג Support Vector.
+
+1. הוסף פסיק אחרי הפריט של K-Neighbors, ואז הוסף את השורה הזו:
+
+ ```python
+ 'SVC': SVC(),
+ ```
+
+ התוצאה די טובה!
+
+ ```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
+ ```
+
+ ✅ למד על [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
+
+## מסווגי Ensemble
+
+בואו נעקוב אחרי המסלול עד הסוף, למרות שהבדיקה הקודמת הייתה די טובה. ננסה כמה מסווגי 'Ensemble', במיוחד Random Forest ו-AdaBoost:
+
+```python
+ 'RFST': RandomForestClassifier(n_estimators=100),
+ 'ADA': AdaBoostClassifier(n_estimators=100)
+```
+
+התוצאה מאוד טובה, במיוחד עבור 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
+```
+
+✅ למד על [מסווגי Ensemble](https://scikit-learn.org/stable/modules/ensemble.html)
+
+שיטה זו של למידת מכונה "משלבת את התחזיות של כמה מעריכים בסיסיים" כדי לשפר את איכות המודל. בדוגמה שלנו, השתמשנו ב-Random Trees ו-AdaBoost.
+
+- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), שיטה ממוצעת, בונה 'יער' של 'עצים החלטה' עם אקראיות כדי להימנע מהתאמת יתר. הפרמטר n_estimators מוגדר למספר העצים.
+
+- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) מתאים מסווג למערך נתונים ואז מתאים עותקים של אותו מסווג לאותו מערך נתונים. הוא מתמקד במשקל של פריטים שסווגו באופן שגוי ומכוונן את ההתאמה למסווג הבא כדי לתקן.
+
+---
+
+## 🚀אתגר
+
+לכל אחת מהטכניקות הללו יש מספר רב של פרמטרים שניתן לכוונן. חקור את פרמטרי ברירת המחדל של כל אחת מהן וחשוב על מה משמעות כוונון הפרמטרים הללו עבור איכות המודל.
+
+## [מבחן לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+יש הרבה מונחים מקצועיים בשיעורים האלה, אז קח רגע לעיין [ברשימה הזו](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) של מונחים שימושיים!
+
+## משימה
+
+[משחק פרמטרים](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/3-Classifiers-2/assignment.md b/translations/he/4-Classification/3-Classifiers-2/assignment.md
new file mode 100644
index 00000000..53a05ba0
--- /dev/null
+++ b/translations/he/4-Classification/3-Classifiers-2/assignment.md
@@ -0,0 +1,25 @@
+
+# משחק עם פרמטרים
+
+## הוראות
+
+ישנם הרבה פרמטרים שמוגדרים כברירת מחדל כאשר עובדים עם מסווגים אלו. Intellisense ב-VS Code יכול לעזור לכם לחקור אותם. בחרו אחת מטכניקות הסיווג של למידת מכונה בשיעור זה ואמנו מחדש מודלים תוך שינוי ערכי פרמטרים שונים. צרו מחברת שמסבירה מדוע שינויים מסוימים משפרים את איכות המודל בעוד שאחרים פוגעים בה. היו מפורטים בתשובתכם.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ---------------------------- |
+| | מוצגת מחברת עם מסווג שבנוי במלואו, פרמטרים שונו והסברים ניתנו בתיבות טקסט | מוצגת מחברת חלקית או עם הסברים לקויים | מחברת עם באגים או פגמים |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/3-Classifiers-2/solution/Julia/README.md b/translations/he/4-Classification/3-Classifiers-2/solution/Julia/README.md
new file mode 100644
index 00000000..7b10519b
--- /dev/null
+++ b/translations/he/4-Classification/3-Classifiers-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/4-Applied/README.md b/translations/he/4-Classification/4-Applied/README.md
new file mode 100644
index 00000000..b6160ed1
--- /dev/null
+++ b/translations/he/4-Classification/4-Applied/README.md
@@ -0,0 +1,329 @@
+
+# בניית אפליקציית המלצות למטבח
+
+בשיעור זה תבנו מודל סיווג באמצעות כמה מהטכניקות שלמדתם בשיעורים קודמים, ותשתמשו במאגר הנתונים הטעים של מטבחים שהשתמשנו בו לאורך הסדרה. בנוסף, תבנו אפליקציית אינטרנט קטנה שתשתמש במודל שמור, תוך שימוש ב-Onnx Web Runtime.
+
+אחת השימושים הפרקטיים המועילים ביותר של למידת מכונה היא בניית מערכות המלצה, ואתם יכולים לעשות את הצעד הראשון בכיוון הזה כבר היום!
+
+[](https://youtu.be/17wdM9AHMfg "Applied ML")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: ג'ן לופר בונה אפליקציית אינטרנט באמצעות נתוני מטבחים מסווגים
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+בשיעור זה תלמדו:
+
+- כיצד לבנות מודל ולשמור אותו כמודל Onnx
+- כיצד להשתמש ב-Netron כדי לבדוק את המודל
+- כיצד להשתמש במודל שלכם באפליקציית אינטרנט לצורך הסקה
+
+## בניית המודל שלכם
+
+בניית מערכות למידת מכונה יישומיות היא חלק חשוב בשימוש בטכנולוגיות אלו עבור מערכות עסקיות. ניתן להשתמש במודלים בתוך אפליקציות אינטרנט (וכך גם להשתמש בהם במצב לא מקוון אם יש צורך) באמצעות Onnx.
+
+בשיעור [קודם](../../3-Web-App/1-Web-App/README.md), בניתם מודל רגרסיה על תצפיות עב"מים, "כבשתם" אותו, והשתמשתם בו באפליקציית Flask. בעוד שהארכיטקטורה הזו מאוד שימושית, היא אפליקציית Python מלאה, וייתכן שהדרישות שלכם כוללות שימוש באפליקציית JavaScript.
+
+בשיעור זה, תוכלו לבנות מערכת בסיסית מבוססת JavaScript לצורך הסקה. אך קודם לכן, עליכם לאמן מודל ולהמיר אותו לשימוש עם Onnx.
+
+## תרגיל - אימון מודל סיווג
+
+ראשית, אימנו מודל סיווג באמצעות מאגר הנתונים הנקי של מטבחים שהשתמשנו בו.
+
+1. התחילו בייבוא ספריות שימושיות:
+
+ ```python
+ !pip install skl2onnx
+ import pandas as pd
+ ```
+
+ תזדקקו ל-[skl2onnx](https://onnx.ai/sklearn-onnx/) כדי לעזור להמיר את מודל Scikit-learn שלכם לפורמט Onnx.
+
+1. לאחר מכן, עבדו עם הנתונים שלכם באותו אופן שעשיתם בשיעורים קודמים, על ידי קריאת קובץ CSV באמצעות `read_csv()`:
+
+ ```python
+ data = pd.read_csv('../data/cleaned_cuisines.csv')
+ data.head()
+ ```
+
+1. הסירו את שני העמודות הראשונות שאינן נחוצות ושמרו את הנתונים הנותרים כ-'X':
+
+ ```python
+ X = data.iloc[:,2:]
+ X.head()
+ ```
+
+1. שמרו את התוויות כ-'y':
+
+ ```python
+ y = data[['cuisine']]
+ y.head()
+
+ ```
+
+### התחלת שגרת האימון
+
+נשתמש בספריית 'SVC' שמספקת דיוק טוב.
+
+1. ייבאו את הספריות המתאימות מ-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. הפרידו בין קבוצות האימון והבדיקה:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
+ ```
+
+1. בנו מודל סיווג SVC כפי שעשיתם בשיעור הקודם:
+
+ ```python
+ model = SVC(kernel='linear', C=10, probability=True,random_state=0)
+ model.fit(X_train,y_train.values.ravel())
+ ```
+
+1. כעת, בדקו את המודל שלכם על ידי קריאה ל-`predict()`:
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+1. הדפיסו דוח סיווג כדי לבדוק את איכות המודל:
+
+ ```python
+ print(classification_report(y_test,y_pred))
+ ```
+
+ כפי שראינו קודם, הדיוק טוב:
+
+ ```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
+ ```
+
+### המרת המודל שלכם ל-Onnx
+
+וודאו שההמרה מתבצעת עם מספר הטנזור המתאים. מאגר הנתונים הזה כולל 380 מרכיבים, ולכן עליכם לציין את המספר הזה ב-`FloatTensorType`:
+
+1. המירו באמצעות מספר טנזור של 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. צרו את הקובץ onx ושמרו אותו כקובץ **model.onnx**:
+
+ ```python
+ onx = convert_sklearn(model, initial_types=initial_type, options=options)
+ with open("./model.onnx", "wb") as f:
+ f.write(onx.SerializeToString())
+ ```
+
+ > שימו לב, ניתן להעביר [אפשרויות](https://onnx.ai/sklearn-onnx/parameterized.html) בתסריט ההמרה שלכם. במקרה זה, העברנו 'nocl' כ-True ו-'zipmap' כ-False. מכיוון שמדובר במודל סיווג, יש לכם אפשרות להסיר את ZipMap שמייצר רשימת מילונים (לא נחוץ). `nocl` מתייחס למידע על מחלקות שנכלל במודל. ניתן להקטין את גודל המודל שלכם על ידי הגדרת `nocl` כ-'True'.
+
+הרצת המחברת כולה תבנה כעת מודל Onnx ותשמור אותו בתיקייה זו.
+
+## צפייה במודל שלכם
+
+מודלים של Onnx אינם נראים היטב ב-Visual Studio Code, אך יש תוכנה חינמית טובה מאוד שרבים מהחוקרים משתמשים בה כדי להציג את המודל ולוודא שהוא נבנה כראוי. הורידו את [Netron](https://github.com/lutzroeder/Netron) ופתחו את קובץ model.onnx שלכם. תוכלו לראות את המודל הפשוט שלכם מוצג, עם 380 הקלטים והמסווג המופיעים:
+
+
+
+Netron הוא כלי מועיל לצפייה במודלים שלכם.
+
+כעת אתם מוכנים להשתמש במודל המגניב הזה באפליקציית אינטרנט. בואו נבנה אפליקציה שתהיה שימושית כאשר תביטו במקרר שלכם ותנסו להבין אילו שילובי מרכיבים שנותרו לכם יכולים לשמש להכנת מטבח מסוים, כפי שנקבע על ידי המודל שלכם.
+
+## בניית אפליקציית אינטרנט להמלצות
+
+ניתן להשתמש במודל שלכם ישירות באפליקציית אינטרנט. ארכיטקטורה זו גם מאפשרת לכם להריץ אותה באופן מקומי ואפילו לא מקוון אם יש צורך. התחילו ביצירת קובץ `index.html` באותה תיקייה שבה שמרתם את קובץ `model.onnx`.
+
+1. בקובץ זה _index.html_, הוסיפו את הסימון הבא:
+
+ ```html
+
+
+
+ Cuisine Matcher
+
+
+ ...
+
+
+ ```
+
+1. כעת, בתוך תגי `body`, הוסיפו מעט סימון כדי להציג רשימת תיבות סימון המשקפות כמה מרכיבים:
+
+ ```html
+
Check your refrigerator. What can you create?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ```
+
+ שימו לב שכל תיבת סימון מקבלת ערך. ערך זה משקף את האינדקס שבו המרכיב נמצא לפי מאגר הנתונים. תפוח, למשל, ברשימה האלפביתית הזו, תופס את העמודה החמישית, ולכן הערך שלו הוא '4' מכיוון שאנחנו מתחילים לספור מ-0. תוכלו להתייעץ עם [גיליון המרכיבים](../../../../4-Classification/data/ingredient_indexes.csv) כדי לגלות את האינדקס של מרכיב מסוים.
+
+ המשיכו לעבוד בקובץ index.html, והוסיפו בלוק סקריפט שבו המודל נקרא לאחר סגירת `` הסופית.
+
+1. ראשית, ייבאו את [Onnx Runtime](https://www.onnxruntime.ai/):
+
+ ```html
+
+ ```
+
+ > Onnx Runtime משמש כדי לאפשר הרצת מודלים של Onnx על פני מגוון רחב של פלטפורמות חומרה, כולל אופטימיזציות ו-API לשימוש.
+
+1. לאחר שה-runtime במקום, תוכלו לקרוא לו:
+
+ ```html
+
+ ```
+
+בקוד זה, מתרחשים כמה דברים:
+
+1. יצרתם מערך של 380 ערכים אפשריים (1 או 0) שיוגדרו וישלחו למודל לצורך הסקה, בהתאם לשאלה האם תיבת סימון מסומנת.
+2. יצרתם מערך של תיבות סימון ודרך לקבוע האם הן סומנו בפונקציית `init` שנקראת כאשר האפליקציה מתחילה. כאשר תיבת סימון מסומנת, מערך `ingredients` משתנה כדי לשקף את המרכיב שנבחר.
+3. יצרתם פונקציית `testCheckboxes` שבודקת האם תיבת סימון כלשהי סומנה.
+4. אתם משתמשים בפונקציית `startInference` כאשר הכפתור נלחץ, ואם תיבת סימון כלשהי סומנה, אתם מתחילים הסקה.
+5. שגרת ההסקה כוללת:
+ 1. הגדרת טעינה אסינכרונית של המודל
+ 2. יצירת מבנה טנזור לשליחה למודל
+ 3. יצירת 'feeds' שמשקפים את הקלט `float_input` שיצרתם כאשר אימנתם את המודל שלכם (ניתן להשתמש ב-Netron כדי לאמת את השם)
+ 4. שליחת 'feeds' אלו למודל והמתנה לתגובה
+
+## בדיקת האפליקציה שלכם
+
+פתחו סשן טרמינל ב-Visual Studio Code בתיקייה שבה נמצא קובץ index.html שלכם. ודאו שיש לכם [http-server](https://www.npmjs.com/package/http-server) מותקן גלובלית, והקלידו `http-server` בשורת הפקודה. localhost אמור להיפתח ותוכלו לצפות באפליקציית האינטרנט שלכם. בדקו איזה מטבח מומלץ בהתבסס על מרכיבים שונים:
+
+
+
+מזל טוב, יצרתם אפליקציית אינטרנט להמלצות עם כמה שדות. הקדישו זמן לבניית המערכת הזו!
+
+## 🚀אתגר
+
+אפליקציית האינטרנט שלכם מאוד מינימלית, אז המשיכו לבנות אותה באמצעות מרכיבים והאינדקסים שלהם מתוך נתוני [ingredient_indexes](../../../../4-Classification/data/ingredient_indexes.csv). אילו שילובי טעמים עובדים כדי ליצור מנה לאומית מסוימת?
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+בעוד שהשיעור הזה רק נגע בשימושיות של יצירת מערכת המלצות למרכיבי מזון, תחום יישומי למידת מכונה זה עשיר בדוגמאות. קראו עוד על איך מערכות אלו נבנות:
+
+- 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/
+
+## משימה
+
+[בנו מערכת המלצות חדשה](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/4-Applied/assignment.md b/translations/he/4-Classification/4-Applied/assignment.md
new file mode 100644
index 00000000..e88d0bda
--- /dev/null
+++ b/translations/he/4-Classification/4-Applied/assignment.md
@@ -0,0 +1,25 @@
+
+# בנה מערכת המלצות
+
+## הוראות
+
+בהתבסס על התרגילים שלך בשיעור הזה, אתה כבר יודע איך לבנות אפליקציית ווב מבוססת JavaScript באמצעות Onnx Runtime ומודל Onnx שהומר. נסה לבנות מערכת המלצות חדשה תוך שימוש בנתונים מהשיעורים האלה או ממקורות אחרים (נא לתת קרדיט). לדוגמה, תוכל ליצור מערכת המלצות לחיות מחמד בהתבסס על תכונות אישיות שונות, או מערכת המלצות לז'אנרים מוזיקליים בהתאם למצב הרוח של האדם. תהיה יצירתי!
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | -------------------------------------------------------------------- | ----------------------------------- | ------------------------------- |
+| | מוצגת אפליקציית ווב ומחברת, שתיהן מתועדות היטב ופועלות | אחת מהשתיים חסרה או פגומה | שתיהן חסרות או פגומות |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לכל אי הבנות או פרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/4-Classification/README.md b/translations/he/4-Classification/README.md
new file mode 100644
index 00000000..a295e209
--- /dev/null
+++ b/translations/he/4-Classification/README.md
@@ -0,0 +1,41 @@
+
+# התחלת עבודה עם סיווג
+
+## נושא אזורי: מטבחים אסייתיים והודיים טעימים 🍜
+
+באסיה ובהודו, מסורות האוכל מגוונות מאוד וטעימות במיוחד! בואו נבחן נתונים על מטבחים אזוריים כדי לנסות להבין את המרכיבים שלהם.
+
+
+> צילום על ידי Lisheng Chang ב-Unsplash
+
+## מה תלמדו
+
+בפרק זה, תבנו על בסיס הלימוד הקודם שלכם בנושא רגרסיה ותלמדו על מסווגים נוספים שתוכלו להשתמש בהם כדי להבין טוב יותר את הנתונים.
+
+> ישנם כלים שימושיים עם מעט קוד שיכולים לעזור לכם ללמוד על עבודה עם מודלים של סיווג. נסו [Azure ML למשימה זו](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## שיעורים
+
+1. [מבוא לסיווג](1-Introduction/README.md)
+2. [מסווגים נוספים](2-Classifiers-1/README.md)
+3. [עוד מסווגים](3-Classifiers-2/README.md)
+4. [למידת מכונה יישומית: בניית אפליקציית ווב](4-Applied/README.md)
+
+## קרדיטים
+
+"התחלת עבודה עם סיווג" נכתב באהבה ♥️ על ידי [Cassie Breviu](https://www.twitter.com/cassiebreviu) ו-[Jen Looper](https://www.twitter.com/jenlooper)
+
+מאגר הנתונים של המטבחים הטעימים נלקח מ-[Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines).
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/5-Clustering/1-Visualize/README.md b/translations/he/5-Clustering/1-Visualize/README.md
new file mode 100644
index 00000000..e4cf129c
--- /dev/null
+++ b/translations/he/5-Clustering/1-Visualize/README.md
@@ -0,0 +1,347 @@
+
+# מבוא לקיבוץ
+
+קיבוץ הוא סוג של [למידה ללא פיקוח](https://wikipedia.org/wiki/Unsupervised_learning) שמניח כי מערך הנתונים אינו מתויג או שהקלטים שלו אינם מותאמים לפלטים מוגדרים מראש. הוא משתמש באלגוריתמים שונים כדי למיין נתונים לא מתויגים ולספק קבוצות בהתאם לדפוסים שהוא מזהה בנתונים.
+
+[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון. בזמן שאתם לומדים על למידת מכונה עם קיבוץ, תהנו ממוזיקת דאנס הול ניגרית - זהו שיר מדורג מאוד משנת 2014 של PSquare.
+
+## [שאלון לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+### מבוא
+
+[קיבוץ](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) הוא כלי שימושי מאוד לחקר נתונים. בואו נראה אם הוא יכול לעזור לגלות מגמות ודפוסים באופן שבו קהל ניגרי צורך מוזיקה.
+
+✅ הקדישו רגע לחשוב על השימושים בקיבוץ. בחיים האמיתיים, קיבוץ מתרחש בכל פעם שיש לכם ערימת כביסה ואתם צריכים למיין את הבגדים של בני המשפחה 🧦👕👖🩲. במדעי הנתונים, קיבוץ מתרחש כשמנסים לנתח את העדפות המשתמש או לקבוע את המאפיינים של כל מערך נתונים לא מתויג. קיבוץ, במובן מסוים, עוזר לעשות סדר בכאוס, כמו מגירת גרביים.
+
+[](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: ג'ון גוטאג מ-MIT מציג את נושא הקיבוץ
+
+בסביבה מקצועית, קיבוץ יכול לשמש לקביעת דברים כמו פילוח שוק, למשל, לקבוע אילו קבוצות גיל קונות אילו פריטים. שימוש נוסף יכול להיות זיהוי חריגות, אולי כדי לזהות הונאה מתוך מערך נתונים של עסקאות בכרטיסי אשראי. או שתוכלו להשתמש בקיבוץ כדי לזהות גידולים בסריקות רפואיות.
+
+✅ הקדישו רגע לחשוב כיצד נתקלתם בקיבוץ 'בעולם האמיתי', בסביבה בנקאית, מסחר אלקטרוני או עסקית.
+
+> 🎓 מעניין, ניתוח קיבוץ מקורו בתחומי האנתרופולוגיה והפסיכולוגיה בשנות ה-30. האם אתם יכולים לדמיין כיצד הוא שימש אז?
+
+לחילופין, תוכלו להשתמש בו לקיבוץ תוצאות חיפוש - לפי קישורי קניות, תמונות או ביקורות, למשל. קיבוץ שימושי כשיש לכם מערך נתונים גדול שברצונכם לצמצם ועליו לבצע ניתוח מעמיק יותר, כך שהטכניקה יכולה לשמש ללמידה על נתונים לפני בניית מודלים אחרים.
+
+✅ לאחר שמערך הנתונים שלכם מאורגן בקבוצות, אתם מקצים לו מזהה קבוצה, וטכניקה זו יכולה להיות שימושית לשמירה על פרטיות מערך הנתונים; תוכלו להתייחס לנקודת נתונים לפי מזהה הקבוצה שלה, במקום לפי נתונים מזהים יותר. האם אתם יכולים לחשוב על סיבות נוספות מדוע תעדיפו להתייחס למזהה קבוצה במקום לאלמנטים אחרים של הקבוצה כדי לזהות אותה?
+
+העמיקו את הבנתכם בטכניקות קיבוץ במודול [לימוד זה](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)
+
+## התחלת עבודה עם קיבוץ
+
+[Scikit-learn מציעה מגוון רחב](https://scikit-learn.org/stable/modules/clustering.html) של שיטות לביצוע קיבוץ. הסוג שתבחרו תלוי במקרה השימוש שלכם. לפי התיעוד, לכל שיטה יש יתרונות שונים. הנה טבלה פשוטה של השיטות הנתמכות על ידי Scikit-learn ומקרי השימוש המתאימים להן:
+
+| שם השיטה | מקרה שימוש |
+| :------------------------ | :--------------------------------------------------------------------- |
+| K-Means | שימוש כללי, אינדוקטיבי |
+| Affinity propagation | קבוצות רבות ולא אחידות, אינדוקטיבי |
+| Mean-shift | קבוצות רבות ולא אחידות, אינדוקטיבי |
+| Spectral clustering | קבוצות מעטות ואחידות, טרנסדוקטיבי |
+| Ward hierarchical clustering | קבוצות רבות ומוגבלות, טרנסדוקטיבי |
+| Agglomerative clustering | קבוצות רבות ומוגבלות, מרחקים לא אוקלידיים, טרנסדוקטיבי |
+| DBSCAN | גיאומטריה לא שטוחה, קבוצות לא אחידות, טרנסדוקטיבי |
+| OPTICS | גיאומטריה לא שטוחה, קבוצות לא אחידות עם צפיפות משתנה, טרנסדוקטיבי |
+| Gaussian mixtures | גיאומטריה שטוחה, אינדוקטיבי |
+| BIRCH | מערך נתונים גדול עם חריגות, אינדוקטיבי |
+
+> 🎓 איך אנחנו יוצרים קבוצות קשור מאוד לאופן שבו אנחנו אוספים את נקודות הנתונים לקבוצות. בואו נפרק קצת את המונחים:
+>
+> 🎓 ['טרנסדוקטיבי' מול 'אינדוקטיבי'](https://wikipedia.org/wiki/Transduction_(machine_learning))
+>
+> הסקה טרנסדוקטיבית נגזרת ממקרים שנצפו באימון שממופים למקרים ספציפיים בבדיקה. הסקה אינדוקטיבית נגזרת ממקרים באימון שממופים לכללים כלליים שמיושמים רק לאחר מכן על מקרים בבדיקה.
+>
+> דוגמה: דמיינו שיש לכם מערך נתונים שמסומן רק באופן חלקי. חלק מהפריטים הם 'תקליטים', חלק 'דיסקים', וחלק ריקים. המשימה שלכם היא לספק תוויות לריקים. אם תבחרו בגישה אינדוקטיבית, תאמנו מודל שמחפש 'תקליטים' ו'דיסקים', ותיישמו את התוויות הללו על הנתונים הלא מתויגים. גישה זו תתקשה לסווג פריטים שהם למעשה 'קלטות'. גישה טרנסדוקטיבית, לעומת זאת, מתמודדת עם נתונים לא ידועים בצורה יעילה יותר כשהיא עובדת על קיבוץ פריטים דומים יחד ואז מיישמת תווית לקבוצה. במקרה זה, הקבוצות עשויות לשקף 'דברים מוזיקליים עגולים' ו'דברים מוזיקליים מרובעים'.
+>
+> 🎓 ['גיאומטריה לא שטוחה' מול 'שטוחה'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
+>
+> נגזר מהמונחים המתמטיים, גיאומטריה לא שטוחה מול שטוחה מתייחסת למדידת המרחקים בין נקודות על ידי שיטות גיאומטריות 'שטוחות' ([אוקלידיות](https://wikipedia.org/wiki/Euclidean_geometry)) או 'לא שטוחות' (לא אוקלידיות).
+>
+>'שטוחה' בהקשר זה מתייחסת לגיאומטריה אוקלידית (חלקים ממנה נלמדים כגיאומטריה 'מישורית'), ו'לא שטוחה' מתייחסת לגיאומטריה לא אוקלידית. מה הקשר בין גיאומטריה ללמידת מכונה? ובכן, כשני תחומים שמבוססים על מתמטיקה, חייבת להיות דרך משותפת למדוד מרחקים בין נקודות בקבוצות, וזה יכול להיעשות בצורה 'שטוחה' או 'לא שטוחה', תלוי בטבע הנתונים. [מרחקים אוקלידיים](https://wikipedia.org/wiki/Euclidean_distance) נמדדים כאורך של קטע קו בין שתי נקודות. [מרחקים לא אוקלידיים](https://wikipedia.org/wiki/Non-Euclidean_geometry) נמדדים לאורך עקומה. אם הנתונים שלכם, כשהם מוצגים, נראים כאילו אינם קיימים על מישור, ייתכן שתצטרכו להשתמש באלגוריתם מיוחד כדי להתמודד איתם.
+>
+
+> אינפוגרפיקה מאת [Dasani Madipalli](https://twitter.com/dasani_decoded)
+>
+> 🎓 ['מרחקים'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
+>
+> קבוצות מוגדרות על ידי מטריצת המרחקים שלהן, כלומר המרחקים בין נקודות. מרחק זה יכול להימדד בכמה דרכים. קבוצות אוקלידיות מוגדרות על ידי ממוצע ערכי הנקודות, ומכילות 'centroid' או נקודת מרכז. המרחקים נמדדים כך לפי המרחק ל-centroid. מרחקים לא אוקלידיים מתייחסים ל'clustroids', הנקודה הקרובה ביותר לנקודות אחרות. Clustroids בתורם יכולים להיות מוגדרים בדרכים שונות.
+>
+> 🎓 ['מוגבל'](https://wikipedia.org/wiki/Constrained_clustering)
+>
+> [קיבוץ מוגבל](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) מכניס 'למידה חצי מפוקחת' לשיטה ללא פיקוח זו. היחסים בין נקודות מסומנים כ'לא ניתן לקשר' או 'חייב לקשר' כך שכמה כללים נכפים על מערך הנתונים.
+>
+>דוגמה: אם אלגוריתם משוחרר על אצווה של נתונים לא מתויגים או חצי מתויגים, הקבוצות שהוא יוצר עשויות להיות באיכות ירודה. בדוגמה לעיל, הקבוצות עשויות לקבץ 'דברים מוזיקליים עגולים', 'דברים מוזיקליים מרובעים', 'דברים משולשים' ו'עוגיות'. אם ניתנים כמה מגבלות, או כללים לעקוב אחריהם ("הפריט חייב להיות עשוי מפלסטיק", "הפריט צריך להיות מסוגל להפיק מוזיקה") זה יכול לעזור 'להגביל' את האלגוריתם לקבל החלטות טובות יותר.
+>
+> 🎓 'צפיפות'
+>
+> נתונים שהם 'רועשים' נחשבים ל'צפופים'. המרחקים בין נקודות בכל אחת מהקבוצות שלהם עשויים להוכיח, בבדיקה, שהם צפופים יותר או פחות, או 'עמוסים' ולכן נתונים אלה צריכים להיות מנותחים עם שיטת הקיבוץ המתאימה. [מאמר זה](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) מדגים את ההבדל בין שימוש בקיבוץ K-Means לבין אלגוריתמים של HDBSCAN לחקר מערך נתונים רועש עם צפיפות קבוצות לא אחידה.
+
+## אלגוריתמי קיבוץ
+
+ישנם מעל 100 אלגוריתמי קיבוץ, והשימוש בהם תלוי בטבע הנתונים שבידכם. בואו נדון בכמה מהעיקריים:
+
+- **קיבוץ היררכי**. אם אובייקט מסווג לפי קרבתו לאובייקט סמוך, ולא לאחד רחוק יותר, קבוצות נוצרות על בסיס המרחק של חבריהן אל ומאובייקטים אחרים. הקיבוץ האגרומרטיבי של Scikit-learn הוא היררכי.
+
+ 
+ > אינפוגרפיקה מאת [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **קיבוץ לפי מרכז**. אלגוריתם פופולרי זה דורש בחירה של 'k', או מספר הקבוצות שיש ליצור, ולאחר מכן האלגוריתם קובע את נקודת המרכז של קבוצה ואוסף נתונים סביב אותה נקודה. [קיבוץ K-means](https://wikipedia.org/wiki/K-means_clustering) הוא גרסה פופולרית של קיבוץ לפי מרכז. המרכז נקבע לפי הממוצע הקרוב ביותר, ומכאן השם. המרחק המרובע מהקבוצה ממוזער.
+
+ 
+ > אינפוגרפיקה מאת [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **קיבוץ מבוסס התפלגות**. מבוסס על מודלים סטטיסטיים, קיבוץ מבוסס התפלגות מתמקד בקביעת ההסתברות שנקודת נתונים שייכת לקבוצה, ומקצה אותה בהתאם. שיטות תערובת גאוסיאנית שייכות לסוג זה.
+
+- **קיבוץ מבוסס צפיפות**. נקודות נתונים מוקצות לקבוצות על בסיס צפיפותן, או התאגדותן זו סביב זו. נקודות נתונים רחוקות מהקבוצה נחשבות לחריגות או רעש. DBSCAN, Mean-shift ו-OPTICS שייכות לסוג זה של קיבוץ.
+
+- **קיבוץ מבוסס רשת**. עבור מערכי נתונים רב-ממדיים, נוצרת רשת והנתונים מחולקים בין תאי הרשת, ובכך נוצרים קבוצות.
+
+## תרגיל - קבצו את הנתונים שלכם
+
+קיבוץ כטכניקה נעזר מאוד בהדמיה נכונה, אז בואו נתחיל בהדמיה של נתוני המוזיקה שלנו. תרגיל זה יעזור לנו להחליט אילו משיטות הקיבוץ נוכל להשתמש בצורה היעילה ביותר עבור טבע הנתונים הללו.
+
+1. פתחו את הקובץ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) בתיקייה זו.
+
+1. ייבאו את חבילת `Seaborn` להדמיה טובה של נתונים.
+
+ ```python
+ !pip install seaborn
+ ```
+
+1. הוסיפו את נתוני השירים מתוך [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). טענו מסגרת נתונים עם מידע על השירים. התכוננו לחקור את הנתונים הללו על ידי ייבוא הספריות והצגת הנתונים:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import pandas as pd
+
+ df = pd.read_csv("../data/nigerian-songs.csv")
+ df.head()
+ ```
+
+ בדקו את השורות הראשונות של הנתונים:
+
+ | | שם | אלבום | אמן | ז'אנר מוביל של האמן | תאריך יציאה | אורך | פופולריות | ריקודיות | אקוסטיות | אנרגיה | אינסטרומנטליות | חיות | עוצמה | דיבוריות | טמפו | חתימת זמן |
+ | --- | ---------------------- | ---------------------------- | ------------------ | ------------------- | ------------ | ----- | ---------- | --------- | --------- | ------ | ---------------- | ------ | ------- | ---------- | ------- | ---------- |
+ | 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. קבל מידע על מסגרת הנתונים על ידי קריאה ל-`info()`:
+
+ ```python
+ df.info()
+ ```
+
+ הפלט נראה כך:
+
+ ```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. בדוק שוב אם יש ערכים חסרים על ידי קריאה ל-`isnull()` ואימות שהסכום הוא 0:
+
+ ```python
+ df.isnull().sum()
+ ```
+
+ נראה טוב:
+
+ ```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. תאר את הנתונים:
+
+ ```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 |
+
+> 🤔 אם אנחנו עובדים עם קיבוץ, שיטה לא מפוקחת שאינה דורשת נתונים מתויגים, מדוע אנחנו מציגים את הנתונים עם תוויות? בשלב חקר הנתונים, הם שימושיים, אך הם אינם הכרחיים לפעולת האלגוריתמים של הקיבוץ. אפשר פשוט להסיר את כותרות העמודות ולהתייחס לנתונים לפי מספרי עמודות.
+
+הסתכל על הערכים הכלליים של הנתונים. שים לב שהפופולריות יכולה להיות '0', מה שמראה שירים שאין להם דירוג. בואו נסיר אותם בקרוב.
+
+1. השתמש בגרף עמודות כדי לגלות את הז'אנרים הפופולריים ביותר:
+
+ ```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')
+ ```
+
+ 
+
+✅ אם תרצה לראות יותר ערכים מובילים, שנה את `[:5]` לערך גדול יותר, או הסר אותו כדי לראות הכל.
+
+שים לב, כאשר הז'אנר המוביל מתואר כ'חסר', זה אומר ש-Spotify לא סיווג אותו, אז בואו נסיר אותו.
+
+1. הסר נתונים חסרים על ידי סינונם החוצה
+
+ ```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')
+ ```
+
+ עכשיו בדוק שוב את הז'אנרים:
+
+ 
+
+1. שלושת הז'אנרים המובילים שולטים בבירור במאגר הנתונים הזה. בואו נתמקד ב-`afro dancehall`, `afropop`, ו-`nigerian pop`, בנוסף נסנן את מאגר הנתונים כדי להסיר כל דבר עם ערך פופולריות של 0 (כלומר הוא לא סווג עם פופולריות במאגר הנתונים וניתן להתייחס אליו כרעש למטרותינו):
+
+ ```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. בצע בדיקה מהירה כדי לראות אם הנתונים מתואמים בצורה חזקה במיוחד:
+
+ ```python
+ corrmat = df.corr(numeric_only=True)
+ f, ax = plt.subplots(figsize=(12, 9))
+ sns.heatmap(corrmat, vmax=.8, square=True)
+ ```
+
+ 
+
+ ההתאמה החזקה היחידה היא בין `energy` ל-`loudness`, מה שלא מפתיע במיוחד, בהתחשב בכך שמוזיקה רועשת היא בדרך כלל די אנרגטית. מלבד זאת, ההתאמות יחסית חלשות. יהיה מעניין לראות מה אלגוריתם קיבוץ יכול לעשות עם הנתונים האלה.
+
+ > 🎓 שים לב שהתאמה אינה מעידה על סיבתיות! יש לנו הוכחה להתאמה אך אין הוכחה לסיבתיות. [אתר משעשע](https://tylervigen.com/spurious-correlations) מציג כמה חזותיות שמדגישות את הנקודה הזו.
+
+האם יש התכנסות במאגר הנתונים הזה סביב הפופולריות הנתפסת של שיר ורמת הריקודיות שלו? גריד פייסט מראה שיש מעגלים קונצנטריים שמתיישרים, ללא קשר לז'אנר. האם ייתכן שהטעם הניגרי מתכנס ברמת ריקודיות מסוימת עבור הז'אנר הזה?
+
+✅ נסה נקודות נתונים שונות (אנרגיה, עוצמה, דיבוריות) ועוד או ז'אנרים מוזיקליים שונים. מה תוכל לגלות? הסתכל בטבלת `df.describe()` כדי לראות את ההתפלגות הכללית של נקודות הנתונים.
+
+### תרגיל - התפלגות נתונים
+
+האם שלושת הז'אנרים האלה שונים באופן משמעותי בתפיסת הריקודיות שלהם, בהתבסס על הפופולריות שלהם?
+
+1. בדוק את התפלגות הנתונים של שלושת הז'אנרים המובילים שלנו עבור פופולריות וריקודיות לאורך ציר x ו-y נתון.
+
+ ```python
+ sns.set_theme(style="ticks")
+
+ g = sns.jointplot(
+ data=df,
+ x="popularity", y="danceability", hue="artist_top_genre",
+ kind="kde",
+ )
+ ```
+
+ תוכל לגלות מעגלים קונצנטריים סביב נקודת התכנסות כללית, שמראים את התפלגות הנקודות.
+
+ > 🎓 שים לב שהדוגמה הזו משתמשת בגרף KDE (Kernel Density Estimate) שמייצג את הנתונים באמצעות עקומת צפיפות הסתברות רציפה. זה מאפשר לנו לפרש נתונים כשעובדים עם התפלגויות מרובות.
+
+ באופן כללי, שלושת הז'אנרים מתיישרים באופן רופף מבחינת הפופולריות והריקודיות שלהם. קביעת קבוצות בנתונים שמתיישרים באופן רופף תהיה אתגר:
+
+ 
+
+1. צור גרף פיזור:
+
+ ```python
+ sns.FacetGrid(df, hue="artist_top_genre", height=5) \
+ .map(plt.scatter, "popularity", "danceability") \
+ .add_legend()
+ ```
+
+ גרף פיזור של אותם צירים מראה דפוס דומה של התכנסות
+
+ 
+
+באופן כללי, עבור קיבוץ, ניתן להשתמש בגרפי פיזור כדי להראות קבוצות של נתונים, כך שלשלוט בסוג זה של ויזואליזציה זה מאוד שימושי. בשיעור הבא, ניקח את הנתונים המסוננים האלה ונשתמש בקיבוץ k-means כדי לגלות קבוצות בנתונים האלה שנראה כי חופפות בדרכים מעניינות.
+
+---
+
+## 🚀אתגר
+
+בהכנה לשיעור הבא, צור תרשים על אלגוריתמי הקיבוץ השונים שתוכל לגלות ולהשתמש בהם בסביבת ייצור. אילו סוגי בעיות הקיבוץ מנסה לפתור?
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+לפני שתיישם אלגוריתמי קיבוץ, כפי שלמדנו, זה רעיון טוב להבין את טבע מאגר הנתונים שלך. קרא עוד על הנושא [כאן](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
+
+[מאמר מועיל זה](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) עובר על הדרכים השונות שבהן אלגוריתמי קיבוץ שונים מתנהגים, בהתחשב בצורות נתונים שונות.
+
+## משימה
+
+[חקר ויזואליזציות אחרות עבור קיבוץ](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/5-Clustering/1-Visualize/assignment.md b/translations/he/5-Clustering/1-Visualize/assignment.md
new file mode 100644
index 00000000..a2b4a617
--- /dev/null
+++ b/translations/he/5-Clustering/1-Visualize/assignment.md
@@ -0,0 +1,25 @@
+
+# חקר ויזואליזציות אחרות עבור אשכולות
+
+## הוראות
+
+בשיעור זה, עבדת עם כמה טכניקות ויזואליזציה כדי להבין כיצד לשרטט את הנתונים שלך כהכנה לאשכולות. גרפים פיזוריים (Scatterplots), במיוחד, שימושיים למציאת קבוצות של אובייקטים. חקור דרכים שונות וספריות שונות ליצירת גרפים פיזוריים ותעד את עבודתך במחברת. תוכל להשתמש בנתונים מהשיעור הזה, שיעורים אחרים, או נתונים שתמצא בעצמך (עם זאת, אנא ציין את מקורם במחברת שלך). שרטט נתונים באמצעות גרפים פיזוריים והסבר מה גילית.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ---------------------------- |
+| | מוצגת מחברת עם חמישה גרפים פיזוריים מתועדים היטב | מוצגת מחברת עם פחות מחמישה גרפים פיזוריים והיא פחות מתועדת היטב | מוצגת מחברת לא שלמה |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/5-Clustering/1-Visualize/solution/Julia/README.md b/translations/he/5-Clustering/1-Visualize/solution/Julia/README.md
new file mode 100644
index 00000000..df114429
--- /dev/null
+++ b/translations/he/5-Clustering/1-Visualize/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/5-Clustering/2-K-Means/README.md b/translations/he/5-Clustering/2-K-Means/README.md
new file mode 100644
index 00000000..5269e468
--- /dev/null
+++ b/translations/he/5-Clustering/2-K-Means/README.md
@@ -0,0 +1,261 @@
+
+# אשכולות K-Means
+
+## [מבחן מקדים](https://ff-quizzes.netlify.app/en/ml/)
+
+בשיעור הזה תלמדו כיצד ליצור אשכולות באמצעות Scikit-learn וסט הנתונים של מוזיקה ניגרית שייבאתם קודם לכן. נכסה את היסודות של K-Means לצורך אשכולות. זכרו, כפי שלמדתם בשיעור הקודם, ישנן דרכים רבות לעבוד עם אשכולות, והשיטה שתבחרו תלויה בנתונים שלכם. ננסה את K-Means מכיוון שזו טכניקת האשכולות הנפוצה ביותר. בואו נתחיל!
+
+מונחים שתלמדו עליהם:
+
+- ציון סילואט
+- שיטת המרפק
+- אינרציה
+- שונות
+
+## מבוא
+
+[K-Means Clustering](https://wikipedia.org/wiki/K-means_clustering) היא שיטה שמקורה בתחום עיבוד האותות. היא משמשת לחלוקה וקיבוץ קבוצות נתונים ל-'k' אשכולות באמצעות סדרת תצפיות. כל תצפית פועלת לקיבוץ נקודת נתונים נתונה הקרובה ביותר ל-'ממוצע' שלה, או לנקודת המרכז של האשכול.
+
+ניתן להמחיש את האשכולות כ-[דיאגרמות וורונוי](https://wikipedia.org/wiki/Voronoi_diagram), הכוללות נקודה (או 'זרע') והאזור המתאים לה.
+
+
+
+> אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+תהליך האשכולות של K-Means [מתבצע בשלושה שלבים](https://scikit-learn.org/stable/modules/clustering.html#k-means):
+
+1. האלגוריתם בוחר מספר נקודות מרכזיות (k) על ידי דגימה מתוך סט הנתונים. לאחר מכן הוא מבצע לולאה:
+ 1. הוא מקצה כל דגימה לנקודת המרכז הקרובה ביותר.
+ 2. הוא יוצר נקודות מרכזיות חדשות על ידי חישוב הממוצע של כל הדגימות שהוקצו לנקודות המרכזיות הקודמות.
+ 3. לאחר מכן, הוא מחשב את ההבדל בין הנקודות המרכזיות החדשות והישנות וחוזר על התהליך עד שהנקודות המרכזיות מתייצבות.
+
+חיסרון אחד בשימוש ב-K-Means הוא הצורך לקבוע את 'k', כלומר את מספר הנקודות המרכזיות. למרבה המזל, שיטת ה'מרפק' עוזרת להעריך ערך התחלתי טוב עבור 'k'. תנסו את זה עוד מעט.
+
+## דרישות מקדימות
+
+תעבדו בקובץ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb) של השיעור הזה, הכולל את ייבוא הנתונים והניקוי הראשוני שביצעתם בשיעור הקודם.
+
+## תרגיל - הכנה
+
+נתחיל בהסתכלות נוספת על נתוני השירים.
+
+1. צרו תרשים קופסה (boxplot) על ידי קריאה ל-`boxplot()` עבור כל עמודה:
+
+ ```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)
+ ```
+
+ הנתונים האלה מעט רועשים: על ידי התבוננות בכל עמודה כתרשים קופסה, תוכלו לראות חריגות.
+
+ 
+
+ תוכלו לעבור על סט הנתונים ולהסיר את החריגות הללו, אך זה יהפוך את הנתונים למינימליים למדי.
+
+1. לעת עתה, בחרו אילו עמודות תשתמשו בהן לתרגיל האשכולות שלכם. בחרו עמודות עם טווחים דומים וקודדו את העמודה `artist_top_genre` כנתונים מספריים:
+
+ ```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. עכשיו עליכם לבחור כמה אשכולות למקד. אתם יודעים שיש 3 ז'אנרים של שירים שזיהינו מתוך סט הנתונים, אז בואו ננסה 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
+ ```
+
+ אתם רואים מערך מודפס עם אשכולות חזויים (0, 1 או 2) עבור כל שורה של מסגרת הנתונים.
+
+1. השתמשו במערך הזה כדי לחשב 'ציון סילואט':
+
+ ```python
+ from sklearn import metrics
+ score = metrics.silhouette_score(X, y_cluster_kmeans)
+ score
+ ```
+
+## ציון סילואט
+
+חפשו ציון סילואט קרוב ל-1. הציון הזה נע בין -1 ל-1, ואם הציון הוא 1, האשכול צפוף ומופרד היטב מאשכולות אחרים. ערך קרוב ל-0 מייצג אשכולות חופפים עם דגימות קרובות מאוד לגבול ההחלטה של האשכולות השכנים. [(מקור)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
+
+הציון שלנו הוא **0.53**, כלומר באמצע. זה מצביע על כך שהנתונים שלנו לא מתאימים במיוחד לסוג זה של אשכולות, אבל בואו נמשיך.
+
+### תרגיל - בניית מודל
+
+1. ייבאו את `KMeans` והתחילו את תהליך האשכולות.
+
+ ```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_)
+
+ ```
+
+ יש כאן כמה חלקים שמצדיקים הסבר.
+
+ > 🎓 טווח: אלו הן האיטרציות של תהליך האשכולות.
+
+ > 🎓 random_state: "קובע את יצירת המספרים האקראיים עבור אתחול הנקודות המרכזיות." [מקור](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
+
+ > 🎓 WCSS: "סכום הריבועים בתוך האשכולות" מודד את המרחק הממוצע בריבוע של כל הנקודות בתוך אשכול לנקודת המרכז של האשכול. [מקור](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
+
+ > 🎓 אינרציה: אלגוריתמי K-Means מנסים לבחור נקודות מרכזיות כדי למזער את 'האינרציה', "מדד לכמה האשכולות קוהרנטיים פנימית." [מקור](https://scikit-learn.org/stable/modules/clustering.html). הערך נוסף למשתנה wcss בכל איטרציה.
+
+ > 🎓 k-means++: ב-[Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) ניתן להשתמש באופטימיזציה 'k-means++', שמאתחלת את הנקודות המרכזיות כך שיהיו (בדרך כלל) רחוקות זו מזו, מה שמוביל לתוצאות טובות יותר מאתחול אקראי.
+
+### שיטת המרפק
+
+קודם לכן הסקתם, מכיוון שמיקדתם 3 ז'אנרים של שירים, שעליכם לבחור 3 אשכולות. אבל האם זה באמת המקרה?
+
+1. השתמשו בשיטת ה'מרפק' כדי לוודא.
+
+ ```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()
+ ```
+
+ השתמשו במשתנה `wcss` שבניתם בשלב הקודם כדי ליצור תרשים שמראה היכן ה'כיפוף' במרפק, שמצביע על מספר האשכולות האופטימלי. אולי זה **באמת** 3!
+
+ 
+
+## תרגיל - הצגת האשכולות
+
+1. נסו את התהליך שוב, הפעם עם שלושה אשכולות, והציגו את האשכולות כתרשים פיזור:
+
+ ```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. בדקו את דיוק המודל:
+
+ ```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)))
+ ```
+
+ דיוק המודל הזה לא טוב במיוחד, וצורת האשכולות נותנת לכם רמז מדוע.
+
+ 
+
+ הנתונים האלה לא מאוזנים מספיק, לא מתואמים מספיק ויש יותר מדי שונות בין ערכי העמודות כדי ליצור אשכולות טובים. למעשה, האשכולות שנוצרים כנראה מושפעים או מוטים מאוד על ידי שלוש קטגוריות הז'אנרים שהגדרנו קודם. זה היה תהליך למידה!
+
+ בתיעוד של Scikit-learn, תוכלו לראות שמודל כמו זה, עם אשכולות שאינם מוגדרים היטב, סובל מבעיה של 'שונות':
+
+ 
+ > אינפוגרפיקה מתוך Scikit-learn
+
+## שונות
+
+שונות מוגדרת כ-"הממוצע של הריבועים של ההבדלים מהממוצע" [(מקור)](https://www.mathsisfun.com/data/standard-deviation.html). בהקשר של בעיית האשכולות הזו, היא מתייחסת לנתונים שבהם המספרים בסט הנתונים נוטים לסטות יותר מדי מהממוצע.
+
+✅ זהו רגע מצוין לחשוב על כל הדרכים שבהן תוכלו לתקן את הבעיה הזו. לשפר את הנתונים עוד קצת? להשתמש בעמודות אחרות? להשתמש באלגוריתם אחר? רמז: נסו [לשנות את קנה המידה של הנתונים שלכם](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) כדי לנרמל אותם ולבדוק עמודות אחרות.
+
+> נסו את '[מחשבון השונות](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' כדי להבין את המושג קצת יותר.
+
+---
+
+## 🚀אתגר
+
+בלו זמן עם המחברת הזו, שנו פרמטרים. האם תוכלו לשפר את דיוק המודל על ידי ניקוי הנתונים יותר (למשל הסרת חריגות)? תוכלו להשתמש במשקלים כדי לתת משקל רב יותר לדגימות נתונים מסוימות. מה עוד תוכלו לעשות כדי ליצור אשכולות טובים יותר?
+
+רמז: נסו לשנות את קנה המידה של הנתונים שלכם. יש קוד עם הערות במחברת שמוסיף שינוי קנה מידה סטנדרטי כדי לגרום לעמודות הנתונים להיראות דומות יותר זו לזו מבחינת טווח. תגלו שבעוד שציון הסילואט יורד, ה'כיפוף' בתרשים המרפק מתמתן. זאת מכיוון שהשארת הנתונים ללא שינוי קנה מידה מאפשרת לנתונים עם פחות שונות לשאת משקל רב יותר. קראו עוד על הבעיה הזו [כאן](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226).
+
+## [מבחן מסכם](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+הסתכלו על סימולטור K-Means [כמו זה](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). תוכלו להשתמש בכלי הזה כדי להמחיש נקודות נתונים לדוגמה ולקבוע את הנקודות המרכזיות שלהן. תוכלו לערוך את אקראיות הנתונים, מספרי האשכולות ומספרי הנקודות המרכזיות. האם זה עוזר לכם לקבל מושג כיצד ניתן לקבץ את הנתונים?
+
+בנוסף, הסתכלו על [המסמך הזה על K-Means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) מסטנפורד.
+
+## משימה
+
+[נסו שיטות אשכולות שונות](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/5-Clustering/2-K-Means/assignment.md b/translations/he/5-Clustering/2-K-Means/assignment.md
new file mode 100644
index 00000000..b020d1f4
--- /dev/null
+++ b/translations/he/5-Clustering/2-K-Means/assignment.md
@@ -0,0 +1,25 @@
+
+# נסו שיטות אשכולות שונות
+
+## הוראות
+
+בשיעור זה למדתם על אשכולות K-Means. לפעמים K-Means אינו מתאים לנתונים שלכם. צרו מחברת תוך שימוש בנתונים מהשיעורים הללו או ממקור אחר (תנו קרדיט למקור) והציגו שיטת אשכולות שונה שאינה משתמשת ב-K-Means. מה למדתם?
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------------- |
+| | מוצגת מחברת עם מודל אשכולות מתועד היטב | מוצגת מחברת ללא תיעוד מספק ו/או עבודה לא מלאה | מוגשת עבודה לא מלאה |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/5-Clustering/2-K-Means/solution/Julia/README.md b/translations/he/5-Clustering/2-K-Means/solution/Julia/README.md
new file mode 100644
index 00000000..1034a0a1
--- /dev/null
+++ b/translations/he/5-Clustering/2-K-Means/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/5-Clustering/README.md b/translations/he/5-Clustering/README.md
new file mode 100644
index 00000000..1ae6208d
--- /dev/null
+++ b/translations/he/5-Clustering/README.md
@@ -0,0 +1,42 @@
+
+# מודלים של אשכולות ללמידת מכונה
+
+אשכולות הם משימה בלמידת מכונה שבה מחפשים למצוא אובייקטים הדומים זה לזה ולחבר אותם לקבוצות הנקראות אשכולות. מה שמבדיל אשכולות מגישות אחרות בלמידת מכונה הוא שהדברים מתרחשים באופן אוטומטי, למעשה, אפשר לומר שזה ההפך מלמידה מונחית.
+
+## נושא אזורי: מודלים של אשכולות לטעמי מוזיקה של קהל ניגרי 🎧
+
+הקהל המגוון בניגריה מתאפיין בטעמי מוזיקה מגוונים. באמצעות נתונים שנאספו מ-Spotify (בהשראת [המאמר הזה](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)), נבחן כמה מהמוזיקה הפופולרית בניגריה. מערך הנתונים הזה כולל מידע על ציוני 'ריקודיות', 'אקוסטיות', עוצמת קול, 'דיבוריות', פופולריות ואנרגיה של שירים שונים. יהיה מעניין לגלות דפוסים בנתונים האלה!
+
+
+
+> צילום מאת Marcela Laskoski ב-Unsplash
+
+בסדרת השיעורים הזו, תגלו דרכים חדשות לנתח נתונים באמצעות טכניקות אשכולות. אשכולות שימושיים במיוחד כאשר מערך הנתונים שלכם חסר תוויות. אם יש לו תוויות, אז טכניקות סיווג כמו אלו שלמדתם בשיעורים קודמים עשויות להיות מועילות יותר. אבל במקרים שבהם אתם מחפשים לקבץ נתונים ללא תוויות, אשכולות הם דרך מצוינת לגלות דפוסים.
+
+> ישנם כלים שימושיים בעלי קוד נמוך שיכולים לעזור לכם ללמוד לעבוד עם מודלים של אשכולות. נסו [Azure ML למשימה זו](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## שיעורים
+
+1. [מבוא לאשכולות](1-Visualize/README.md)
+2. [אשכולות K-Means](2-K-Means/README.md)
+
+## קרדיטים
+
+השיעורים הללו נכתבו עם 🎶 על ידי [Jen Looper](https://www.twitter.com/jenlooper) עם ביקורות מועילות מאת [Rishit Dagli](https://rishit_dagli) ו-[Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan).
+
+מערך הנתונים [שירים ניגריים](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) נלקח מ-Kaggle ונאסף מ-Spotify.
+
+דוגמאות שימושיות של K-Means שסייעו ביצירת השיעור כוללות את [חקירת האיריס הזו](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), [מחברת מבוא זו](https://www.kaggle.com/prashant111/k-means-clustering-with-python), ואת [דוגמת ה-NGO ההיפותטית הזו](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering).
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/1-Introduction-to-NLP/README.md b/translations/he/6-NLP/1-Introduction-to-NLP/README.md
new file mode 100644
index 00000000..5defa461
--- /dev/null
+++ b/translations/he/6-NLP/1-Introduction-to-NLP/README.md
@@ -0,0 +1,179 @@
+
+# מבוא לעיבוד שפה טבעית
+
+השיעור הזה מכסה היסטוריה קצרה ומושגים חשובים של *עיבוד שפה טבעית*, תחום משנה של *בלשנות חישובית*.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## מבוא
+
+NLP, כפי שהוא מוכר בדרך כלל, הוא אחד התחומים הידועים ביותר שבהם נעשה שימוש בלמידת מכונה בתוכנות ייצור.
+
+✅ האם אתם יכולים לחשוב על תוכנה שאתם משתמשים בה מדי יום ושכנראה יש בה שילוב של NLP? מה לגבי תוכנות עיבוד תמלילים או אפליקציות ניידות שאתם משתמשים בהן באופן קבוע?
+
+אתם תלמדו על:
+
+- **הרעיון של שפות**. איך שפות התפתחו ומה היו התחומים המרכזיים של המחקר.
+- **הגדרות ומושגים**. תלמדו גם הגדרות ומושגים על איך מחשבים מעבדים טקסט, כולל ניתוח תחבירי, דקדוק וזיהוי שמות עצם ופעלים. ישנם משימות קידוד בשיעור הזה, ומוצגים מספר מושגים חשובים שתלמדו לקודד בשיעורים הבאים.
+
+## בלשנות חישובית
+
+בלשנות חישובית היא תחום מחקר ופיתוח שנמשך עשרות שנים, העוסק בשאלה כיצד מחשבים יכולים לעבוד עם שפות, ואפילו להבין, לתרגם ולתקשר באמצעותן. עיבוד שפה טבעית (NLP) הוא תחום קשור שמתמקד באיך מחשבים יכולים לעבד שפות 'טבעיות', כלומר שפות אנושיות.
+
+### דוגמה - תכתיב בטלפון
+
+אם אי פעם הכתבתם לטלפון במקום להקליד או שאלתם עוזר וירטואלי שאלה, הדיבור שלכם הומר לצורת טקסט ואז עובד או *נותח* מהשפה שבה דיברתם. מילות המפתח שזוהו עובדו לפורמט שהטלפון או העוזר הווירטואלי יכלו להבין ולפעול לפיו.
+
+
+> הבנה בלשנית אמיתית היא קשה! תמונה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+### איך הטכנולוגיה הזו מתאפשרת?
+
+הדבר מתאפשר כי מישהו כתב תוכנית מחשב לעשות זאת. לפני כמה עשורים, כמה סופרי מדע בדיוני חזו שאנשים ידברו בעיקר עם המחשבים שלהם, והמחשבים תמיד יבינו בדיוק למה הם מתכוונים. למרבה הצער, התברר שזהו אתגר קשה יותר ממה שרבים דמיינו, ולמרות שהבעיה מובנת הרבה יותר כיום, ישנם אתגרים משמעותיים בהשגת עיבוד שפה טבעית 'מושלם' בכל הנוגע להבנת המשמעות של משפט. זו בעיה קשה במיוחד כשמדובר בהבנת הומור או זיהוי רגשות כמו סרקזם במשפט.
+
+בשלב הזה, ייתכן שאתם נזכרים בשיעורי בית הספר שבהם המורה לימד את חלקי הדקדוק במשפט. במדינות מסוימות, תלמידים לומדים דקדוק ובלשנות כתחום לימוד ייעודי, אך ברבות מהמדינות, נושאים אלו נכללים כחלק מלימוד שפה: בין אם זו השפה הראשונה שלכם בבית הספר היסודי (לימוד קריאה וכתיבה) ואולי שפה שנייה בבית הספר העל-יסודי או התיכון. אל תדאגו אם אינכם מומחים בהבחנה בין שמות עצם לפעלים או בין תארים לתארי פועל!
+
+אם אתם מתקשים להבדיל בין *הווה פשוט* ל-*הווה מתמשך*, אתם לא לבד. זהו אתגר עבור אנשים רבים, אפילו דוברי שפת אם. החדשות הטובות הן שמחשבים טובים מאוד ביישום כללים פורמליים, ותלמדו לכתוב קוד שיכול *לנתח* משפט כמו בן אדם. האתגר הגדול יותר שתבדקו בהמשך הוא הבנת *המשמעות* ו-*הרגש* של משפט.
+
+## דרישות מוקדמות
+
+לשיעור הזה, הדרישה העיקרית היא היכולת לקרוא ולהבין את השפה של השיעור. אין בעיות מתמטיות או משוואות לפתור. בעוד שהמחבר המקורי כתב את השיעור באנגלית, הוא מתורגם גם לשפות אחרות, כך שאתם עשויים לקרוא תרגום. ישנם דוגמאות שבהן נעשה שימוש במספר שפות שונות (כדי להשוות את כללי הדקדוק של שפות שונות). אלו *לא* מתורגמות, אך הטקסט המסביר כן, כך שהמשמעות צריכה להיות ברורה.
+
+למשימות הקידוד, תשתמשו ב-Python והדוגמאות משתמשות ב-Python 3.8.
+
+בקטע הזה, תצטרכו ותשתמשו ב:
+
+- **הבנה של Python 3**. הבנת שפת תכנות ב-Python 3, השיעור הזה משתמש בקלט, לולאות, קריאת קבצים, מערכים.
+- **Visual Studio Code + הרחבה**. נשתמש ב-Visual Studio Code ובהרחבת Python שלו. תוכלו גם להשתמש ב-IDE של Python לבחירתכם.
+- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) היא ספריית עיבוד טקסט פשוטה עבור Python. עקבו אחר ההוראות באתר TextBlob כדי להתקין אותה במערכת שלכם (התקינו גם את ה-corpora, כפי שמוצג למטה):
+
+ ```bash
+ pip install -U textblob
+ python -m textblob.download_corpora
+ ```
+
+> 💡 טיפ: ניתן להריץ Python ישירות בסביבות VS Code. בדקו את [התיעוד](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) למידע נוסף.
+
+## לדבר עם מכונות
+
+ההיסטוריה של הניסיון לגרום למחשבים להבין שפה אנושית נמשכת עשרות שנים, ואחד המדענים הראשונים שעסקו בעיבוד שפה טבעית היה *אלן טיורינג*.
+
+### מבחן טיורינג
+
+כשטיורינג חקר *בינה מלאכותית* בשנות ה-50, הוא שקל אם ניתן לערוך מבחן שיחה בין אדם למחשב (באמצעות תקשורת כתובה) שבו האדם בשיחה אינו בטוח אם הוא משוחח עם אדם אחר או עם מחשב.
+
+אם, לאחר פרק זמן מסוים של שיחה, האדם לא יכול לקבוע אם התשובות הגיעו ממחשב או לא, האם ניתן לומר שהמחשב *חושב*?
+
+### ההשראה - 'משחק החיקוי'
+
+הרעיון לכך הגיע ממשחק מסיבות שנקרא *משחק החיקוי*, שבו חוקר נמצא לבד בחדר ומוטלת עליו המשימה לקבוע מי מבין שני אנשים (בחדר אחר) הם גבר ואישה בהתאמה. החוקר יכול לשלוח פתקים, ועליו לנסות לחשוב על שאלות שבהן התשובות הכתובות יחשפו את המגדר של האדם המסתורי. כמובן, השחקנים בחדר השני מנסים להטעות את החוקר על ידי מתן תשובות באופן שמטעה או מבלבל את החוקר, תוך כדי מתן רושם של תשובה כנה.
+
+### פיתוח אליזה
+
+בשנות ה-60, מדען מ-MIT בשם *ג'וזף וייזנבאום* פיתח [*אליזה*](https://wikipedia.org/wiki/ELIZA), 'מטפלת' ממוחשבת ששואלת את האדם שאלות ונותנת רושם של הבנת תשובותיו. עם זאת, בעוד שאליזה יכלה לנתח משפט ולזהות מבנים דקדוקיים מסוימים ומילות מפתח כדי לתת תשובה סבירה, לא ניתן היה לומר שהיא *מבינה* את המשפט. אם אליזה הוצגה עם משפט בפורמט "**אני** עצוב", היא עשויה לשנות ולסדר מחדש מילים במשפט כדי ליצור את התשובה "כמה זמן **אתה** עצוב".
+
+זה נתן את הרושם שאליזה הבינה את ההצהרה ושאלה שאלה המשך, בעוד שבמציאות, היא שינתה את הזמן והוסיפה כמה מילים. אם אליזה לא יכלה לזהות מילת מפתח שיש לה תשובה עבורה, היא הייתה נותנת תשובה אקראית שיכולה להיות רלוונטית להרבה הצהרות שונות. ניתן היה להטעות את אליזה בקלות, למשל אם משתמש כתב "**אתה** אופניים", היא עשויה להגיב עם "כמה זמן **אני** אופניים?", במקום תשובה סבירה יותר.
+
+[](https://youtu.be/RMK9AphfLco "שיחה עם אליזה")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון על תוכנית אליזה המקורית
+
+> הערה: ניתן לקרוא את התיאור המקורי של [אליזה](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) שפורסם ב-1966 אם יש לכם חשבון ACM. לחלופין, קראו על אליזה ב-[ויקיפדיה](https://wikipedia.org/wiki/ELIZA).
+
+## תרגיל - קידוד בוט שיחה בסיסי
+
+בוט שיחה, כמו אליזה, הוא תוכנית שמקבלת קלט ממשתמש ונותנת רושם של הבנה ותגובה אינטליגנטית. בניגוד לאליזה, הבוט שלנו לא יכלול מספר כללים שיתנו לו את הרושם של שיחה אינטליגנטית. במקום זאת, הבוט שלנו יוכל רק לשמור על השיחה באמצעות תגובות אקראיות שעשויות להתאים כמעט לכל שיחה טריוויאלית.
+
+### התוכנית
+
+השלבים שלכם בבניית בוט שיחה:
+
+1. הדפיסו הוראות שמייעצות למשתמש איך לתקשר עם הבוט
+2. התחילו לולאה
+ 1. קבלו קלט ממשתמש
+ 2. אם המשתמש ביקש לצאת, צאו
+ 3. עבדו את הקלט של המשתמש וקבעו תגובה (במקרה הזה, התגובה היא בחירה אקראית מתוך רשימת תגובות כלליות אפשריות)
+ 4. הדפיסו את התגובה
+3. חזרו לשלב 2
+
+### בניית הבוט
+
+בואו ניצור את הבוט עכשיו. נתחיל בהגדרת כמה משפטים.
+
+1. צרו את הבוט הזה בעצמכם ב-Python עם התגובות האקראיות הבאות:
+
+ ```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?"]
+ ```
+
+ הנה דוגמת פלט שתנחה אתכם (קלט המשתמש מופיע בשורות שמתחילות ב-`>`):
+
+ ```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!
+ ```
+
+ פתרון אפשרי למשימה נמצא [כאן](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py)
+
+ ✅ עצרו וחשבו
+
+ 1. האם אתם חושבים שהתגובות האקראיות יוכלו 'להטעות' מישהו לחשוב שהבוט באמת הבין אותם?
+ 2. אילו תכונות הבוט יצטרך כדי להיות יעיל יותר?
+ 3. אם בוט באמת יכול 'להבין' את המשמעות של משפט, האם הוא יצטרך 'לזכור' את המשמעות של משפטים קודמים בשיחה גם כן?
+
+---
+
+## 🚀אתגר
+
+בחרו אחד מהאלמנטים של "עצרו וחשבו" למעלה ונסו ליישם אותו בקוד או כתבו פתרון על נייר באמצעות פסאודו-קוד.
+
+בשיעור הבא, תלמדו על מספר גישות נוספות לניתוח שפה טבעית ולמידת מכונה.
+
+## [שאלון אחרי השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+עיינו במקורות למטה כהזדמנויות לקריאה נוספת.
+
+### מקורות
+
+1. שובר, לנארט, "בלשנות חישובית", *The Stanford Encyclopedia of Philosophy* (מהדורת אביב 2020), אדוארד נ. זלטה (עורך), URL = .
+2. אוניברסיטת פרינסטון "אודות WordNet." [WordNet](https://wordnet.princeton.edu/). אוניברסיטת פרינסטון. 2010.
+
+## משימה
+
+[חפשו בוט](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/1-Introduction-to-NLP/assignment.md b/translations/he/6-NLP/1-Introduction-to-NLP/assignment.md
new file mode 100644
index 00000000..a0f122ca
--- /dev/null
+++ b/translations/he/6-NLP/1-Introduction-to-NLP/assignment.md
@@ -0,0 +1,25 @@
+
+# חיפוש אחר בוט
+
+## הוראות
+
+בוטים נמצאים בכל מקום. המשימה שלך: למצוא אחד ולאמץ אותו! ניתן למצוא אותם באתרי אינטרנט, באפליקציות בנקאיות ובטלפון, למשל כאשר אתה מתקשר לחברות שירותים פיננסיים לקבלת ייעוץ או מידע על חשבון. נתח את הבוט ונסה לבלבל אותו. אם הצלחת לבלבל את הבוט, מדוע לדעתך זה קרה? כתוב מאמר קצר על החוויה שלך.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | --------------------- |
+| | נכתב מאמר מלא בן עמוד אחד, המסביר את הארכיטקטורה המשוערת של הבוט ומתאר את החוויה שלך איתו | המאמר אינו שלם או אינו מבוסס היטב | לא הוגש מאמר |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/2-Tasks/README.md b/translations/he/6-NLP/2-Tasks/README.md
new file mode 100644
index 00000000..0b5aba06
--- /dev/null
+++ b/translations/he/6-NLP/2-Tasks/README.md
@@ -0,0 +1,224 @@
+
+# משימות וטכניקות נפוצות בעיבוד שפה טבעית
+
+ברוב המשימות של *עיבוד שפה טבעית*, הטקסט שיש לעבד חייב להיות מפורק, נבדק, והתוצאות נשמרות או מושוות עם חוקים ומאגרי נתונים. משימות אלו מאפשרות למתכנת להסיק את _המשמעות_ או _הכוונה_ או רק את _תדירות_ המונחים והמילים בטקסט.
+
+## [שאלון לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+בואו נגלה טכניקות נפוצות המשמשות לעיבוד טקסט. בשילוב עם למידת מכונה, טכניקות אלו עוזרות לנתח כמויות גדולות של טקסט בצורה יעילה. לפני שמיישמים למידת מכונה למשימות אלו, עם זאת, חשוב להבין את הבעיות שבהן נתקל מומחה NLP.
+
+## משימות נפוצות בעיבוד שפה טבעית
+
+ישנן דרכים שונות לנתח טקסט שבו אתם עובדים. ישנן משימות שניתן לבצע, ודרך משימות אלו ניתן להבין את הטקסט ולהסיק מסקנות. בדרך כלל מבצעים את המשימות הללו ברצף.
+
+### טוקניזציה
+
+כנראה הדבר הראשון שרוב האלגוריתמים של NLP צריכים לעשות הוא לפצל את הטקסט לטוקנים, או מילים. למרות שזה נשמע פשוט, התחשבות בסימני פיסוק ובמפרידי מילים ומשפטים בשפות שונות יכולה להפוך את המשימה למורכבת. ייתכן שתצטרכו להשתמש בשיטות שונות כדי לקבוע את הגבולות.
+
+
+> טוקניזציה של משפט מתוך **גאווה ודעה קדומה**. אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+### אמבדינגים
+
+[אמבדינגים של מילים](https://wikipedia.org/wiki/Word_embedding) הם דרך להמיר את נתוני הטקסט שלכם למספרים. אמבדינגים נעשים בצורה כזו שמילים עם משמעות דומה או מילים שמשתמשים בהן יחד מתרכזות יחד.
+
+
+> "יש לי את הכבוד הרב ביותר לעצבים שלך, הם חברים ותיקים שלי." - אמבדינגים של מילים למשפט מתוך **גאווה ודעה קדומה**. אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+✅ נסו [את הכלי המעניין הזה](https://projector.tensorflow.org/) להתנסות באמבדינגים של מילים. לחיצה על מילה אחת מציגה קבוצות של מילים דומות: 'toy' מתרכז עם 'disney', 'lego', 'playstation', ו-'console'.
+
+### ניתוח תחבירי ותיוג חלקי דיבר
+
+כל מילה שעברה טוקניזציה יכולה להיות מתויגת כחלק דיבר - שם עצם, פועל או תואר. המשפט `השועל האדום המהיר קפץ מעל הכלב החום העצלן` עשוי להיות מתויג כך: שועל = שם עצם, קפץ = פועל.
+
+
+
+> ניתוח תחבירי של משפט מתוך **גאווה ודעה קדומה**. אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+ניתוח תחבירי הוא זיהוי אילו מילים קשורות זו לזו במשפט - למשל `השועל האדום המהיר קפץ` הוא רצף של תואר-שם עצם-פועל שנפרד מהרצף `הכלב החום העצלן`.
+
+### תדירות מילים וביטויים
+
+הליך שימושי בעת ניתוח גוף טקסט גדול הוא לבנות מילון של כל מילה או ביטוי מעניין וכמה פעמים הם מופיעים. המשפט `השועל האדום המהיר קפץ מעל הכלב החום העצלן` מכיל תדירות של 2 עבור המילה "ה".
+
+בואו נסתכל על טקסט לדוגמה שבו נספור את תדירות המילים. השיר "The Winners" של רודיארד קיפלינג מכיל את הבית הבא:
+
+```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.
+```
+
+מכיוון שתדירות ביטויים יכולה להיות רגישה או לא רגישה לאותיות גדולות, הביטוי `a friend` מופיע בתדירות של 2, `the` מופיע בתדירות של 6, ו-`travels` מופיע בתדירות של 2.
+
+### N-grams
+
+ניתן לפצל טקסט לרצפים של מילים באורך קבוע, מילה אחת (unigram), שתי מילים (bigram), שלוש מילים (trigram) או כל מספר מילים (n-grams).
+
+לדוגמה, המשפט `השועל האדום המהיר קפץ מעל הכלב החום העצלן` עם ערך n-gram של 2 יפיק את ה-n-grams הבאים:
+
+1. השועל האדום
+2. האדום המהיר
+3. המהיר קפץ
+4. קפץ מעל
+5. מעל הכלב
+6. הכלב החום
+7. החום העצלן
+
+ניתן לדמיין זאת כקופסה מחליקה על פני המשפט. הנה זה עבור n-grams של 3 מילים, ה-n-gram מודגש בכל משפט:
+
+1. **השועל האדום המהיר** קפץ מעל הכלב החום העצלן
+2. השועל **האדום המהיר קפץ** מעל הכלב החום העצלן
+3. השועל האדום **המהיר קפץ מעל** הכלב החום העצלן
+4. השועל האדום המהיר **קפץ מעל הכלב** החום העצלן
+5. השועל האדום המהיר קפץ **מעל הכלב החום** העצלן
+6. השועל האדום המהיר קפץ מעל **הכלב החום העצלן**
+
+
+
+> ערך n-gram של 3: אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+### חילוץ ביטויי שם עצם
+
+ברוב המשפטים יש שם עצם שהוא הנושא או המושא של המשפט. באנגלית, ניתן לזהות אותו לעיתים קרובות ככזה שמקדים אותו 'a', 'an' או 'the'. זיהוי הנושא או המושא של משפט על ידי 'חילוץ ביטוי שם עצם' הוא משימה נפוצה ב-NLP כאשר מנסים להבין את משמעות המשפט.
+
+✅ במשפט "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.", האם תוכלו לזהות את ביטויי שם העצם?
+
+במשפט `השועל האדום המהיר קפץ מעל הכלב החום העצלן` ישנם 2 ביטויי שם עצם: **השועל האדום המהיר** ו-**הכלב החום העצלן**.
+
+### ניתוח רגשות
+
+ניתן לנתח משפט או טקסט כדי לקבוע את הרגש שבו, או עד כמה הוא *חיובי* או *שלילי*. רגש נמדד ב-*קוטביות* וב-*אובייקטיביות/סובייקטיביות*. קוטביות נמדדת מ-1.0- עד 1.0 (שלילי עד חיובי) ו-0.0 עד 1.0 (הכי אובייקטיבי עד הכי סובייקטיבי).
+
+✅ בהמשך תלמדו שיש דרכים שונות לקבוע רגש באמצעות למידת מכונה, אך דרך אחת היא להחזיק רשימה של מילים וביטויים שמסווגים כחיוביים או שליליים על ידי מומחה אנושי וליישם את המודל הזה על טקסט כדי לחשב ציון קוטביות. האם אתם יכולים לראות כיצד זה יעבוד בנסיבות מסוימות ופחות טוב באחרות?
+
+### נטייה
+
+נטייה מאפשרת לכם לקחת מילה ולקבל את הצורה היחידית או הרבים שלה.
+
+### לממטיזציה
+
+*למה* היא השורש או המילה הראשית עבור קבוצת מילים, למשל *flew*, *flies*, *flying* יש להן למה של הפועל *fly*.
+
+ישנם גם מאגרי נתונים שימושיים זמינים לחוקר NLP, במיוחד:
+
+### WordNet
+
+[WordNet](https://wordnet.princeton.edu/) הוא מאגר נתונים של מילים, מילים נרדפות, מילים מנוגדות ועוד פרטים רבים עבור כל מילה בשפות רבות ושונות. הוא שימושי מאוד כאשר מנסים לבנות תרגומים, בודקי איות או כלים לשפה מכל סוג.
+
+## ספריות NLP
+
+למזלכם, אין צורך לבנות את כל הטכניקות הללו בעצמכם, שכן ישנן ספריות Python מצוינות שמקלות מאוד על מפתחים שאינם מתמחים בעיבוד שפה טבעית או למידת מכונה. השיעורים הבאים כוללים דוגמאות נוספות לכך, אך כאן תלמדו כמה דוגמאות שימושיות שיעזרו לכם במשימה הבאה.
+
+### תרגיל - שימוש בספריית `TextBlob`
+
+בואו נשתמש בספרייה בשם TextBlob שכן היא מכילה APIs מועילים להתמודדות עם סוגי משימות אלו. TextBlob "עומדת על כתפיהם של ענקים כמו [NLTK](https://nltk.org) ו-[pattern](https://github.com/clips/pattern), ומשתלבת היטב עם שניהם." יש לה כמות משמעותית של למידת מכונה מובנית ב-API שלה.
+
+> הערה: מדריך [Quick Start](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) שימושי זמין עבור TextBlob ומומלץ למפתחי Python מנוסים.
+
+בעת ניסיון לזהות *ביטויי שם עצם*, TextBlob מציעה מספר אפשרויות של מחלצים למציאת ביטויי שם עצם.
+
+1. הסתכלו על `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
+ ```
+
+ > מה קורה כאן? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) הוא "מחלץ ביטויי שם עצם שמשתמש בניתוח תחבירי מבוסס על קורפוס האימון ConLL-2000." ConLL-2000 מתייחס לוועידת Computational Natural Language Learning בשנת 2000. בכל שנה הוועידה אירחה סדנה להתמודד עם בעיית NLP מורכבת, ובשנת 2000 זו הייתה חלוקת שמות עצם. מודל אומן על עיתון Wall Street Journal, עם "סעיפים 15-18 כנתוני אימון (211727 טוקנים) וסעיף 20 כנתוני בדיקה (47377 טוקנים)". תוכלו לראות את ההליכים ששימשו [כאן](https://www.clips.uantwerpen.be/conll2000/chunking/) ואת [התוצאות](https://ifarm.nl/erikt/research/np-chunking.html).
+
+### אתגר - שיפור הבוט שלכם עם NLP
+
+בשיעור הקודם בניתם בוט שאלות ותשובות פשוט מאוד. עכשיו, תשפרו את מרווין ותגרמו לו להיות קצת יותר אמפתי על ידי ניתוח הקלט שלכם לרגש והדפסת תגובה שתתאים לרגש. תצטרכו גם לזהות `noun_phrase` ולשאול עליו.
+
+השלבים שלכם בבניית בוט שיחה טוב יותר:
+
+1. הדפיסו הוראות שמייעצות למשתמש כיצד לתקשר עם הבוט
+2. התחילו לולאה
+ 1. קבלו קלט מהמשתמש
+ 2. אם המשתמש ביקש לצאת, צאו
+ 3. עבדו את קלט המשתמש וקבעו תגובת רגש מתאימה
+ 4. אם זוהה ביטוי שם עצם ברגש, הפכו אותו לרבים ושאלו על הנושא
+ 5. הדפיסו תגובה
+3. חזרו לשלב 2
+
+הנה קטע קוד לקביעת רגש באמצעות TextBlob. שימו לב שיש רק ארבע *דרגות* של תגובת רגש (אתם יכולים להוסיף יותר אם תרצו):
+
+```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. "
+```
+
+הנה דוגמת פלט שתנחה אתכם (קלט המשתמש מופיע בשורות שמתחילות ב->):
+
+```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!
+```
+
+פתרון אפשרי למשימה נמצא [כאן](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py)
+
+✅ בדיקת ידע
+
+1. האם אתם חושבים שהתגובות האמפתיות יגרמו למישהו לחשוב שהבוט באמת מבין אותו?
+2. האם זיהוי ביטוי שם עצם הופך את הבוט ליותר 'אמין'?
+3. מדוע חילוץ 'ביטוי שם עצם' ממשפט הוא דבר שימושי לעשות?
+
+---
+
+ממשו את הבוט בבדיקת הידע הקודמת ונסו אותו על חבר. האם הוא יכול להטעות אותם? האם תוכלו להפוך את הבוט שלכם ליותר 'אמין'?
+
+## 🚀אתגר
+
+קחו משימה בבדיקת הידע הקודמת ונסו לממש אותה. נסו את הבוט על חבר. האם הוא יכול להטעות אותם? האם תוכלו להפוך את הבוט שלכם ליותר 'אמין'?
+
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+בשיעורים הבאים תלמדו יותר על ניתוח רגשות. חקרו את הטכניקה המעניינת הזו במאמרים כמו אלו ב-[KDNuggets](https://www.kdnuggets.com/tag/nlp)
+
+## משימה
+
+[גרמו לבוט לדבר בחזרה](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/2-Tasks/assignment.md b/translations/he/6-NLP/2-Tasks/assignment.md
new file mode 100644
index 00000000..ca8c64d6
--- /dev/null
+++ b/translations/he/6-NLP/2-Tasks/assignment.md
@@ -0,0 +1,25 @@
+
+# לגרום לבוט להגיב
+
+## הוראות
+
+בשיעורים הקודמים, תכנתת בוט בסיסי שאפשר לשוחח איתו. הבוט הזה נותן תשובות אקראיות עד שתגיד 'bye'. האם תוכל לגרום לתשובות להיות קצת פחות אקראיות, ולהפעיל תגובות אם תגיד דברים ספציפיים, כמו 'למה' או 'איך'? חשוב קצת איך למידת מכונה יכולה להפוך את העבודה הזו לפחות ידנית בזמן שאתה מרחיב את הבוט שלך. אתה יכול להשתמש בספריות NLTK או TextBlob כדי להקל על המשימות שלך.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ------------------------------------------- | ---------------------------------------------- | ----------------------- |
+| | קובץ bot.py חדש מוצג ומתועד | קובץ בוט חדש מוצג אך מכיל באגים | קובץ לא מוצג |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. אנו לא נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/3-Translation-Sentiment/README.md b/translations/he/6-NLP/3-Translation-Sentiment/README.md
new file mode 100644
index 00000000..c7480402
--- /dev/null
+++ b/translations/he/6-NLP/3-Translation-Sentiment/README.md
@@ -0,0 +1,200 @@
+
+# תרגום וניתוח רגשות עם למידת מכונה
+
+בשיעורים הקודמים למדתם כיצד לבנות בוט בסיסי באמצעות `TextBlob`, ספרייה שמשתמשת בלמידת מכונה מאחורי הקלעים כדי לבצע משימות בסיסיות של עיבוד שפה טבעית כמו חילוץ ביטויי שם עצם. אתגר חשוב נוסף בבלשנות חישובית הוא תרגום מדויק של משפט משפה מדוברת או כתובה אחת לשפה אחרת.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+תרגום הוא בעיה קשה מאוד, במיוחד לאור העובדה שיש אלפי שפות שלכל אחת מהן כללי דקדוק שונים מאוד. גישה אחת היא להמיר את כללי הדקדוק הפורמליים של שפה אחת, כמו אנגלית, למבנה שאינו תלוי בשפה, ואז לתרגם אותו על ידי המרה חזרה לשפה אחרת. גישה זו כוללת את השלבים הבאים:
+
+1. **זיהוי**. זיהוי או תיוג של המילים בשפת המקור כעצם, פועל וכו'.
+2. **יצירת תרגום**. הפקת תרגום ישיר של כל מילה בפורמט של שפת היעד.
+
+### משפט לדוגמה, מאנגלית לאירית
+
+ב'אנגלית', המשפט _I feel happy_ מורכב משלוש מילים בסדר הבא:
+
+- **נושא** (I)
+- **פועל** (feel)
+- **תואר** (happy)
+
+עם זאת, בשפה 'אירית', לאותו משפט יש מבנה דקדוקי שונה מאוד - רגשות כמו "*שמח*" או "*עצוב*" מתוארים כמשהו *שעליך*.
+
+הביטוי האנגלי `I feel happy` באירית יהיה `Tá athas orm`. תרגום *מילולי* יהיה `שמח עליי`.
+
+דובר אירית שמתרגם לאנגלית יאמר `I feel happy`, ולא `Happy is upon me`, כי הוא מבין את משמעות המשפט, גם אם המילים ומבנה המשפט שונים.
+
+הסדר הפורמלי של המשפט באירית הוא:
+
+- **פועל** (Tá או is)
+- **תואר** (athas, או happy)
+- **נושא** (orm, או עליי)
+
+## תרגום
+
+תוכנית תרגום נאיבית עשויה לתרגם מילים בלבד, תוך התעלמות ממבנה המשפט.
+
+✅ אם למדתם שפה שנייה (או שלישית או יותר) כמבוגרים, ייתכן שהתחלתם לחשוב בשפת האם שלכם, לתרגם מושגים מילה במילה בראשכם לשפה השנייה, ואז לומר את התרגום שלכם. זה דומה למה שתוכניות תרגום נאיביות עושות. חשוב להתקדם מעבר לשלב הזה כדי להגיע לשטף!
+
+תרגום נאיבי מוביל לתרגומים גרועים (ולפעמים מצחיקים): `I feel happy` מתורגם באופן מילולי ל-`Mise bhraitheann athas` באירית. זה אומר (מילולית) `אני מרגיש שמח` ואינו משפט אירי תקני. למרות שאנגלית ואירית הן שפות המדוברות בשני איים שכנים, הן שפות שונות מאוד עם מבני דקדוק שונים.
+
+> תוכלו לצפות בכמה סרטונים על מסורות לשוניות איריות כמו [זה](https://www.youtube.com/watch?v=mRIaLSdRMMs)
+
+### גישות למידת מכונה
+
+עד כה, למדתם על הגישה של כללים פורמליים לעיבוד שפה טבעית. גישה נוספת היא להתעלם ממשמעות המילים, ו_במקום זאת להשתמש בלמידת מכונה כדי לזהות דפוסים_. זה יכול לעבוד בתרגום אם יש לכם הרבה טקסטים (*corpus*) או טקסטים (*corpora*) בשפת המקור ובשפת היעד.
+
+לדוגמה, שקלו את המקרה של *גאווה ודעה קדומה*, רומן אנגלי ידוע שנכתב על ידי ג'יין אוסטן בשנת 1813. אם תעיינו בספר באנגלית ובתרגום אנושי של הספר ל*צרפתית*, תוכלו לזהות ביטויים באחד שמתורגמים באופן _אידיומטי_ לשני. תעשו זאת בעוד רגע.
+
+לדוגמה, כאשר ביטוי באנגלית כמו `I have no money` מתורגם באופן מילולי לצרפתית, הוא עשוי להפוך ל-`Je n'ai pas de monnaie`. "Monnaie" הוא 'דמיון שווא' צרפתי מסובך, שכן 'money' ו-'monnaie' אינם מילים נרדפות. תרגום טוב יותר שדובר אנושי עשוי לעשות יהיה `Je n'ai pas d'argent`, כי הוא מעביר טוב יותר את המשמעות שאין לך כסף (ולא 'כסף קטן' שהוא המשמעות של 'monnaie').
+
+
+
+> תמונה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+אם למודל למידת מכונה יש מספיק תרגומים אנושיים לבניית מודל, הוא יכול לשפר את דיוק התרגומים על ידי זיהוי דפוסים נפוצים בטקסטים שתורגמו בעבר על ידי דוברים אנושיים מומחים של שתי השפות.
+
+### תרגיל - תרגום
+
+תוכלו להשתמש ב-`TextBlob` כדי לתרגם משפטים. נסו את השורה הראשונה המפורסמת של **גאווה ודעה קדומה**:
+
+```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` עושה עבודה די טובה בתרגום: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
+
+אפשר לטעון שהתרגום של TextBlob מדויק הרבה יותר, למעשה, מהתרגום הצרפתי של הספר משנת 1932 על ידי V. Leconte ו-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."
+
+במקרה זה, התרגום המבוסס על למידת מכונה עושה עבודה טובה יותר מהמתרגם האנושי שהוסיף מילים מיותרות לפיו של המחבר המקורי לצורך 'בהירות'.
+
+> מה קורה כאן? ולמה TextBlob כל כך טוב בתרגום? ובכן, מאחורי הקלעים, הוא משתמש ב-Google Translate, AI מתוחכם שמסוגל לנתח מיליוני ביטויים כדי לחזות את המחרוזות הטובות ביותר למשימה. אין כאן שום דבר ידני ואתם צריכים חיבור לאינטרנט כדי להשתמש ב-`blob.translate`.
+
+✅ נסו עוד משפטים. מה עדיף, תרגום בלמידת מכונה או תרגום אנושי? באילו מקרים?
+
+## ניתוח רגשות
+
+תחום נוסף שבו למידת מכונה יכולה לעבוד היטב הוא ניתוח רגשות. גישה שאינה מבוססת למידת מכונה לניתוח רגשות היא לזהות מילים וביטויים שהם 'חיוביים' ו'שליליים'. לאחר מכן, בהתחשב בטקסט חדש, לחשב את הערך הכולל של המילים החיוביות, השליליות והנייטרליות כדי לזהות את הרגש הכללי.
+
+גישה זו ניתנת להטעיה בקלות כפי שראיתם במשימת מרווין - המשפט `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` הוא משפט סרקסטי עם רגש שלילי, אך האלגוריתם הפשוט מזהה 'great', 'wonderful', 'glad' כחיוביים ו-'waste', 'lost' ו-'dark' כשליליים. הרגש הכללי מושפע מהמילים הסותרות הללו.
+
+✅ עצרו רגע וחשבו כיצד אנו מעבירים סרקזם כדוברים אנושיים. אינטונציה משחקת תפקיד גדול. נסו לומר את המשפט "Well, that film was awesome" בדרכים שונות כדי לגלות כיצד הקול שלכם מעביר משמעות.
+
+### גישות למידת מכונה
+
+הגישה של למידת מכונה תהיה לאסוף באופן ידני גופי טקסט שליליים וחיוביים - ציוצים, או ביקורות סרטים, או כל דבר שבו האדם נתן ציון *וגם* דעה כתובה. לאחר מכן ניתן ליישם טכניקות עיבוד שפה טבעית על דעות וציונים, כך שדפוסים יופיעו (לדוגמה, ביקורות סרטים חיוביות נוטות לכלול את הביטוי 'Oscar worthy' יותר מאשר ביקורות שליליות, או ביקורות מסעדות חיוביות אומרות 'gourmet' הרבה יותר מאשר 'disgusting').
+
+> ⚖️ **דוגמה**: אם עבדתם במשרד של פוליטיקאי ויש חוק חדש שנדון, ייתכן שתושבים יכתבו למשרד עם מיילים שתומכים או מתנגדים לחוק החדש. נניח שאתם מתבקשים לקרוא את המיילים ולמיין אותם לשתי ערימות, *בעד* ו-*נגד*. אם היו הרבה מיילים, ייתכן שתהיו מוצפים בניסיון לקרוא את כולם. לא יהיה נחמד אם בוט יוכל לקרוא את כולם עבורכם, להבין אותם ולומר לכם לאיזו ערימה כל מייל שייך?
+>
+> דרך אחת להשיג זאת היא להשתמש בלמידת מכונה. הייתם מאמנים את המודל עם חלק מהמיילים ה*נגד* וחלק מהמיילים ה*בעד*. המודל היה נוטה לשייך ביטויים ומילים לצד הנגד ולצד הבעד, *אך הוא לא היה מבין שום תוכן*, רק שמילים ודפוסים מסוימים נוטים להופיע יותר במיילים נגד או בעד. הייתם בודקים אותו עם כמה מיילים שלא השתמשתם בהם כדי לאמן את המודל, ורואים אם הוא הגיע לאותה מסקנה כמוכם. לאחר מכן, ברגע שהייתם מרוצים מהדיוק של המודל, הייתם יכולים לעבד מיילים עתידיים מבלי לקרוא כל אחד מהם.
+
+✅ האם התהליך הזה נשמע כמו תהליכים שהשתמשתם בהם בשיעורים קודמים?
+
+## תרגיל - משפטים רגשיים
+
+רגש נמדד עם *קוטביות* של -1 עד 1, כלומר -1 הוא הרגש השלילי ביותר, ו-1 הוא הרגש החיובי ביותר. רגש נמדד גם עם ציון של 0 - 1 עבור אובייקטיביות (0) וסובייקטיביות (1).
+
+הסתכלו שוב על *גאווה ודעה קדומה* של ג'יין אוסטן. הטקסט זמין כאן ב-[Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm). הדוגמה למטה מציגה תוכנית קצרה שמנתחת את הרגש של המשפטים הראשונים והאחרונים מהספר ומציגה את קוטביות הרגש ואת ציון הסובייקטיביות/אובייקטיביות.
+
+עליכם להשתמש בספריית `TextBlob` (שתוארה לעיל) כדי לקבוע `sentiment` (אין צורך לכתוב מחשבון רגשות משלכם) במשימה הבאה.
+
+```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))
+```
+
+אתם רואים את הפלט הבא:
+
+```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)
+```
+
+## אתגר - בדיקת קוטביות רגשית
+
+המשימה שלכם היא לקבוע, באמצעות קוטביות רגשית, האם ל-*גאווה ודעה קדומה* יש יותר משפטים חיוביים לחלוטין מאשר שליליים לחלוטין. לצורך משימה זו, תוכלו להניח שקוטביות של 1 או -1 היא חיובית לחלוטין או שלילית לחלוטין בהתאמה.
+
+**שלבים:**
+
+1. הורידו [עותק של גאווה ודעה קדומה](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) מ-Project Gutenberg כקובץ .txt. הסירו את המטא-דאטה בתחילת ובסוף הקובץ, והשאירו רק את הטקסט המקורי
+2. פתחו את הקובץ ב-Python והוציאו את התוכן כמחרוזת
+3. צרו TextBlob באמצעות מחרוזת הספר
+4. נתחו כל משפט בספר בלולאה
+ 1. אם הקוטביות היא 1 או -1, אחסנו את המשפט במערך או רשימה של הודעות חיוביות או שליליות
+5. בסוף, הדפיסו את כל המשפטים החיוביים והשליליים (בנפרד) ואת המספר של כל אחד.
+
+הנה [פתרון לדוגמה](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb).
+
+✅ בדיקת ידע
+
+1. הרגש מבוסס על מילים שנמצאות במשפט, אבל האם הקוד *מבין* את המילים?
+2. האם לדעתכם קוטביות הרגש מדויקת, או במילים אחרות, האם אתם *מסכימים* עם הציונים?
+ 1. במיוחד, האם אתם מסכימים או לא מסכימים עם הקוטביות החיובית **המוחלטת** של המשפטים הבאים?
+ * “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. שלושת המשפטים הבאים דורגו עם קוטביות חיובית מוחלטת, אבל בקריאה מעמיקה, הם אינם משפטים חיוביים. מדוע ניתוח הרגש חשב שהם משפטים חיוביים?
+ * 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. האם אתם מסכימים או לא מסכימים עם הקוטביות השלילית **המוחלטת** של המשפטים הבאים?
+ - 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!
+
+✅ כל חובב של ג'יין אוסטן יבין שהיא לעיתים קרובות משתמשת בספריה כדי לבקר את ההיבטים המגוחכים יותר של החברה האנגלית בתקופת הריג'נסי. אליזבת בנט, הדמות הראשית ב-*גאווה ודעה קדומה*, היא צופה חברתית חדה (כמו המחברת) והשפה שלה לעיתים קרובות מאוד מעודנת. אפילו מר דארסי (מושא האהבה בסיפור) מציין את השימוש המשחקי והמתגרה של אליזבת בשפה: "היה לי העונג להכיר אותך מספיק זמן כדי לדעת שאת נהנית מאוד מדי פעם להביע דעות שאינן באמת שלך."
+
+---
+
+## 🚀אתגר
+
+האם תוכלו לשפר את מרווין על ידי חילוץ תכונות נוספות מהקלט של המשתמש?
+
+## [שאלון אחרי השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+ישנן דרכים רבות להפיק רגשות מטקסט. חשבו על יישומים עסקיים שיכולים להשתמש בטכניקה זו. חשבו על איך זה יכול להשתבש. קראו עוד על מערכות מתקדמות המוכנות לשימוש ארגוני שמנתחות רגשות, כמו [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). בדקו כמה מהמשפטים מתוך "גאווה ודעה קדומה" למעלה וראו אם ניתן לזהות בהם ניואנסים.
+
+## משימה
+
+[רישיון פואטי](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/3-Translation-Sentiment/assignment.md b/translations/he/6-NLP/3-Translation-Sentiment/assignment.md
new file mode 100644
index 00000000..ac9b2a17
--- /dev/null
+++ b/translations/he/6-NLP/3-Translation-Sentiment/assignment.md
@@ -0,0 +1,25 @@
+
+# רישיון פואטי
+
+## הוראות
+
+ב[מחברת זו](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) תוכלו למצוא מעל 500 שירים של אמילי דיקינסון, שכבר נותחו בעבר מבחינת רגשות באמצעות שירות ניתוח טקסט של Azure. באמצעות מערך נתונים זה, נתחו אותו באמצעות הטכניקות שתוארו בשיעור. האם הרגש המוצע של שיר תואם את ההחלטה של שירות Azure המתקדם יותר? מדוע כן או לא, לדעתכם? האם משהו הפתיע אתכם?
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ------------------------------------------------------------------------ | ----------------------------------------------------- | ----------------------- |
+| | מוצגת מחברת עם ניתוח מעמיק של דוגמת הפלט של המחבר | המחברת אינה מלאה או אינה מבצעת ניתוח | לא מוצגת מחברת |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/3-Translation-Sentiment/solution/Julia/README.md b/translations/he/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
new file mode 100644
index 00000000..94f23c76
--- /dev/null
+++ b/translations/he/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/3-Translation-Sentiment/solution/R/README.md b/translations/he/6-NLP/3-Translation-Sentiment/solution/R/README.md
new file mode 100644
index 00000000..44953214
--- /dev/null
+++ b/translations/he/6-NLP/3-Translation-Sentiment/solution/R/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/4-Hotel-Reviews-1/README.md b/translations/he/6-NLP/4-Hotel-Reviews-1/README.md
new file mode 100644
index 00000000..ac3c6b71
--- /dev/null
+++ b/translations/he/6-NLP/4-Hotel-Reviews-1/README.md
@@ -0,0 +1,417 @@
+
+# ניתוח רגשות עם ביקורות על מלונות - עיבוד הנתונים
+
+בפרק זה תשתמשו בטכניקות שלמדתם בשיעורים הקודמים כדי לבצע ניתוח נתונים חקרני על מערך נתונים גדול. לאחר שתבינו היטב את השימושיות של העמודות השונות, תלמדו:
+
+- כיצד להסיר עמודות שאינן נחוצות
+- כיצד לחשב נתונים חדשים בהתבסס על עמודות קיימות
+- כיצד לשמור את מערך הנתונים המתקבל לשימוש באתגר הסופי
+
+## [מבחן מקדים להרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+### מבוא
+
+עד כה למדתם כיצד נתוני טקסט שונים מאוד מסוגי נתונים מספריים. אם מדובר בטקסט שנכתב או נאמר על ידי אדם, ניתן לנתח אותו כדי למצוא דפוסים ותדירויות, רגשות ומשמעויות. השיעור הזה לוקח אתכם למערך נתונים אמיתי עם אתגר אמיתי: **[515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)** הכולל [רישיון CC0: Public Domain](https://creativecommons.org/publicdomain/zero/1.0/). הנתונים נגרדו מ-Booking.com ממקורות ציבוריים. יוצר מערך הנתונים הוא Jiashen Liu.
+
+### הכנה
+
+תצטרכו:
+
+* יכולת להריץ מחברות .ipynb באמצעות Python 3
+* pandas
+* NLTK, [שאותו יש להתקין באופן מקומי](https://www.nltk.org/install.html)
+* מערך הנתונים הזמין ב-Kaggle [515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe). גודלו כ-230 MB לאחר חילוץ. הורידו אותו לתיקיית השורש `/data` המשויכת לשיעורי NLP אלו.
+
+## ניתוח נתונים חקרני
+
+האתגר הזה מניח שאתם בונים בוט המלצות למלונות באמצעות ניתוח רגשות ודירוגי אורחים. מערך הנתונים שבו תשתמשו כולל ביקורות על 1493 מלונות שונים ב-6 ערים.
+
+באמצעות Python, מערך נתונים של ביקורות על מלונות, וניתוח רגשות של NLTK תוכלו לגלות:
+
+* מהם המילים והביטויים הנפוצים ביותר בביקורות?
+* האם *תגיות* רשמיות המתארות מלון מתואמות עם דירוגי ביקורות (לדוגמה, האם יש יותר ביקורות שליליות עבור מלון מסוים מ-*משפחה עם ילדים קטנים* מאשר מ-*מטייל יחיד*, אולי מצביע על כך שהוא מתאים יותר ל-*מטיילים יחידים*)?
+* האם דירוגי הרגשות של NLTK 'מסכימים' עם הדירוג המספרי של המבקר?
+
+#### מערך הנתונים
+
+בואו נחקור את מערך הנתונים שהורדתם ושמרתם באופן מקומי. פתחו את הקובץ בעורך כמו VS Code או אפילו Excel.
+
+הכותרות במערך הנתונים הן כדלקמן:
+
+*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*
+
+הנה הן מקובצות בצורה שעשויה להיות קלה יותר לבדיקה:
+##### עמודות מלון
+
+* `Hotel_Name`, `Hotel_Address`, `lat` (קו רוחב), `lng` (קו אורך)
+ * באמצעות *lat* ו-*lng* תוכלו למפות מיקום המלונות עם Python (אולי בצבעים שונים עבור ביקורות חיוביות ושליליות)
+ * Hotel_Address אינו שימושי במיוחד עבורנו, וכנראה נחליף אותו במדינה לצורך מיון וחיפוש קלים יותר
+
+**עמודות מטא-ביקורת של מלון**
+
+* `Average_Score`
+ * לפי יוצר מערך הנתונים, עמודה זו היא *הציון הממוצע של המלון, מחושב על סמך התגובה האחרונה בשנה האחרונה*. זו נראית דרך לא שגרתית לחשב את הציון, אך אלו הנתונים שנגרדו ולכן נוכל לקבלם כפי שהם לעת עתה.
+
+ ✅ בהתבסס על העמודות האחרות במערך הנתונים, האם תוכלו לחשוב על דרך אחרת לחשב את הציון הממוצע?
+
+* `Total_Number_of_Reviews`
+ * המספר הכולל של הביקורות שהמלון קיבל - לא ברור (ללא כתיבת קוד) אם זה מתייחס לביקורות במערך הנתונים.
+* `Additional_Number_of_Scoring`
+ * פירושו שניתן ציון ביקורת אך לא נכתבה ביקורת חיובית או שלילית על ידי המבקר
+
+**עמודות ביקורת**
+
+- `Reviewer_Score`
+ - זהו ערך מספרי עם מקסימום ספרה עשרונית אחת בין הערכים המינימליים והמקסימליים 2.5 ו-10
+ - לא מוסבר מדוע 2.5 הוא הציון הנמוך ביותר האפשרי
+- `Negative_Review`
+ - אם מבקר לא כתב דבר, שדה זה יכיל "**No Negative**"
+ - שימו לב שמבקר עשוי לכתוב ביקורת חיובית בעמודת הביקורת השלילית (לדוגמה, "אין שום דבר רע במלון הזה")
+- `Review_Total_Negative_Word_Counts`
+ - ספירת מילים שליליות גבוהה יותר מצביעה על ציון נמוך יותר (ללא בדיקת הרגש)
+- `Positive_Review`
+ - אם מבקר לא כתב דבר, שדה זה יכיל "**No Positive**"
+ - שימו לב שמבקר עשוי לכתוב ביקורת שלילית בעמודת הביקורת החיובית (לדוגמה, "אין שום דבר טוב במלון הזה בכלל")
+- `Review_Total_Positive_Word_Counts`
+ - ספירת מילים חיוביות גבוהה יותר מצביעה על ציון גבוה יותר (ללא בדיקת הרגש)
+- `Review_Date` ו-`days_since_review`
+ - ניתן ליישם מדד של טריות או התיישנות על ביקורת (ביקורות ישנות עשויות להיות פחות מדויקות מביקורות חדשות מכיוון שהניהול השתנה, או שיפוצים בוצעו, או נוספה בריכה וכו')
+- `Tags`
+ - אלו תיאורים קצרים שמבקר עשוי לבחור כדי לתאר את סוג האורח שהוא היה (לדוגמה, יחיד או משפחה), סוג החדר שהיה לו, משך השהות ואופן הגשת הביקורת.
+ - למרבה הצער, השימוש בתגיות אלו בעייתי, בדקו את הסעיף למטה שמדבר על השימושיות שלהן
+
+**עמודות מבקר**
+
+- `Total_Number_of_Reviews_Reviewer_Has_Given`
+ - זה עשוי להיות גורם במודל המלצות, למשל, אם תוכלו לקבוע שמבקרים פורים יותר עם מאות ביקורות היו נוטים יותר להיות שליליים מאשר חיוביים. עם זאת, המבקר של כל ביקורת מסוימת אינו מזוהה עם קוד ייחודי, ולכן לא ניתן לקשר אותו למערך ביקורות. ישנם 30 מבקרים עם 100 או יותר ביקורות, אך קשה לראות כיצד זה יכול לסייע במודל ההמלצות.
+- `Reviewer_Nationality`
+ - יש אנשים שעשויים לחשוב שלאומים מסוימים נוטים יותר לתת ביקורת חיובית או שלילית בגלל נטייה לאומית. היו זהירים בבניית השקפות אנקדוטליות כאלה לתוך המודלים שלכם. אלו סטריאוטיפים לאומיים (ולפעמים גזעיים), וכל מבקר היה אדם שכתב ביקורת על סמך חווייתו. ייתכן שהיא סוננה דרך עדשות רבות כמו שהיותיו הקודמות במלונות, המרחק שנסע, והטמפרמנט האישי שלו. קשה להצדיק את המחשבה שהלאום היה הסיבה לציון הביקורת.
+
+##### דוגמאות
+
+| ציון ממוצע | מספר כולל של ביקורות | ציון מבקר | ביקורת שלילית | ביקורת חיובית | תגיות |
+| ----------- | ---------------------- | --------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ----------------------------------------------------------------------------------------- |
+| 7.8 | 1945 | 2.5 | זה כרגע לא מלון אלא אתר בנייה. הטרידו אותי מהבוקר המוקדם ועד כל היום עם רעש בנייה בלתי נסבל בזמן מנוחה לאחר נסיעה ארוכה ועבודה בחדר. אנשים עבדו כל היום עם פטישי אוויר בחדרים סמוכים. ביקשתי להחליף חדר אך לא היה חדר שקט זמין. כדי להחמיר את המצב, חויבתי יתר על המידה. יצאתי בערב מכיוון שהייתי צריך לעזוב טיסה מוקדמת מאוד וקיבלתי חשבון מתאים. יום לאחר מכן המלון ביצע חיוב נוסף ללא הסכמתי מעבר למחיר שהוזמן. זה מקום נורא. אל תענישו את עצמכם על ידי הזמנה כאן. | שום דבר. מקום נורא. התרחקו. | נסיעת עסקים. זוג. חדר זוגי סטנדרטי. שהייה של 2 לילות. |
+
+כפי שאתם יכולים לראות, האורח הזה לא נהנה מהשהות שלו במלון. למלון יש ציון ממוצע טוב של 7.8 ו-1945 ביקורות, אך המבקר הזה נתן לו 2.5 וכתב 115 מילים על כמה שהשהות שלו הייתה שלילית. אם הוא לא כתב דבר בעמודת הביקורת החיובית, אפשר להסיק שלא היה שום דבר חיובי, אך הוא כתב 7 מילים של אזהרה. אם רק נספור מילים במקום את המשמעות או הרגש של המילים, ייתכן שתהיה לנו תמונה מעוותת של כוונת המבקר. באופן מוזר, הציון שלו של 2.5 מבלבל, כי אם השהות במלון הייתה כל כך גרועה, מדוע לתת לו נקודות בכלל? בחקירת מערך הנתונים מקרוב, תראו שהציון הנמוך ביותר האפשרי הוא 2.5, לא 0. הציון הגבוה ביותר האפשרי הוא 10.
+
+##### תגיות
+
+כפי שצוין לעיל, במבט ראשון, הרעיון להשתמש ב-`Tags` כדי לקטלג את הנתונים נראה הגיוני. למרבה הצער, תגיות אלו אינן סטנדרטיות, מה שאומר שבמלון מסוים, האפשרויות עשויות להיות *Single room*, *Twin room*, ו-*Double room*, אך במלון הבא, הן יהיו *Deluxe Single Room*, *Classic Queen Room*, ו-*Executive King Room*. אלו עשויים להיות אותם דברים, אך יש כל כך הרבה וריאציות שהבחירה הופכת ל:
+
+1. ניסיון לשנות את כל המונחים לסטנדרט יחיד, מה שקשה מאוד, מכיוון שלא ברור מה תהיה דרך ההמרה בכל מקרה (לדוגמה, *Classic single room* ממופה ל-*Single room* אך *Superior Queen Room with Courtyard Garden or City View* קשה יותר למפות)
+
+1. נוכל לקחת גישה של NLP ולמדוד את התדירות של מונחים מסוימים כמו *Solo*, *Business Traveller*, או *Family with young kids* כפי שהם חלים על כל מלון, ולשלב זאת במודל ההמלצות
+
+תגיות הן בדרך כלל (אך לא תמיד) שדה יחיד המכיל רשימה של 5 עד 6 ערכים מופרדים בפסיקים המתאימים ל-*סוג הטיול*, *סוג האורחים*, *סוג החדר*, *מספר הלילות*, ו-*סוג המכשיר שבו הוגשה הביקורת*. עם זאת, מכיוון שחלק מהמבקרים לא ממלאים כל שדה (ייתכן שהם משאירים אחד ריק), הערכים אינם תמיד באותו סדר.
+
+לדוגמה, קחו את *סוג הקבוצה*. ישנם 1025 אפשרויות ייחודיות בשדה זה בעמודת `Tags`, ולמרבה הצער רק חלקן מתייחסות לקבוצה (חלקן הן סוג החדר וכו'). אם תסננו רק את אלו שמזכירים משפחה, התוצאות מכילות הרבה תוצאות מסוג *Family room*. אם תכללו את המונח *with*, כלומר תספרו את הערכים *Family with*, התוצאות טובות יותר, עם מעל 80,000 מתוך 515,000 התוצאות המכילות את הביטוי "Family with young children" או "Family with older children".
+
+זה אומר שעמודת התגיות אינה חסרת תועלת לחלוטין עבורנו, אך יידרש מעט עבודה כדי להפוך אותה לשימושית.
+
+##### ציון ממוצע של מלון
+
+ישנם מספר מוזרויות או אי התאמות במערך הנתונים שאני לא מצליח להבין, אך הן מוצגות כאן כדי שתהיו מודעים להן בעת בניית המודלים שלכם. אם תצליחו להבין, אנא הודיעו לנו במדור הדיונים!
+
+מערך הנתונים כולל את העמודות הבאות הקשורות לציון הממוצע ולמספר הביקורות:
+
+1. Hotel_Name
+2. Additional_Number_of_Scoring
+3. Average_Score
+4. Total_Number_of_Reviews
+5. Reviewer_Score
+
+המלון היחיד עם מספר הביקורות הגבוה ביותר במערך הנתונים הזה הוא *Britannia International Hotel Canary Wharf* עם 4789 ביקורות מתוך 515,000. אך אם נסתכל על הערך `Total_Number_of_Reviews` עבור מלון זה, הוא 9086. ניתן להסיק שיש הרבה יותר ציונים ללא ביקורות, ולכן אולי כדאי להוסיף את ערך העמודה `Additional_Number_of_Scoring`. הערך הזה הוא 2682, והוספתו ל-4789 מביאה אותנו ל-7471, שעדיין חסרים 1615 כדי להגיע ל-`Total_Number_of_Reviews`.
+
+אם ניקח את עמודת `Average_Score`, ניתן להסיק שזהו הממוצע של הביקורות במערך הנתונים, אך התיאור מ-Kaggle הוא "*Average Score of the hotel, calculated based on the latest comment in the last year*". זה לא נראה שימושי במיוחד, אך נוכל לחשב ממוצע משלנו בהתבסס על ציוני הביקורות במערך הנתונים. באמצעות אותו מלון כדוגמה, הציון הממוצע של המלון ניתן כ-7.1 אך הציון המחושב (ממוצע ציוני המבקרים *ב*מערך הנתונים) הוא 6.8. זה קרוב, אך לא אותו ערך, ואנו יכולים רק לנחש שהציונים שניתנו בביקורות `Additional_Number_of_Scoring` העלו את הממוצע ל-7.1. למרבה הצער, ללא דרך לבדוק או להוכיח את ההנחה הזו, קשה להשתמש או לסמוך על `Average_Score`, `Additional_Number_of_Scoring` ו-`Total_Number_of_Reviews` כאשר הם מבוססים על, או מתייחסים לנתונים שאין לנו.
+
+כדי לסבך את העניינים עוד יותר, המלון עם מספר הביקורות השני הגבוה ביותר יש לו ציון ממוצע מחושב של 8.12 והציון הממוצע במערך הנתונים הוא 8.1. האם הציון הנכון הוא צירוף מקרים או שהמלון הראשון הוא אי התאמה?
+
+בהנחה שהמלון הזה עשוי להיות חריג, ושאולי רוב הערכים מתאימים (אך חלקם לא מסיבה כלשהי) נכתוב תוכנית קצרה בהמשך כדי לחקור את הערכים במערך הנתונים ולקבוע את השימוש הנכון (או אי השימוש) בערכים.
+> 🚨 הערה של זהירות
+>
+> כאשר עובדים עם מערך הנתונים הזה, תכתבו קוד שמחשב משהו מתוך הטקסט מבלי שתצטרכו לקרוא או לנתח את הטקסט בעצמכם. זו המהות של עיבוד שפה טבעית (NLP), לפרש משמעות או תחושה מבלי שאדם יצטרך לעשות זאת. עם זאת, ייתכן שתתקלו בכמה ביקורות שליליות. אני ממליץ לכם לא לקרוא אותן, כי אין צורך בכך. חלקן טיפשיות או לא רלוונטיות, כמו ביקורות שליליות על מלון בסגנון "מזג האוויר לא היה טוב", דבר שאינו בשליטת המלון, או למעשה, אף אחד. אבל יש גם צד אפל לחלק מהביקורות. לפעמים הביקורות השליליות הן גזעניות, סקסיסטיות, או מפלות על בסיס גיל. זה מצער אך צפוי במערך נתונים שנאסף מאתר ציבורי. ישנם מבקרים שמשאירים ביקורות שתמצאו אותן דוחות, לא נוחות, או מטרידות. עדיף לתת לקוד למדוד את התחושה מאשר לקרוא אותן בעצמכם ולהתעצב. עם זאת, מדובר במיעוט שכותב דברים כאלה, אבל הם קיימים בכל זאת.
+## תרגיל - חקר נתונים
+### טעינת הנתונים
+
+זה מספיק לבחון את הנתונים באופן חזותי, עכשיו תכתבו קצת קוד ותקבלו תשובות! החלק הזה משתמש בספריית pandas. המשימה הראשונה שלכם היא לוודא שאתם יכולים לטעון ולקרוא את נתוני ה-CSV. לספריית pandas יש טוען CSV מהיר, והתוצאה נשמרת ב-DataFrame, כפי שראיתם בשיעורים הקודמים. ה-CSV שאנחנו טוענים מכיל יותר מחצי מיליון שורות, אבל רק 17 עמודות. pandas מספקת דרכים רבות וחזקות לעבוד עם DataFrame, כולל היכולת לבצע פעולות על כל שורה.
+
+מכאן והלאה בשיעור הזה, יהיו קטעי קוד והסברים על הקוד וגם דיון על מה המשמעות של התוצאות. השתמשו בקובץ _notebook.ipynb_ המצורף עבור הקוד שלכם.
+
+בואו נתחיל בטעינת קובץ הנתונים שבו תשתמשו:
+
+```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")
+```
+
+עכשיו כשהנתונים נטענו, אנחנו יכולים לבצע עליהם פעולות. שמרו את הקוד הזה בראש התוכנית שלכם עבור החלק הבא.
+
+## חקר הנתונים
+
+במקרה הזה, הנתונים כבר *נקיים*, כלומר הם מוכנים לעבודה, ואין בהם תווים בשפות אחרות שעלולים להפריע לאלגוריתמים שמצפים לתווים באנגלית בלבד.
+
+✅ ייתכן שתצטרכו לעבוד עם נתונים שדורשים עיבוד ראשוני כדי לעצב אותם לפני יישום טכניקות NLP, אבל לא הפעם. אם הייתם צריכים, איך הייתם מתמודדים עם תווים שאינם באנגלית?
+
+קחו רגע לוודא שברגע שהנתונים נטענו, אתם יכולים לחקור אותם באמצעות קוד. קל מאוד להתמקד בעמודות `Negative_Review` ו-`Positive_Review`. הן מלאות בטקסט טבעי עבור אלגוריתמי ה-NLP שלכם לעיבוד. אבל חכו! לפני שאתם קופצים ל-NLP ולניתוח רגשות, כדאי שתעקבו אחרי הקוד למטה כדי לוודא שהערכים שניתנו בנתונים תואמים לערכים שאתם מחשבים עם pandas.
+
+## פעולות על DataFrame
+
+המשימה הראשונה בשיעור הזה היא לבדוק אם ההנחות הבאות נכונות על ידי כתיבת קוד שבוחן את ה-DataFrame (מבלי לשנות אותו).
+
+> כמו בהרבה משימות תכנות, יש כמה דרכים להשלים את זה, אבל עצה טובה היא לעשות זאת בדרך הפשוטה והקלה ביותר, במיוחד אם זה יהיה קל יותר להבנה כשתחזרו לקוד הזה בעתיד. עם DataFrames, יש API מקיף שלרוב יציע דרך לעשות את מה שאתם רוצים בצורה יעילה.
+
+התייחסו לשאלות הבאות כמשימות קוד ונסו לענות עליהן מבלי להסתכל על הפתרון.
+
+1. הדפיסו את *הצורה* של ה-DataFrame שזה עתה טענתם (הצורה היא מספר השורות והעמודות).
+2. חשבו את תדירות הלאומים של הסוקרים:
+ 1. כמה ערכים ייחודיים יש לעמודה `Reviewer_Nationality` ומה הם?
+ 2. איזה לאום של סוקרים הוא הנפוץ ביותר בנתונים (הדפיסו את המדינה ומספר הביקורות)?
+ 3. מהם 10 הלאומים הנפוצים ביותר הבאים ותדירותם?
+3. איזה מלון קיבל את מספר הביקורות הגבוה ביותר עבור כל אחד מ-10 הלאומים הנפוצים ביותר?
+4. כמה ביקורות יש לכל מלון (תדירות הביקורות לכל מלון) בנתונים?
+5. למרות שיש עמודה `Average_Score` לכל מלון בנתונים, אתם יכולים גם לחשב ציון ממוצע (לקחת את הממוצע של כל ציוני הסוקרים בנתונים עבור כל מלון). הוסיפו עמודה חדשה ל-DataFrame שלכם עם הכותרת `Calc_Average_Score` שמכילה את הממוצע המחושב.
+6. האם יש מלונות עם אותו ציון (מעוגל למקום העשרוני הראשון) ב-`Average_Score` וב-`Calc_Average_Score`?
+ 1. נסו לכתוב פונקציה ב-Python שמקבלת Series (שורה) כארגומנט ומשווה את הערכים, ומדפיסה הודעה כשהערכים אינם שווים. לאחר מכן השתמשו בשיטה `.apply()` כדי לעבד כל שורה עם הפונקציה.
+7. חשבו והדפיסו כמה שורות יש עם ערכים של "No Negative" בעמודה `Negative_Review`.
+8. חשבו והדפיסו כמה שורות יש עם ערכים של "No Positive" בעמודה `Positive_Review`.
+9. חשבו והדפיסו כמה שורות יש עם ערכים של "No Positive" בעמודה `Positive_Review` **וגם** ערכים של "No Negative" בעמודה `Negative_Review`.
+
+### תשובות בקוד
+
+1. הדפיסו את *הצורה* של ה-DataFrame שזה עתה טענתם (הצורה היא מספר השורות והעמודות).
+
+ ```python
+ print("The shape of the data (rows, cols) is " + str(df.shape))
+ > The shape of the data (rows, cols) is (515738, 17)
+ ```
+
+2. חשבו את תדירות הלאומים של הסוקרים:
+
+ 1. כמה ערכים ייחודיים יש לעמודה `Reviewer_Nationality` ומה הם?
+ 2. איזה לאום של סוקרים הוא הנפוץ ביותר בנתונים (הדפיסו את המדינה ומספר הביקורות)?
+
+ ```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. מהם 10 הלאומים הנפוצים ביותר הבאים ותדירותם?
+
+ ```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. איזה מלון קיבל את מספר הביקורות הגבוה ביותר עבור כל אחד מ-10 הלאומים הנפוצים ביותר?
+
+ ```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. כמה ביקורות יש לכל מלון (תדירות הביקורות לכל מלון) בנתונים?
+
+ ```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 |
+
+ ייתכן שתשימו לב שהתוצאות *שנספרו בנתונים* אינן תואמות את הערך ב-`Total_Number_of_Reviews`. לא ברור אם הערך הזה בנתונים מייצג את מספר הביקורות הכולל שהמלון קיבל, אבל לא כולן נגרפו, או חישוב אחר. `Total_Number_of_Reviews` אינו משמש במודל בגלל חוסר הבהירות הזה.
+
+5. למרות שיש עמודה `Average_Score` לכל מלון בנתונים, אתם יכולים גם לחשב ציון ממוצע (לקחת את הממוצע של כל ציוני הסוקרים בנתונים עבור כל מלון). הוסיפו עמודה חדשה ל-DataFrame שלכם עם הכותרת `Calc_Average_Score` שמכילה את הממוצע המחושב. הדפיסו את העמודות `Hotel_Name`, `Average_Score`, ו-`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"]])
+ ```
+
+ ייתכן שתהיתם לגבי הערך `Average_Score` ולמה הוא לפעמים שונה מהממוצע המחושב. מכיוון שאנחנו לא יכולים לדעת למה חלק מהערכים תואמים, אבל אחרים יש להם הבדל, הכי בטוח במקרה הזה להשתמש בציוני הביקורות שיש לנו כדי לחשב את הממוצע בעצמנו. עם זאת, ההבדלים בדרך כלל מאוד קטנים, הנה המלונות עם ההבדל הגדול ביותר בין הממוצע בנתונים לבין הממוצע המחושב:
+
+ | 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 |
+
+ עם רק מלון אחד שיש לו הבדל בציון גדול מ-1, זה אומר שאנחנו כנראה יכולים להתעלם מההבדל ולהשתמש בממוצע המחושב.
+
+6. חשבו והדפיסו כמה שורות יש עם ערכים של "No Negative" בעמודה `Negative_Review`.
+
+7. חשבו והדפיסו כמה שורות יש עם ערכים של "No Positive" בעמודה `Positive_Review`.
+
+8. חשבו והדפיסו כמה שורות יש עם ערכים של "No Positive" בעמודה `Positive_Review` **וגם** ערכים של "No Negative" בעמודה `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
+ ```
+
+## דרך נוספת
+
+דרך נוספת לספור פריטים ללא Lambdas, ולהשתמש ב-sum כדי לספור את השורות:
+
+ ```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
+ ```
+
+ ייתכן ששמתם לב שיש 127 שורות שיש להן גם "No Negative" וגם "No Positive" כערכים בעמודות `Negative_Review` ו-`Positive_Review` בהתאמה. זה אומר שהסוקר נתן למלון ציון מספרי, אבל נמנע מלכתוב ביקורת חיובית או שלילית. למרבה המזל מדובר בכמות קטנה של שורות (127 מתוך 515738, או 0.02%), כך שזה כנראה לא יטה את המודל או התוצאות לכיוון מסוים, אבל ייתכן שלא ציפיתם שמאגר נתונים של ביקורות יכיל שורות ללא ביקורות, ולכן כדאי לחקור את הנתונים כדי לגלות שורות כאלה.
+
+עכשיו כשחקרתם את מאגר הנתונים, בשיעור הבא תסננו את הנתונים ותוסיפו ניתוח רגשות.
+
+---
+## 🚀אתגר
+
+השיעור הזה מדגים, כפי שראינו בשיעורים קודמים, כמה חשוב להבין את הנתונים ואת המוזרויות שלהם לפני ביצוע פעולות עליהם. נתונים מבוססי טקסט, במיוחד, דורשים בדיקה מדוקדקת. חפרו במאגרי נתונים שונים שמבוססים על טקסט ונסו לגלות אזורים שיכולים להכניס הטיה או רגשות מוטים למודל.
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+קחו [את מסלול הלמידה הזה על NLP](https://docs.microsoft.com/learn/paths/explore-natural-language-processing/?WT.mc_id=academic-77952-leestott) כדי לגלות כלים לנסות כשבונים מודלים מבוססי דיבור וטקסט.
+
+## משימה
+
+[NLTK](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/4-Hotel-Reviews-1/assignment.md b/translations/he/6-NLP/4-Hotel-Reviews-1/assignment.md
new file mode 100644
index 00000000..398b6b5b
--- /dev/null
+++ b/translations/he/6-NLP/4-Hotel-Reviews-1/assignment.md
@@ -0,0 +1,19 @@
+
+# NLTK
+
+## הוראות
+
+NLTK היא ספרייה ידועה לשימוש בבלשנות חישובית ועיבוד שפה טבעית (NLP). נצלו את ההזדמנות לקרוא את '[ספר NLTK](https://www.nltk.org/book/)' ולנסות את התרגילים שבו. במשימה זו, שאינה מדורגת, תכירו את הספרייה הזו לעומק.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md b/translations/he/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
new file mode 100644
index 00000000..46959a68
--- /dev/null
+++ b/translations/he/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/4-Hotel-Reviews-1/solution/R/README.md b/translations/he/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
new file mode 100644
index 00000000..caca4365
--- /dev/null
+++ b/translations/he/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/5-Hotel-Reviews-2/README.md b/translations/he/6-NLP/5-Hotel-Reviews-2/README.md
new file mode 100644
index 00000000..3117f6c1
--- /dev/null
+++ b/translations/he/6-NLP/5-Hotel-Reviews-2/README.md
@@ -0,0 +1,389 @@
+
+# ניתוח רגשות עם ביקורות על מלונות
+
+עכשיו, לאחר שחקרת את מערך הנתונים לעומק, הגיע הזמן לסנן את העמודות ולהשתמש בטכניקות עיבוד שפה טבעית (NLP) על מערך הנתונים כדי לקבל תובנות חדשות על המלונות.
+
+## [מבחן מקדים להרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+### פעולות סינון וניתוח רגשות
+
+כפי שכנראה שמת לב, יש כמה בעיות במערך הנתונים. חלק מהעמודות מלאות במידע חסר תועלת, אחרות נראות לא נכונות. גם אם הן נכונות, לא ברור כיצד חושבו, ואין אפשרות לאמת את התשובות באופן עצמאי באמצעות חישובים משלך.
+
+## תרגיל: עוד קצת עיבוד נתונים
+
+נקה את הנתונים עוד קצת. הוסף עמודות שיהיו שימושיות בהמשך, שנה את הערכים בעמודות אחרות, והסר עמודות מסוימות לחלוטין.
+
+1. עיבוד ראשוני של עמודות
+
+ 1. הסר את `lat` ו-`lng`
+
+ 2. החלף את הערכים ב-`Hotel_Address` בערכים הבאים (אם הכתובת מכילה את שם העיר והמדינה, שנה אותה רק לעיר ולמדינה).
+
+ אלו הערים והמדינות היחידות במערך הנתונים:
+
+ אמסטרדם, הולנד
+
+ ברצלונה, ספרד
+
+ לונדון, בריטניה
+
+ מילאנו, איטליה
+
+ פריז, צרפת
+
+ וינה, אוסטריה
+
+ ```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())
+ ```
+
+ עכשיו תוכל לשאול נתונים ברמת מדינה:
+
+ ```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. עיבוד עמודות מטא-ביקורת של מלונות
+
+ 1. הסר את `Additional_Number_of_Scoring`
+
+ 1. החלף את `Total_Number_of_Reviews` במספר הכולל של הביקורות על המלון שבפועל נמצאות במערך הנתונים
+
+ 1. החלף את `Average_Score` בציון שחושב על ידינו
+
+ ```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. עיבוד עמודות ביקורת
+
+ 1. הסר את `Review_Total_Negative_Word_Counts`, `Review_Total_Positive_Word_Counts`, `Review_Date` ו-`days_since_review`
+
+ 2. שמור את `Reviewer_Score`, `Negative_Review` ו-`Positive_Review` כפי שהם,
+
+ 3. שמור את `Tags` לעת עתה
+
+ - נבצע פעולות סינון נוספות על התגים בחלק הבא ואז נסיר את התגים
+
+4. עיבוד עמודות מבקר
+
+ 1. הסר את `Total_Number_of_Reviews_Reviewer_Has_Given`
+
+ 2. שמור את `Reviewer_Nationality`
+
+### עמודות תג
+
+עמודת ה-`Tag` בעייתית מכיוון שהיא רשימה (בצורת טקסט) המאוחסנת בעמודה. למרבה הצער, הסדר ומספר תתי-הקטעים בעמודה זו אינם תמיד זהים. קשה לאדם לזהות את הביטויים הנכונים שיש להתעניין בהם, מכיוון שיש 515,000 שורות ו-1427 מלונות, ולכל אחד יש אפשרויות מעט שונות שהמבקר יכול לבחור. כאן נכנס לתמונה NLP. ניתן לסרוק את הטקסט ולמצוא את הביטויים הנפוצים ביותר ולספור אותם.
+
+למרבה הצער, אנחנו לא מעוניינים במילים בודדות, אלא בביטויים מרובי מילים (לדוגמה, *נסיעת עסקים*). הפעלת אלגוריתם חלוקת תדירות ביטויים מרובי מילים על כמות נתונים כזו (6762646 מילים) עשויה לקחת זמן רב במיוחד, אך מבלי להסתכל על הנתונים, נראה שזהו מחיר הכרחי. כאן ניתוח נתונים חקרני מועיל, מכיוון שראית דוגמה של התגים כמו `[' נסיעת עסקים ', ' מטייל יחיד ', ' חדר יחיד ', ' שהה 5 לילות ', ' נשלח ממכשיר נייד ']`, תוכל להתחיל לשאול אם ניתן לצמצם משמעותית את העיבוד שעליך לבצע. למרבה המזל, זה אפשרי - אבל קודם עליך לבצע כמה צעדים כדי לוודא מהם התגים הרלוונטיים.
+
+### סינון תגים
+
+זכור שהמטרה של מערך הנתונים היא להוסיף רגשות ועמודות שיעזרו לך לבחור את המלון הטוב ביותר (עבור עצמך או אולי עבור לקוח שמבקש ממך ליצור בוט המלצות על מלונות). עליך לשאול את עצמך אם התגים שימושיים או לא במערך הנתונים הסופי. הנה פרשנות אחת (אם היית זקוק למערך הנתונים מסיבות אחרות, ייתכן שתגים שונים יישארו/יוסרו מהבחירה):
+
+1. סוג הנסיעה רלוונטי, והוא צריך להישאר
+2. סוג קבוצת האורחים חשוב, והוא צריך להישאר
+3. סוג החדר, הסוויטה או הסטודיו שבו האורח שהה אינו רלוונטי (לכל המלונות יש בעצם אותם חדרים)
+4. המכשיר שעליו נשלחה הביקורת אינו רלוונטי
+5. מספר הלילות שהמבקר שהה *יכול* להיות רלוונטי אם תייחס שהיות ארוכות יותר לכך שהם אהבו את המלון יותר, אבל זה גבולי, וסביר להניח שאינו רלוונטי
+
+לסיכום, **שמור 2 סוגי תגים והסר את האחרים**.
+
+ראשית, אינך רוצה לספור את התגים עד שהם יהיו בפורמט טוב יותר, כלומר יש להסיר את הסוגריים המרובעים והמרכאות. ניתן לעשות זאת בכמה דרכים, אך כדאי לבחור את המהירה ביותר מכיוון שזה עשוי לקחת זמן רב לעבד הרבה נתונים. למרבה המזל, ל-pandas יש דרך קלה לבצע כל אחד מהשלבים הללו.
+
+```Python
+# Remove opening and closing brackets
+df.Tags = df.Tags.str.strip("[']")
+# remove all quotes too
+df.Tags = df.Tags.str.replace(" ', '", ",", regex = False)
+```
+
+כל תג הופך למשהו כמו: `נסיעת עסקים, מטייל יחיד, חדר יחיד, שהה 5 לילות, נשלח ממכשיר נייד`.
+
+לאחר מכן אנו מוצאים בעיה. חלק מהביקורות, או השורות, מכילות 5 עמודות, חלק 3, חלק 6. זהו תוצאה של אופן יצירת מערך הנתונים, וקשה לתקן. אתה רוצה לקבל ספירת תדירות של כל ביטוי, אך הם בסדר שונה בכל ביקורת, כך שהספירה עשויה להיות שגויה, ומלון עשוי לא לקבל תג שהגיע לו.
+
+במקום זאת תשתמש בסדר השונה לטובתנו, מכיוון שכל תג הוא מרובה מילים אך גם מופרד באמצעות פסיק! הדרך הפשוטה ביותר לעשות זאת היא ליצור 6 עמודות זמניות עם כל תג מוכנס לעמודה המתאימה לסדר שלו בתג. לאחר מכן תוכל למזג את 6 העמודות לעמודה גדולה אחת ולהפעיל את השיטה `value_counts()` על העמודה המתקבלת. בהדפסה תראה שהיו 2428 תגים ייחודיים. הנה דוגמה קטנה:
+
+| Tag | Count |
+| ------------------------------ | ------ |
+| נסיעת פנאי | 417778 |
+| נשלח ממכשיר נייד | 307640 |
+| זוג | 252294 |
+| שהה לילה אחד | 193645 |
+| שהה 2 לילות | 133937 |
+| מטייל יחיד | 108545 |
+| שהה 3 לילות | 95821 |
+| נסיעת עסקים | 82939 |
+| קבוצה | 65392 |
+| משפחה עם ילדים קטנים | 61015 |
+| שהה 4 לילות | 47817 |
+| חדר זוגי | 35207 |
+| חדר זוגי סטנדרטי | 32248 |
+| חדר זוגי משופר | 31393 |
+| משפחה עם ילדים גדולים | 26349 |
+| חדר זוגי דלוקס | 24823 |
+| חדר זוגי או תאומים | 22393 |
+| שהה 5 לילות | 20845 |
+| חדר זוגי או תאומים סטנדרטי | 17483 |
+| חדר זוגי קלאסי | 16989 |
+| חדר זוגי או תאומים משופר | 13570 |
+| 2 חדרים | 12393 |
+
+חלק מהתגים הנפוצים כמו `נשלח ממכשיר נייד` אינם מועילים לנו, ולכן ייתכן שזה רעיון חכם להסיר אותם לפני ספירת הופעת הביטויים, אך זו פעולה כה מהירה שניתן להשאיר אותם ולהתעלם מהם.
+
+### הסרת תגים של אורך שהייה
+
+הסרת תגים אלו היא שלב 1, היא מפחיתה מעט את מספר התגים שיש לשקול. שים לב שאינך מסיר אותם ממערך הנתונים, אלא פשוט בוחר להסיר אותם משיקול כערכים לספירה/שמירה במערך הביקורות.
+
+| אורך שהייה | Count |
+| ---------------- | ------ |
+| שהה לילה אחד | 193645 |
+| שהה 2 לילות | 133937 |
+| שהה 3 לילות | 95821 |
+| שהה 4 לילות | 47817 |
+| שהה 5 לילות | 20845 |
+| שהה 6 לילות | 9776 |
+| שהה 7 לילות | 7399 |
+| שהה 8 לילות | 2502 |
+| שהה 9 לילות | 1293 |
+| ... | ... |
+
+יש מגוון עצום של חדרים, סוויטות, סטודיו, דירות וכדומה. כולם פחות או יותר אותו דבר ואינם רלוונטיים עבורך, לכן הסר אותם משיקול.
+
+| סוג חדר | Count |
+| ----------------------------- | ----- |
+| חדר זוגי | 35207 |
+| חדר זוגי סטנדרטי | 32248 |
+| חדר זוגי משופר | 31393 |
+| חדר זוגי דלוקס | 24823 |
+| חדר זוגי או תאומים | 22393 |
+| חדר זוגי או תאומים סטנדרטי | 17483 |
+| חדר זוגי קלאסי | 16989 |
+| חדר זוגי או תאומים משופר | 13570 |
+
+לבסוף, וזה משמח (כי זה לא דרש הרבה עיבוד בכלל), תישאר עם התגים הבאים *שימושיים*:
+
+| Tag | Count |
+| --------------------------------------------- | ------ |
+| נסיעת פנאי | 417778 |
+| זוג | 252294 |
+| מטייל יחיד | 108545 |
+| נסיעת עסקים | 82939 |
+| קבוצה (משולב עם מטיילים עם חברים) | 67535 |
+| משפחה עם ילדים קטנים | 61015 |
+| משפחה עם ילדים גדולים | 26349 |
+| עם חיית מחמד | 1405 |
+
+אפשר לטעון ש`מטיילים עם חברים` זהה פחות או יותר ל`קבוצה`, וזה יהיה הוגן לשלב את השניים כפי שמוצג לעיל. הקוד לזיהוי התגים הנכונים נמצא ב-[מחברת התגים](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb).
+
+השלב האחרון הוא ליצור עמודות חדשות עבור כל אחד מהתגים הללו. לאחר מכן, עבור כל שורת ביקורת, אם עמודת ה-`Tag` תואמת לאחת מהעמודות החדשות, הוסף 1, אם לא, הוסף 0. התוצאה הסופית תהיה ספירה של כמה מבקרים בחרו במלון זה (במצטבר) עבור, למשל, עסקים מול פנאי, או להביא חיית מחמד, וזה מידע שימושי בעת המלצה על מלון.
+
+```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)
+
+```
+
+### שמור את הקובץ שלך
+
+לבסוף, שמור את מערך הנתונים כפי שהוא עכשיו עם שם חדש.
+
+```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)
+```
+
+## פעולות ניתוח רגשות
+
+בחלק האחרון הזה, תיישם ניתוח רגשות על עמודות הביקורות ותשמור את התוצאות במערך נתונים.
+
+## תרגיל: טען ושמור את הנתונים המסוננים
+
+שים לב שעכשיו אתה טוען את מערך הנתונים המסונן שנשמר בחלק הקודם, **לא** את מערך הנתונים המקורי.
+
+```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)
+```
+
+### הסרת מילים נפוצות
+
+אם היית מפעיל ניתוח רגשות על עמודות הביקורות השליליות והחיוביות, זה יכול לקחת זמן רב. נבדק על מחשב נייד חזק עם מעבד מהיר, זה לקח 12 - 14 דקות תלוי באיזו ספריית ניתוח רגשות נעשה שימוש. זה זמן (יחסית) ארוך, ולכן כדאי לבדוק אם ניתן להאיץ את התהליך.
+
+הסרת מילים נפוצות, או מילים באנגלית שאינן משנות את הרגש של משפט, היא הצעד הראשון. על ידי הסרתן, ניתוח הרגשות אמור לרוץ מהר יותר, אך לא להיות פחות מדויק (מכיוון שהמילים הנפוצות אינן משפיעות על הרגש, אך הן מאטות את הניתוח).
+
+הביקורת השלילית הארוכה ביותר הייתה 395 מילים, אך לאחר הסרת המילים הנפוצות, היא מכילה 195 מילים.
+
+הסרת המילים הנפוצות היא גם פעולה מהירה, הסרת המילים הנפוצות מ-2 עמודות ביקורות על פני 515,000 שורות לקחה 3.3 שניות במכשיר הבדיקה. זה יכול לקחת מעט יותר או פחות זמן עבורך תלוי במהירות המעבד של המכשיר שלך, זיכרון RAM, האם יש לך SSD או לא, וכמה גורמים נוספים. הקיצור היחסי של הפעולה אומר שאם זה משפר את זמן ניתוח הרגשות, אז זה שווה לעשות.
+
+```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)
+```
+
+### ביצוע ניתוח רגשות
+
+עכשיו עליך לחשב את ניתוח הרגשות עבור עמודות הביקורות השליליות והחיוביות, ולשמור את התוצאה ב-2 עמודות חדשות. המבחן של הרגש יהיה להשוות אותו לציון של המבקר עבור אותה ביקורת. לדוגמה, אם הרגש חושב שלביקורת השלילית היה רגש של 1 (רגש חיובי מאוד) ולביקורת החיובית רגש של 1, אך המבקר נתן למלון את הציון הנמוך ביותר האפשרי, אז או שהטקסט של הביקורת אינו תואם לציון, או שמנתח הרגשות לא הצליח לזהות את הרגש בצורה נכונה. עליך לצפות שחלק מציוני הרגשות יהיו שגויים לחלוטין, ולעיתים זה יהיה ניתן להסבר, למשל הביקורת יכולה להיות מאוד סרקסטית "כמובן ש-מ-א-ו-ד אהבתי לישון בחדר בלי חימום" ומנתח הרגשות חושב שזה רגש חיובי, למרות שאדם שקורא את זה היה יודע שזה סרקזם.
+NLTK מספקת מנתחי רגשות שונים ללמידה, ואתם יכולים להחליף ביניהם ולבדוק אם הניתוח הרגשי מדויק יותר או פחות. ניתוח הרגשות של 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, June 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"]
+```
+
+מאוחר יותר בתוכנית שלכם, כאשר תהיו מוכנים לחשב רגשות, תוכלו ליישם זאת על כל ביקורת באופן הבא:
+
+```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")
+```
+
+זה לוקח בערך 120 שניות במחשב שלי, אבל זה ישתנה ממחשב למחשב. אם אתם רוצים להדפיס את התוצאות ולבדוק אם הרגש תואם את הביקורת:
+
+```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"]])
+```
+
+הדבר האחרון שיש לעשות עם הקובץ לפני השימוש בו באתגר הוא לשמור אותו! כדאי גם לשקול לסדר מחדש את כל העמודות החדשות שלכם כך שיהיה קל לעבוד איתן (עבור בני אדם, זה שינוי קוסמטי).
+
+```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)
+```
+
+עליכם להריץ את כל הקוד עבור [מחברת הניתוח](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) (לאחר שהרצתם [את מחברת הסינון](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) כדי ליצור את קובץ Hotel_Reviews_Filtered.csv).
+
+לסיכום, השלבים הם:
+
+1. קובץ הנתונים המקורי **Hotel_Reviews.csv** נחקר בשיעור הקודם עם [מחברת החקירה](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb)
+2. Hotel_Reviews.csv מסונן על ידי [מחברת הסינון](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) ומתקבל **Hotel_Reviews_Filtered.csv**
+3. Hotel_Reviews_Filtered.csv מעובד על ידי [מחברת ניתוח הרגשות](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) ומתקבל **Hotel_Reviews_NLP.csv**
+4. השתמשו ב-Hotel_Reviews_NLP.csv באתגר ה-NLP למטה
+
+### מסקנה
+
+כשאתם התחלתם, היה לכם קובץ נתונים עם עמודות ונתונים, אבל לא הכל היה ניתן לאימות או לשימוש. חקרתם את הנתונים, סיננתם את מה שלא היה נחוץ, המרתם תגיות למשהו שימושי, חישבתם ממוצעים משלכם, הוספתם עמודות רגשות, וכנראה למדתם דברים מעניינים על עיבוד טקסט טבעי.
+
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## אתגר
+
+עכשיו, כשניתחתם את הרגשות בקובץ הנתונים שלכם, נסו להשתמש באסטרטגיות שלמדתם בתוכנית הלימודים הזו (אולי clustering?) כדי לזהות דפוסים סביב רגשות.
+
+## סקירה ולימוד עצמי
+
+קחו [את המודול הזה](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott) כדי ללמוד עוד ולהשתמש בכלים שונים לחקר רגשות בטקסט.
+
+## משימה
+
+[נסו קובץ נתונים אחר](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/5-Hotel-Reviews-2/assignment.md b/translations/he/6-NLP/5-Hotel-Reviews-2/assignment.md
new file mode 100644
index 00000000..e534331a
--- /dev/null
+++ b/translations/he/6-NLP/5-Hotel-Reviews-2/assignment.md
@@ -0,0 +1,25 @@
+
+# נסה מערך נתונים אחר
+
+## הוראות
+
+עכשיו, לאחר שלמדת להשתמש ב-NLTK כדי להקצות רגשות לטקסט, נסה מערך נתונים אחר. סביר להניח שתצטרך לבצע עיבוד נתונים סביבו, אז צור מחברת ותעד את תהליך החשיבה שלך. מה אתה מגלה?
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------- |
+| | מחברת מלאה ומערך נתונים מוצגים עם תאים מתועדים היטב המסבירים כיצד מוקצים הרגשות | המחברת חסרה הסברים טובים | המחברת פגומה |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md b/translations/he/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
new file mode 100644
index 00000000..730ccb13
--- /dev/null
+++ b/translations/he/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/5-Hotel-Reviews-2/solution/R/README.md b/translations/he/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
new file mode 100644
index 00000000..09f4b81a
--- /dev/null
+++ b/translations/he/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/README.md b/translations/he/6-NLP/README.md
new file mode 100644
index 00000000..7f1db56c
--- /dev/null
+++ b/translations/he/6-NLP/README.md
@@ -0,0 +1,38 @@
+
+# התחלת עבודה עם עיבוד שפה טבעית
+
+עיבוד שפה טבעית (NLP) הוא היכולת של תוכנת מחשב להבין שפה אנושית כפי שהיא מדוברת ונכתבת - מה שמכונה שפה טבעית. זהו מרכיב של בינה מלאכותית (AI). תחום ה-NLP קיים כבר יותר מ-50 שנה ויש לו שורשים בתחום הבלשנות. כל התחום מכוון לעזור למכונות להבין ולעבד את השפה האנושית. לאחר מכן ניתן להשתמש בזה לביצוע משימות כמו בדיקת איות או תרגום מכונה. יש לו מגוון יישומים בעולם האמיתי בתחומים רבים, כולל מחקר רפואי, מנועי חיפוש ומודיעין עסקי.
+
+## נושא אזורי: שפות וספרות אירופיות ומלונות רומנטיים באירופה ❤️
+
+בפרק זה של התוכנית, תיחשפו לאחד השימושים הנפוצים ביותר בלמידת מכונה: עיבוד שפה טבעית (NLP). תחום זה, שמקורו בבלשנות חישובית, מהווה גשר בין בני אדם למכונות באמצעות תקשורת קולית או טקסטואלית.
+
+בשיעורים אלו נלמד את יסודות ה-NLP על ידי בניית בוטים שיחתיים קטנים כדי להבין כיצד למידת מכונה מסייעת להפוך את השיחות הללו ליותר ויותר 'חכמות'. תצאו למסע בזמן, ותשוחחו עם אליזבת בנט ומר דארסי מתוך הרומן הקלאסי של ג'יין אוסטן, **גאווה ודעה קדומה**, שפורסם בשנת 1813. לאחר מכן, תעמיקו את הידע שלכם על ידי לימוד ניתוח רגשות דרך ביקורות על מלונות באירופה.
+
+
+> צילום על ידי Elaine Howlin ב-Unsplash
+
+## שיעורים
+
+1. [מבוא לעיבוד שפה טבעית](1-Introduction-to-NLP/README.md)
+2. [משימות וטכניקות נפוצות ב-NLP](2-Tasks/README.md)
+3. [תרגום וניתוח רגשות באמצעות למידת מכונה](3-Translation-Sentiment/README.md)
+4. [הכנת הנתונים שלכם](4-Hotel-Reviews-1/README.md)
+5. [NLTK לניתוח רגשות](5-Hotel-Reviews-2/README.md)
+
+## קרדיטים
+
+שיעורי עיבוד השפה הטבעית הללו נכתבו עם ☕ על ידי [Stephen Howell](https://twitter.com/Howell_MSFT)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/6-NLP/data/README.md b/translations/he/6-NLP/data/README.md
new file mode 100644
index 00000000..01c93901
--- /dev/null
+++ b/translations/he/6-NLP/data/README.md
@@ -0,0 +1,15 @@
+
+הורד את נתוני ביקורת המלון לתיקייה זו.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס AI [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/1-Introduction/README.md b/translations/he/7-TimeSeries/1-Introduction/README.md
new file mode 100644
index 00000000..e3e7929b
--- /dev/null
+++ b/translations/he/7-TimeSeries/1-Introduction/README.md
@@ -0,0 +1,199 @@
+
+# מבוא לחיזוי סדרות זמן
+
+
+
+> סקצ'נוט מאת [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+בשיעור הזה ובשיעור הבא, תלמדו מעט על חיזוי סדרות זמן, תחום מעניין וחשוב בארגז הכלים של מדען ML, אשר פחות מוכר בהשוואה לנושאים אחרים. חיזוי סדרות זמן הוא מעין 'כדור בדולח': בהתבסס על ביצועים קודמים של משתנה כמו מחיר, ניתן לחזות את הערך הפוטנציאלי העתידי שלו.
+
+[](https://youtu.be/cBojo1hsHiI "מבוא לחיזוי סדרות זמן")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון על חיזוי סדרות זמן
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+זהו תחום שימושי ומעניין בעל ערך ממשי לעסקים, בשל יישומו הישיר לבעיות של תמחור, מלאי וניהול שרשרת אספקה. בעוד שטכניקות למידה עמוקה החלו לשמש כדי להפיק תובנות נוספות ולחזות ביצועים עתידיים בצורה טובה יותר, חיזוי סדרות זמן נותר תחום שמבוסס רבות על טכניקות ML קלאסיות.
+
+> ניתן למצוא את תכנית הלימודים השימושית של Penn State בנושא סדרות זמן [כאן](https://online.stat.psu.edu/stat510/lesson/1)
+
+## מבוא
+
+נניח שאתם מנהלים מערך של מדחני חניה חכמים המספקים נתונים על תדירות השימוש בהם ועל משך הזמן לאורך זמן.
+
+> מה אם הייתם יכולים לחזות, בהתבסס על ביצועי העבר של המדחן, את ערכו העתידי בהתאם לחוקי ההיצע והביקוש?
+
+חיזוי מדויק של הזמן לפעול כדי להשיג את המטרה שלכם הוא אתגר שניתן להתמודד איתו באמצעות חיזוי סדרות זמן. זה אולי לא ישמח אנשים שיחויבו יותר בזמני עומס כשהם מחפשים מקום חניה, אבל זו דרך בטוחה לייצר הכנסה לניקוי הרחובות!
+
+בואו נחקור כמה מסוגי האלגוריתמים של סדרות זמן ונתחיל במחברת כדי לנקות ולהכין נתונים. הנתונים שתנתחו נלקחו מתחרות החיזוי GEFCom2014. הם כוללים 3 שנים של נתוני עומס חשמל וטמפרטורה לפי שעה בין השנים 2012 ל-2014. בהתבסס על דפוסים היסטוריים של עומס חשמל וטמפרטורה, תוכלו לחזות ערכים עתידיים של עומס חשמל.
+
+בדוגמה זו, תלמדו כיצד לחזות צעד זמן אחד קדימה, תוך שימוש בנתוני עומס היסטוריים בלבד. עם זאת, לפני שמתחילים, כדאי להבין מה קורה מאחורי הקלעים.
+
+## כמה הגדרות
+
+כשנתקלים במונח 'סדרות זמן', חשוב להבין את השימוש בו בהקשרים שונים.
+
+🎓 **סדרות זמן**
+
+במתמטיקה, "סדרות זמן הן סדרה של נקודות נתונים שמאונדקסות (או רשומות או מוצגות בגרף) לפי סדר זמן. לרוב, סדרות זמן הן רצף שנלקח בנקודות זמן עוקבות במרווחים שווים." דוגמה לסדרות זמן היא ערך הסגירה היומי של [מדד דאו ג'ונס](https://wikipedia.org/wiki/Time_series). השימוש בגרפים של סדרות זמן ובמודלים סטטיסטיים נפוץ בעיבוד אותות, חיזוי מזג אוויר, חיזוי רעידות אדמה ובתחומים נוספים שבהם אירועים מתרחשים ונקודות נתונים יכולות להיות מוצגות לאורך זמן.
+
+🎓 **ניתוח סדרות זמן**
+
+ניתוח סדרות זמן הוא ניתוח של נתוני סדרות הזמן שהוזכרו לעיל. נתוני סדרות זמן יכולים להופיע בצורות שונות, כולל 'סדרות זמן מופרעות' שמזהות דפוסים בהתפתחות סדרות זמן לפני ואחרי אירוע מפריע. סוג הניתוח הנדרש עבור סדרות הזמן תלוי באופי הנתונים. נתוני סדרות זמן עצמם יכולים להופיע כרצף של מספרים או תווים.
+
+הניתוח שמתבצע משתמש במגוון שיטות, כולל תחום התדר ותחום הזמן, ליניארי ולא ליניארי, ועוד. [למדו עוד](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) על הדרכים הרבות לנתח סוג זה של נתונים.
+
+🎓 **חיזוי סדרות זמן**
+
+חיזוי סדרות זמן הוא השימוש במודל כדי לחזות ערכים עתידיים בהתבסס על דפוסים שהוצגו על ידי נתונים שנאספו בעבר. בעוד שניתן להשתמש במודלים רגרסיביים כדי לחקור נתוני סדרות זמן, עם אינדקסי זמן כמשתני x בגרף, נתונים כאלה עדיף לנתח באמצעות סוגים מיוחדים של מודלים.
+
+נתוני סדרות זמן הם רשימה של תצפיות מסודרות, בניגוד לנתונים שניתן לנתח באמצעות רגרסיה ליניארית. המודל הנפוץ ביותר הוא ARIMA, ראשי תיבות של "Autoregressive Integrated Moving Average".
+
+[מודלי ARIMA](https://online.stat.psu.edu/stat510/lesson/1/1.1) "מקשרים את הערך הנוכחי של סדרה לערכים קודמים ולשגיאות חיזוי קודמות." הם מתאימים ביותר לניתוח נתונים בתחום הזמן, שבו הנתונים מסודרים לאורך זמן.
+
+> ישנם כמה סוגים של מודלי ARIMA, עליהם תוכלו ללמוד [כאן](https://people.duke.edu/~rnau/411arim.htm) ותגעו בהם בשיעור הבא.
+
+בשיעור הבא, תבנו מודל ARIMA באמצעות [סדרות זמן חד-משתניות](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm), שמתמקדות במשתנה אחד שמשנה את ערכו לאורך זמן. דוגמה לסוג זה של נתונים היא [מערך הנתונים הזה](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) שמקליט את ריכוז ה-CO2 החודשי במצפה מאונה לואה:
+
+| 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 |
+
+✅ זיהו את המשתנה שמשתנה לאורך זמן במערך הנתונים הזה
+
+## מאפיינים של נתוני סדרות זמן שיש לקחת בחשבון
+
+כשמסתכלים על נתוני סדרות זמן, ייתכן שתבחינו שיש להם [מאפיינים מסוימים](https://online.stat.psu.edu/stat510/lesson/1/1.1) שצריך לקחת בחשבון ולהפחית כדי להבין טוב יותר את הדפוסים שלהם. אם תחשבו על נתוני סדרות זמן כעל 'אות' פוטנציאלי שברצונכם לנתח, ניתן לחשוב על המאפיינים הללו כעל 'רעש'. לעיתים קרובות תצטרכו להפחית את ה'רעש' הזה על ידי קיזוז חלק מהמאפיינים הללו באמצעות טכניקות סטטיסטיות.
+
+הנה כמה מושגים שכדאי להכיר כדי לעבוד עם סדרות זמן:
+
+🎓 **מגמות**
+
+מגמות מוגדרות כעליות וירידות מדידות לאורך זמן. [קראו עוד](https://machinelearningmastery.com/time-series-trends-in-python). בהקשר של סדרות זמן, מדובר על איך להשתמש ואם יש צורך, להסיר מגמות מסדרות הזמן שלכם.
+
+🎓 **[עונתיות](https://machinelearningmastery.com/time-series-seasonality-with-python/)**
+
+עונתיות מוגדרת כתנודות מחזוריות, כמו למשל עומס בתקופת החגים שעשוי להשפיע על מכירות. [הסתכלו](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm) על איך סוגים שונים של גרפים מציגים עונתיות בנתונים.
+
+🎓 **חריגות**
+
+חריגות הן נקודות נתונים רחוקות מהשונות הסטנדרטית של הנתונים.
+
+🎓 **מחזור ארוך טווח**
+
+בנפרד מעונתיות, נתונים עשויים להציג מחזור ארוך טווח כמו מיתון כלכלי שנמשך יותר משנה.
+
+🎓 **שונות קבועה**
+
+לאורך זמן, חלק מהנתונים מציגים תנודות קבועות, כמו שימוש באנרגיה ביום ובלילה.
+
+🎓 **שינויים פתאומיים**
+
+הנתונים עשויים להציג שינוי פתאומי שדורש ניתוח נוסף. לדוגמה, סגירה פתאומית של עסקים בעקבות COVID גרמה לשינויים בנתונים.
+
+✅ הנה [גרף סדרות זמן לדוגמה](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) שמציג הוצאה יומית על מטבע במשחק לאורך כמה שנים. האם תוכלו לזהות מאפיינים כלשהם מהרשימה לעיל בנתונים הללו?
+
+
+
+## תרגיל - התחלה עם נתוני שימוש באנרגיה
+
+בואו נתחיל ביצירת מודל סדרות זמן לחיזוי שימוש עתידי באנרגיה בהתבסס על שימוש בעבר.
+
+> הנתונים בדוגמה זו נלקחו מתחרות החיזוי GEFCom2014. הם כוללים 3 שנים של נתוני עומס חשמל וטמפרטורה לפי שעה בין השנים 2012 ל-2014.
+>
+> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli and 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. בתיקיית `working` של השיעור הזה, פתחו את הקובץ _notebook.ipynb_. התחילו בהוספת ספריות שיעזרו לכם לטעון ולהציג נתונים
+
+ ```python
+ import os
+ import matplotlib.pyplot as plt
+ from common.utils import load_data
+ %matplotlib inline
+ ```
+
+ שימו לב, אתם משתמשים בקבצים מהתיקייה `common` הכלולה שמגדירה את הסביבה שלכם ומטפלת בהורדת הנתונים.
+
+2. לאחר מכן, בדקו את הנתונים כ-DataFrame על ידי קריאה ל-`load_data()` ו-`head()`:
+
+ ```python
+ data_dir = './data'
+ energy = load_data(data_dir)[['load']]
+ energy.head()
+ ```
+
+ תוכלו לראות שישנם שני עמודות שמייצגות תאריך ועומס:
+
+ | | 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. עכשיו, הציגו את הנתונים בגרף על ידי קריאה ל-`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. עכשיו, הציגו את השבוע הראשון של יולי 2014, על ידי מתן קלט ל-`energy` בתבנית `[מתאריך]: [עד תאריך]`:
+
+ ```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()
+ ```
+
+ 
+
+ גרף יפהפה! הסתכלו על הגרפים הללו ונסו לקבוע אם תוכלו לזהות מאפיינים כלשהם מהרשימה לעיל. מה ניתן להסיק על ידי ויזואליזציה של הנתונים?
+
+בשיעור הבא, תיצרו מודל ARIMA כדי ליצור תחזיות.
+
+---
+
+## 🚀אתגר
+
+צרו רשימה של כל התעשיות ותחומי המחקר שאתם יכולים לחשוב עליהם שיכולים להרוויח מחיזוי סדרות זמן. האם תוכלו לחשוב על יישום של טכניקות אלו באמנויות? בכלכלה? באקולוגיה? בקמעונאות? בתעשייה? בפיננסים? איפה עוד?
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+למרות שלא נכסה אותם כאן, רשתות נוירונים משמשות לעיתים לשיפור שיטות קלאסיות של חיזוי סדרות זמן. קראו עוד על כך [במאמר הזה](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412)
+
+## משימה
+
+[הציגו עוד סדרות זמן](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/1-Introduction/assignment.md b/translations/he/7-TimeSeries/1-Introduction/assignment.md
new file mode 100644
index 00000000..1d7ded71
--- /dev/null
+++ b/translations/he/7-TimeSeries/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# הצגת סדרות זמן נוספות
+
+## הוראות
+
+התחלת ללמוד על חיזוי סדרות זמן על ידי התבוננות בסוג הנתונים שדורשים מודלים מיוחדים אלו. כבר הצגת נתונים הקשורים לאנרגיה. עכשיו, חפש נתונים נוספים שיכולים להפיק תועלת מחיזוי סדרות זמן. מצא שלוש דוגמאות (נסה [Kaggle](https://kaggle.com) ו-[Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)) ויצור מחברת להצגת הנתונים. ציין במחברת כל מאפיין מיוחד שיש לנתונים (עונתיות, שינויים פתאומיים או מגמות אחרות).
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ----------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------ |
+| | שלושה מערכי נתונים מוצגים ומוסברים במחברת | שני מערכי נתונים מוצגים ומוסברים במחברת | מעט מערכי נתונים מוצגים או מוסברים במחברת או שהנתונים שהוצגו אינם מספקים |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/1-Introduction/solution/Julia/README.md b/translations/he/7-TimeSeries/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..78d68308
--- /dev/null
+++ b/translations/he/7-TimeSeries/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. אנו לא נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/1-Introduction/solution/R/README.md b/translations/he/7-TimeSeries/1-Introduction/solution/R/README.md
new file mode 100644
index 00000000..19ae1186
--- /dev/null
+++ b/translations/he/7-TimeSeries/1-Introduction/solution/R/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/2-ARIMA/README.md b/translations/he/7-TimeSeries/2-ARIMA/README.md
new file mode 100644
index 00000000..9b22591e
--- /dev/null
+++ b/translations/he/7-TimeSeries/2-ARIMA/README.md
@@ -0,0 +1,404 @@
+
+# חיזוי סדרות זמן עם ARIMA
+
+בשיעור הקודם, למדתם מעט על חיזוי סדרות זמן וטעינת מערך נתונים שמציג את התנודות בעומס החשמלי לאורך תקופת זמן.
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: מבוא קצר למודלים של ARIMA. הדוגמה נעשתה ב-R, אך הרעיונות הם אוניברסליים.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## מבוא
+
+בשיעור זה, תגלו דרך ספציפית לבנות מודלים עם [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average). מודלים של ARIMA מתאימים במיוחד לנתונים שמציגים [אי-סטציונריות](https://wikipedia.org/wiki/Stationary_process).
+
+## מושגים כלליים
+
+כדי לעבוד עם ARIMA, ישנם כמה מושגים שחשוב להכיר:
+
+- 🎓 **סטציונריות**. בהקשר סטטיסטי, סטציונריות מתייחסת לנתונים שההתפלגות שלהם אינה משתנה כאשר הם מוזזים בזמן. נתונים שאינם סטציונריים מציגים תנודות עקב מגמות שיש להפוך אותן כדי לנתח. עונתיות, למשל, יכולה להכניס תנודות לנתונים וניתן להסיר אותה באמצעות תהליך של 'הבדל עונתי'.
+
+- 🎓 **[הבדלה](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**. הבדלה של נתונים, שוב בהקשר סטטיסטי, מתייחסת לתהליך של הפיכת נתונים שאינם סטציונריים לסטציונריים על ידי הסרת המגמה הלא-קבועה שלהם. "הבדלה מסירה את השינויים ברמת סדרת הזמן, מבטלת מגמות ועונתיות ובכך מייצבת את הממוצע של סדרת הזמן." [מאמר מאת Shixiong et al](https://arxiv.org/abs/1904.07632)
+
+## ARIMA בהקשר של סדרות זמן
+
+בואו נפרק את החלקים של ARIMA כדי להבין טוב יותר כיצד הוא עוזר לנו לבנות מודלים של סדרות זמן ולבצע תחזיות.
+
+- **AR - עבור AutoRegressive**. מודלים אוטורגרסיביים, כפי שהשם מרמז, מסתכלים 'אחורה' בזמן כדי לנתח ערכים קודמים בנתונים שלכם ולבצע הנחות לגביהם. ערכים קודמים אלו נקראים 'פיגורים'. דוגמה לכך תהיה נתונים שמציגים מכירות חודשיות של עפרונות. סך המכירות של כל חודש ייחשב כ'משתנה מתפתח' במערך הנתונים. מודל זה נבנה כאשר "המשתנה המתפתח של העניין מוערך על ערכיו המפגרים (כלומר, הקודמים)." [ויקיפדיה](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)
+
+- **I - עבור Integrated**. בניגוד למודלים דומים כמו 'ARMA', ה-'I' ב-ARIMA מתייחס להיבט ה*[משולב](https://wikipedia.org/wiki/Order_of_integration)* שלו. הנתונים 'משולבים' כאשר מיושמים שלבי הבדלה כדי לבטל אי-סטציונריות.
+
+- **MA - עבור Moving Average**. ההיבט של [ממוצע נע](https://wikipedia.org/wiki/Moving-average_model) במודל זה מתייחס למשתנה הפלט שנקבע על ידי התבוננות בערכים הנוכחיים והעבריים של פיגורים.
+
+שורה תחתונה: ARIMA משמש כדי להתאים מודל בצורה הקרובה ביותר לנתונים המיוחדים של סדרות זמן.
+
+## תרגיל - בניית מודל ARIMA
+
+פתחו את תיקיית [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) בשיעור זה ומצאו את הקובץ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb).
+
+1. הריצו את המחברת כדי לטעון את ספריית Python `statsmodels`; תזדקקו לה עבור מודלים של ARIMA.
+
+1. טענו ספריות נחוצות.
+
+1. כעת, טענו מספר ספריות נוספות שימושיות לשרטוט נתונים:
+
+ ```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. טענו את הנתונים מקובץ `/data/energy.csv` לתוך DataFrame של Pandas והסתכלו עליהם:
+
+ ```python
+ energy = load_data('./data')[['load']]
+ energy.head(10)
+ ```
+
+1. שרטטו את כל נתוני האנרגיה הזמינים מינואר 2012 עד דצמבר 2014. לא אמורות להיות הפתעות, כפי שראינו את הנתונים בשיעור הקודם:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ כעת, בואו נבנה מודל!
+
+### יצירת מערכי נתונים לאימון ובדיקה
+
+כעת הנתונים שלכם טעונים, כך שתוכלו להפריד אותם למערכי אימון ובדיקה. תאמנו את המודל שלכם על מערך האימון. כרגיל, לאחר שהמודל סיים את האימון, תעריכו את דיוקו באמצעות מערך הבדיקה. עליכם לוודא שמערך הבדיקה מכסה תקופה מאוחרת יותר בזמן ממערך האימון כדי להבטיח שהמודל לא יקבל מידע מתקופות זמן עתידיות.
+
+1. הקצו תקופה של חודשיים מה-1 בספטמבר עד ה-31 באוקטובר 2014 למערך האימון. מערך הבדיקה יכלול את התקופה של חודשיים מה-1 בנובמבר עד ה-31 בדצמבר 2014:
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+ מכיוון שנתונים אלו משקפים את צריכת האנרגיה היומית, ישנו דפוס עונתי חזק, אך הצריכה דומה ביותר לצריכה בימים האחרונים.
+
+1. ויזואליזציה של ההבדלים:
+
+ ```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()
+ ```
+
+ 
+
+ לכן, שימוש בחלון זמן קטן יחסית לאימון הנתונים אמור להיות מספיק.
+
+ > הערה: מכיוון שהפונקציה שבה אנו משתמשים להתאמת מודל ARIMA משתמשת באימות בתוך הדגימה במהלך ההתאמה, נוותר על נתוני אימות.
+
+### הכנת הנתונים לאימון
+
+כעת, עליכם להכין את הנתונים לאימון על ידי ביצוע סינון וסקיילינג של הנתונים שלכם. סננו את מערך הנתונים שלכם כך שיכלול רק את התקופות והעמודות הנדרשות, וסקיילינג כדי להבטיח שהנתונים יוקרנו בטווח 0,1.
+
+1. סננו את מערך הנתונים המקורי כך שיכלול רק את התקופות שהוזכרו לכל מערך ורק את העמודה הנדרשת 'load' בנוסף לתאריך:
+
+ ```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)
+ ```
+
+1. בצעו סקיילינג לנתונים כך שיהיו בטווח (0, 1).
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ train.head(10)
+ ```
+
+1. ויזואליזציה של הנתונים המקוריים מול הנתונים המוקנים:
+
+ ```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()
+ ```
+
+ 
+
+ > הנתונים המקוריים
+
+ 
+
+ > הנתונים המוקנים
+
+1. כעת, לאחר שכיילתם את הנתונים המוקנים, תוכלו לכייל את נתוני הבדיקה:
+
+ ```python
+ test['load'] = scaler.transform(test)
+ test.head()
+ ```
+
+### יישום ARIMA
+
+הגיע הזמן ליישם ARIMA! כעת תשתמשו בספריית `statsmodels` שהתקנתם קודם.
+
+כעת עליכם לבצע מספר שלבים:
+
+ 1. הגדירו את המודל על ידי קריאה ל-`SARIMAX()` והעברת פרמטרי המודל: פרמטרים p, d, ו-q, ופרמטרים P, D, ו-Q.
+ 2. הכינו את המודל לנתוני האימון על ידי קריאה לפונקציה fit().
+ 3. בצעו תחזיות על ידי קריאה לפונקציה `forecast()` וציון מספר הצעדים (ה'אופק') לתחזית.
+
+> 🎓 מה משמעות כל הפרמטרים הללו? במודל ARIMA ישנם 3 פרמטרים המשמשים לסייע במידול ההיבטים המרכזיים של סדרת זמן: עונתיות, מגמה ורעש. הפרמטרים הם:
+
+`p`: הפרמטר הקשור להיבט האוטורגרסיבי של המודל, שמשלב ערכים *עבריים*.
+`d`: הפרמטר הקשור לחלק המשולב של המודל, שמשפיע על כמות ה-*הבדלה* (🎓 זוכרים הבדלה 👆?) שיש ליישם על סדרת זמן.
+`q`: הפרמטר הקשור לחלק הממוצע הנע של המודל.
+
+> הערה: אם לנתונים שלכם יש היבט עונתי - כמו במקרה זה - , אנו משתמשים במודל ARIMA עונתי (SARIMA). במקרה זה עליכם להשתמש בקבוצת פרמטרים נוספת: `P`, `D`, ו-`Q` שמתארים את אותם קשרים כמו `p`, `d`, ו-`q`, אך מתייחסים לרכיבים העונתיים של המודל.
+
+1. התחילו בהגדרת ערך האופק המועדף עליכם. בואו ננסה 3 שעות:
+
+ ```python
+ # Specify the number of steps to forecast ahead
+ HORIZON = 3
+ print('Forecasting horizon:', HORIZON, 'hours')
+ ```
+
+ בחירת הערכים הטובים ביותר עבור פרמטרי מודל ARIMA יכולה להיות מאתגרת מכיוון שהיא מעט סובייקטיבית וגוזלת זמן. ייתכן שתרצו לשקול שימוש בפונקציה `auto_arima()` מתוך ספריית [`pyramid`](https://alkaline-ml.com/pmdarima/0.9.0/modules/generated/pyramid.arima.auto_arima.html).
+
+1. לעת עתה נסו כמה בחירות ידניות כדי למצוא מודל טוב.
+
+ ```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())
+ ```
+
+ טבלה של תוצאות מודפסת.
+
+בניתם את המודל הראשון שלכם! כעת עלינו למצוא דרך להעריך אותו.
+
+### הערכת המודל שלכם
+
+כדי להעריך את המודל שלכם, תוכלו לבצע את מה שנקרא `walk forward` validation. בפועל, מודלים של סדרות זמן מאומנים מחדש בכל פעם שנתונים חדשים הופכים זמינים. זה מאפשר למודל לבצע את התחזית הטובה ביותר בכל שלב זמן.
+
+מתחילים בתחילת סדרת הזמן באמצעות טכניקה זו, מאמנים את המודל על מערך נתוני האימון. לאחר מכן מבצעים תחזית על שלב הזמן הבא. התחזית מוערכת מול הערך הידוע. מערך האימון מורחב כך שיכלול את הערך הידוע והתהליך חוזר על עצמו.
+
+> הערה: עליכם לשמור על חלון מערך האימון קבוע לצורך אימון יעיל יותר כך שבכל פעם שאתם מוסיפים תצפית חדשה למערך האימון, אתם מסירים את התצפית מתחילת המערך.
+
+תהליך זה מספק הערכה חזקה יותר של איך המודל יפעל בפועל. עם זאת, הוא מגיע בעלות חישובית של יצירת כל כך הרבה מודלים. זה מקובל אם הנתונים קטנים או אם המודל פשוט, אך יכול להיות בעייתי בקנה מידה גדול.
+
+Walk-forward validation הוא תקן הזהב להערכת מודלים של סדרות זמן ומומלץ לפרויקטים שלכם.
+
+1. ראשית, צרו נקודת נתוני בדיקה עבור כל שלב אופק.
+
+ ```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 |
+
+ הנתונים מוזזים אופקית בהתאם לנקודת האופק שלהם.
+
+1. בצעו תחזיות על נתוני הבדיקה שלכם באמצעות גישה זו של חלון הזזה בלולאה בגודל אורך נתוני הבדיקה:
+
+ ```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)
+ ```
+
+ תוכלו לצפות באימון מתרחש:
+
+ ```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. השוו את התחזיות לעומס בפועל:
+
+ ```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()
+ ```
+
+ פלט
+ | | | 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 |
+
+ התבוננו בתחזית הנתונים השעתית, בהשוואה לעומס בפועל. עד כמה זה מדויק?
+
+### בדיקת דיוק המודל
+
+בדקו את דיוק המודל שלכם על ידי בדיקת שגיאת האחוז הממוצעת המוחלטת (MAPE) שלו על כל התחזיות.
+> **🧮 הצג לי את המתמטיקה**
+>
+> 
+>
+> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) משמש להציג את דיוק התחזית כיחס שמוגדר על ידי הנוסחה לעיל. ההפרש בין הערך האמיתי לערך החזוי מחולק בערך האמיתי.
+> "הערך המוחלט בחישוב זה מסוכם עבור כל נקודת תחזית בזמן ומחולק במספר הנקודות המותאמות n." [ויקיפדיה](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
+1. כתיבת משוואה בקוד:
+
+ ```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. חישוב MAPE של צעד אחד:
+
+ ```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 של תחזית צעד אחד: 0.5570581332313952 %
+
+1. הדפסת MAPE של תחזית רב-שלבית:
+
+ ```python
+ print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%')
+ ```
+
+ ```output
+ Multi-step forecast MAPE: 1.1460048657704118 %
+ ```
+
+ מספר נמוך הוא הטוב ביותר: יש לקחת בחשבון שתחזית עם MAPE של 10 היא תחזית עם סטייה של 10%.
+
+1. אבל כמו תמיד, קל יותר לראות מדידה כזו של דיוק באופן חזותי, אז בואו נשרטט את זה:
+
+ ```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()
+ ```
+
+ 
+
+🏆 גרף יפה מאוד, שמציג מודל עם דיוק טוב. עבודה מצוינת!
+
+---
+
+## 🚀אתגר
+
+חקרו את הדרכים לבחון את דיוקו של מודל סדרת זמן. בשיעור זה נגענו ב-MAPE, אבל האם יש שיטות נוספות שתוכלו להשתמש בהן? חקרו אותן והוסיפו הערות. מסמך מועיל ניתן למצוא [כאן](https://otexts.com/fpp2/accuracy.html)
+
+## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+שיעור זה נוגע רק ביסודות של תחזיות סדרת זמן עם ARIMA. הקדישו זמן להעמיק את הידע שלכם על ידי חקר [מאגר זה](https://microsoft.github.io/forecasting/) וסוגי המודלים השונים שבו כדי ללמוד דרכים נוספות לבנות מודלים של סדרות זמן.
+
+## משימה
+
+[מודל ARIMA חדש](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/2-ARIMA/assignment.md b/translations/he/7-TimeSeries/2-ARIMA/assignment.md
new file mode 100644
index 00000000..cd3ae713
--- /dev/null
+++ b/translations/he/7-TimeSeries/2-ARIMA/assignment.md
@@ -0,0 +1,25 @@
+
+# מודל ARIMA חדש
+
+## הוראות
+
+עכשיו, לאחר שבניתם מודל ARIMA, בנו מודל חדש עם נתונים חדשים (נסו אחד מ[מאגרי הנתונים האלה של Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). תעדו את העבודה שלכם במחברת, בצעו ויזואליזציה לנתונים ולמודל שלכם, ובדקו את דיוקו באמצעות MAPE.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ---------------------------------- |
+| | מוצגת מחברת עם מודל ARIMA חדש שנבנה, נבדק והוסבר עם ויזואליזציות ודיוק שצוין. | המחברת המוצגת אינה מתועדת או מכילה שגיאות | מוצגת מחברת לא מלאה |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/2-ARIMA/solution/Julia/README.md b/translations/he/7-TimeSeries/2-ARIMA/solution/Julia/README.md
new file mode 100644
index 00000000..136caf89
--- /dev/null
+++ b/translations/he/7-TimeSeries/2-ARIMA/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/2-ARIMA/solution/R/README.md b/translations/he/7-TimeSeries/2-ARIMA/solution/R/README.md
new file mode 100644
index 00000000..4a30092d
--- /dev/null
+++ b/translations/he/7-TimeSeries/2-ARIMA/solution/R/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/3-SVR/README.md b/translations/he/7-TimeSeries/3-SVR/README.md
new file mode 100644
index 00000000..e134637b
--- /dev/null
+++ b/translations/he/7-TimeSeries/3-SVR/README.md
@@ -0,0 +1,400 @@
+
+# חיזוי סדרות זמן עם Support Vector Regressor
+
+בשיעור הקודם, למדת כיצד להשתמש במודל ARIMA כדי לבצע תחזיות של סדרות זמן. עכשיו תכיר את מודל Support Vector Regressor, שהוא מודל רגרסיה המשמש לחיזוי נתונים רציפים.
+
+## [מבחן מקדים](https://ff-quizzes.netlify.app/en/ml/)
+
+## מבוא
+
+בשיעור זה, תגלו דרך ספציפית לבנות מודלים עם [**SVM**: **S**upport **V**ector **M**achine](https://en.wikipedia.org/wiki/Support-vector_machine) עבור רגרסיה, או **SVR: Support Vector Regressor**.
+
+### SVR בהקשר של סדרות זמן [^1]
+
+לפני שנבין את החשיבות של SVR בחיזוי סדרות זמן, הנה כמה מושגים חשובים שעליכם להכיר:
+
+- **רגרסיה:** טכניקת למידה מונחית לחיזוי ערכים רציפים מתוך קבוצת נתונים נתונה. הרעיון הוא להתאים עקומה (או קו) במרחב התכונות שיש לה את המספר המרבי של נקודות נתונים. [לחצו כאן](https://en.wikipedia.org/wiki/Regression_analysis) למידע נוסף.
+- **Support Vector Machine (SVM):** סוג של מודל למידת מכונה מונחית המשמש לסיווג, רגרסיה וזיהוי חריגות. המודל הוא היפר-מישור במרחב התכונות, שבמקרה של סיווג משמש כגבול, ובמקרה של רגרסיה משמש כקו ההתאמה הטוב ביותר. ב-SVM, פונקציית Kernel משמשת בדרך כלל כדי להפוך את קבוצת הנתונים למרחב בעל מספר ממדים גבוה יותר, כך שניתן להפריד אותם בקלות. [לחצו כאן](https://en.wikipedia.org/wiki/Support-vector_machine) למידע נוסף על SVMs.
+- **Support Vector Regressor (SVR):** סוג של SVM, שמטרתו למצוא את קו ההתאמה הטוב ביותר (שבמקרה של SVM הוא היפר-מישור) שיש לו את המספר המרבי של נקודות נתונים.
+
+### למה SVR? [^1]
+
+בשיעור הקודם למדתם על ARIMA, שהוא שיטה סטטיסטית ליניארית מוצלחת לחיזוי נתוני סדרות זמן. עם זאת, במקרים רבים, נתוני סדרות זמן מכילים *אי-ליניאריות*, שלא ניתן למפות באמצעות מודלים ליניאריים. במקרים כאלה, היכולת של SVM להתחשב באי-ליניאריות בנתונים עבור משימות רגרסיה הופכת את SVR למוצלח בחיזוי סדרות זמן.
+
+## תרגיל - בניית מודל SVR
+
+השלבים הראשונים להכנת הנתונים זהים לאלה של השיעור הקודם על [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA).
+
+פתחו את [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/3-SVR/working) בתיקייה של שיעור זה ומצאו את הקובץ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/3-SVR/working/notebook.ipynb).[^2]
+
+1. הריצו את המחברת וייבאו את הספריות הנדרשות: [^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. טענו את הנתונים מתוך הקובץ `/data/energy.csv` לתוך DataFrame של Pandas והסתכלו עליהם: [^2]
+
+ ```python
+ energy = load_data('../../data')[['load']]
+ ```
+
+3. צרו גרף של כל נתוני האנרגיה הזמינים מינואר 2012 עד דצמבר 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()
+ ```
+
+ 
+
+ עכשיו, בואו נבנה את מודל ה-SVR שלנו.
+
+### יצירת קבוצות אימון ובדיקה
+
+עכשיו הנתונים שלכם טעונים, כך שתוכלו להפריד אותם לקבוצות אימון ובדיקה. לאחר מכן תעצבו מחדש את הנתונים כדי ליצור קבוצת נתונים מבוססת צעדי זמן, שתידרש עבור SVR. תאמנו את המודל שלכם על קבוצת האימון. לאחר שהמודל סיים את האימון, תעריכו את דיוקו על קבוצת האימון, קבוצת הבדיקה ולאחר מכן על כל קבוצת הנתונים כדי לראות את הביצועים הכוללים. עליכם לוודא שקבוצת הבדיקה מכסה תקופה מאוחרת יותר בזמן מקבוצת האימון כדי להבטיח שהמודל לא יקבל מידע מתקופות זמן עתידיות [^2] (מצב המכונה *Overfitting*).
+
+1. הקצו תקופה של חודשיים מה-1 בספטמבר עד ה-31 באוקטובר 2014 לקבוצת האימון. קבוצת הבדיקה תכלול את התקופה של חודשיים מה-1 בנובמבר עד ה-31 בדצמבר 2014: [^2]
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+2. הציגו את ההבדלים: [^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()
+ ```
+
+ 
+
+
+
+### הכנת הנתונים לאימון
+
+עכשיו, עליכם להכין את הנתונים לאימון על ידי ביצוע סינון וסקיילינג של הנתונים שלכם. סננו את קבוצת הנתונים כך שתכלול רק את התקופות והעמודות הדרושות, וסקיילינג כדי להבטיח שהנתונים יוקרנו בטווח 0,1.
+
+1. סננו את קבוצת הנתונים המקורית כך שתכלול רק את התקופות שהוזכרו לכל קבוצה ותכלול רק את העמודה הדרושה 'load' בנוסף לתאריך: [^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. בצעו סקיילינג לנתוני האימון כך שיהיו בטווח (0, 1): [^2]
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ ```
+
+4. עכשיו, בצעו סקיילינג לנתוני הבדיקה: [^2]
+
+ ```python
+ test['load'] = scaler.transform(test)
+ ```
+
+### יצירת נתונים עם צעדי זמן [^1]
+
+עבור SVR, אתם ממירים את נתוני הקלט לצורה `[batch, timesteps]`. לכן, תעצבו מחדש את `train_data` ו-`test_data` כך שתהיה ממד חדש שמתייחס לצעדי הזמן.
+
+```python
+# Converting to numpy arrays
+train_data = train.values
+test_data = test.values
+```
+
+לדוגמה זו, ניקח `timesteps = 5`. כך שהקלטים למודל הם הנתונים עבור 4 צעדי הזמן הראשונים, והפלט יהיה הנתונים עבור צעד הזמן החמישי.
+
+```python
+timesteps=5
+```
+
+המרת נתוני האימון לטנסור דו-ממדי באמצעות 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)
+```
+
+המרת נתוני הבדיקה לטנסור דו-ממדי:
+
+```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)
+```
+
+בחירת קלטים ופלטים מנתוני האימון והבדיקה:
+
+```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 [^1]
+
+עכשיו, הגיע הזמן ליישם SVR. לקריאה נוספת על יישום זה, תוכלו לעיין ב-[תיעוד הזה](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html). עבור היישום שלנו, נבצע את השלבים הבאים:
+
+ 1. הגדירו את המודל על ידי קריאה ל-`SVR()` והעברת היפר-פרמטרים של המודל: kernel, gamma, c ו-epsilon
+ 2. הכינו את המודל לנתוני האימון על ידי קריאה לפונקציה `fit()`
+ 3. בצעו תחזיות על ידי קריאה לפונקציה `predict()`
+
+עכשיו ניצור מודל SVR. כאן נשתמש ב-[RBF kernel](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel), ונגדיר את היפר-פרמטרים gamma, C ו-epsilon כ-0.5, 10 ו-0.05 בהתאמה.
+
+```python
+model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05)
+```
+
+#### התאמת המודל לנתוני האימון [^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)
+```
+
+#### ביצוע תחזיות עם המודל [^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)
+```
+
+יצרתם את ה-SVR שלכם! עכשיו נצטרך להעריך אותו.
+
+### הערכת המודל שלכם [^1]
+
+להערכה, קודם כל נחזיר את הנתונים לסקייל המקורי שלנו. לאחר מכן, כדי לבדוק את הביצועים, ניצור גרף של סדרת הזמן המקורית והתחזית, ונדפיס גם את תוצאת ה-MAPE.
+
+החזירו את הפלטים המנובאים והמקוריים לסקייל המקורי:
+
+```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))
+```
+
+#### בדיקת ביצועי המודל על נתוני האימון והבדיקה [^1]
+
+נחלץ את חותמות הזמן מקבוצת הנתונים כדי להציג בציר ה-x של הגרף שלנו. שימו לב שאנחנו משתמשים ב-```timesteps-1``` הערכים הראשונים כקלט עבור הפלט הראשון, כך שחותמות הזמן עבור הפלט יתחילו לאחר מכן.
+
+```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
+```
+
+צרו גרף של התחזיות עבור נתוני האימון:
+
+```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 עבור נתוני האימון
+
+```python
+print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')
+```
+
+```output
+MAPE for training data: 1.7195710200875551 %
+```
+
+צרו גרף של התחזיות עבור נתוני הבדיקה
+
+```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 עבור נתוני הבדיקה
+
+```python
+print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')
+```
+
+```output
+MAPE for testing data: 1.2623790187854018 %
+```
+
+🏆 קיבלתם תוצאה טובה מאוד על קבוצת הבדיקה!
+
+### בדיקת ביצועי המודל על כל קבוצת הנתונים [^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 %
+```
+
+
+
+🏆 גרפים מרשימים מאוד, שמראים מודל עם דיוק טוב. כל הכבוד!
+
+---
+
+## 🚀אתגר
+
+- נסו לשנות את היפר-פרמטרים (gamma, C, epsilon) בזמן יצירת המודל והעריכו את הנתונים כדי לראות איזה סט של היפר-פרמטרים נותן את התוצאות הטובות ביותר על נתוני הבדיקה. למידע נוסף על היפר-פרמטרים אלה, תוכלו לעיין בתיעוד [כאן](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel).
+- נסו להשתמש בפונקציות kernel שונות עבור המודל ונתחו את ביצועיהן על קבוצת הנתונים. מסמך מועיל ניתן למצוא [כאן](https://scikit-learn.org/stable/modules/svm.html#kernel-functions).
+- נסו להשתמש בערכים שונים עבור `timesteps` כדי שהמודל יוכל להסתכל אחורה ולבצע תחזית.
+
+## [מבחן מסכם](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+שיעור זה נועד להציג את השימוש ב-SVR לחיזוי סדרות זמן. לקריאה נוספת על SVR, תוכלו לעיין ב-[בלוג הזה](https://www.analyticsvidhya.com/blog/2020/03/support-vector-regression-tutorial-for-machine-learning/). תיעוד זה ב-[scikit-learn](https://scikit-learn.org/stable/modules/svm.html) מספק הסבר מקיף יותר על SVMs באופן כללי, [SVRs](https://scikit-learn.org/stable/modules/svm.html#regression) וגם פרטי יישום אחרים כמו [פונקציות kernel](https://scikit-learn.org/stable/modules/svm.html#kernel-functions) שונות שניתן להשתמש בהן, והפרמטרים שלהן.
+
+## משימה
+
+[מודל SVR חדש](assignment.md)
+
+
+
+## קרדיטים
+
+
+[^1]: הטקסט, הקוד והתוצאות בסעיף זה נתרמו על ידי [@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD)
+[^2]: הטקסט, הקוד והתוצאות בסעיף זה נלקחו מ-[ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/3-SVR/assignment.md b/translations/he/7-TimeSeries/3-SVR/assignment.md
new file mode 100644
index 00000000..4dd8aff3
--- /dev/null
+++ b/translations/he/7-TimeSeries/3-SVR/assignment.md
@@ -0,0 +1,29 @@
+
+# מודל SVR חדש
+
+## הוראות [^1]
+
+עכשיו כשיצרתם מודל SVR, צרו מודל חדש עם נתונים חדשים (נסו אחד מ[מאגרי הנתונים האלה מדוק](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). תעדו את העבודה שלכם במחברת, ויזואליזו את הנתונים ואת המודל שלכם, ובדקו את דיוקו באמצעות גרפים מתאימים ו-MAPE. בנוסף, נסו לשנות את ההיפר-פרמטרים השונים וגם להשתמש בערכים שונים עבור שלבי הזמן.
+
+## קריטריונים להערכה [^1]
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ---------------------------------------------------------- | ----------------------------------------------------- | ---------------------------- |
+| | מוצגת מחברת עם מודל SVR שנבנה, נבדק והוסבר עם ויזואליזציות ודיוק מצוין. | המחברת המוצגת אינה מתועדת או מכילה שגיאות. | מוצגת מחברת לא מלאה |
+
+
+
+[^1]: הטקסט בסעיף זה מבוסס על [המשימה מ-ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/7-TimeSeries/README.md b/translations/he/7-TimeSeries/README.md
new file mode 100644
index 00000000..85ecc72e
--- /dev/null
+++ b/translations/he/7-TimeSeries/README.md
@@ -0,0 +1,37 @@
+
+# מבוא לחיזוי סדרות זמן
+
+מהו חיזוי סדרות זמן? מדובר בניבוי אירועים עתידיים על ידי ניתוח מגמות מהעבר.
+
+## נושא אזורי: שימוש עולמי בחשמל ✨
+
+בשני השיעורים הללו, תיחשפו לחיזוי סדרות זמן, תחום פחות מוכר בלמידת מכונה, אך בעל ערך רב ליישומים בתעשייה ובעסקים, בין היתר. למרות שניתן להשתמש ברשתות עצביות כדי לשפר את יעילות המודלים הללו, נלמד אותם בהקשר של למידת מכונה קלאסית, כאשר המודלים מסייעים לנבא ביצועים עתידיים בהתבסס על העבר.
+
+המיקוד האזורי שלנו הוא שימוש בחשמל בעולם, מערך נתונים מעניין ללמידה על חיזוי צריכת חשמל עתידית בהתבסס על דפוסי עומס מהעבר. ניתן לראות כיצד סוג כזה של חיזוי יכול להיות מועיל מאוד בסביבה עסקית.
+
+
+
+תמונה מאת [Peddi Sai hrithik](https://unsplash.com/@shutter_log?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) של עמודי חשמל על כביש ברג'סטאן ב-[Unsplash](https://unsplash.com/s/photos/electric-india?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
+
+## שיעורים
+
+1. [מבוא לחיזוי סדרות זמן](1-Introduction/README.md)
+2. [בניית מודלים ARIMA לחיזוי סדרות זמן](2-ARIMA/README.md)
+3. [בניית Support Vector Regressor לחיזוי סדרות זמן](3-SVR/README.md)
+
+## קרדיטים
+
+"מבוא לחיזוי סדרות זמן" נכתב עם ⚡️ על ידי [Francesca Lazzeri](https://twitter.com/frlazzeri) ו-[Jen Looper](https://twitter.com/jenlooper). המחברות הופיעו לראשונה באופן מקוון ב-[מאגר Azure "Deep Learning For Time Series"](https://github.com/Azure/DeepLearningForTimeSeriesForecasting) שנכתב במקור על ידי Francesca Lazzeri. השיעור על SVR נכתב על ידי [Anirban Mukherjee](https://github.com/AnirbanMukherjeeXD)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/1-QLearning/README.md b/translations/he/8-Reinforcement/1-QLearning/README.md
new file mode 100644
index 00000000..72052493
--- /dev/null
+++ b/translations/he/8-Reinforcement/1-QLearning/README.md
@@ -0,0 +1,256 @@
+
+# מבוא ללמידת חיזוק ולמידת Q
+
+
+> סקצ'נוט מאת [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+למידת חיזוק כוללת שלושה מושגים חשובים: הסוכן, מצבים מסוימים, ומערך פעולות לכל מצב. על ידי ביצוע פעולה במצב מסוים, הסוכן מקבל תגמול. דמיינו שוב את משחק המחשב סופר מריו. אתם מריו, נמצאים ברמת משחק, עומדים ליד קצה צוק. מעליכם יש מטבע. אתם, בתור מריו, ברמת משחק, במיקום ספציפי... זהו המצב שלכם. צעד אחד ימינה (פעולה) יוביל אתכם מעבר לקצה, וזה יעניק לכם ניקוד נמוך. לעומת זאת, לחיצה על כפתור הקפיצה תאפשר לכם לצבור נקודה ולהישאר בחיים. זהו תוצאה חיובית שצריכה להעניק לכם ניקוד חיובי.
+
+באמצעות למידת חיזוק וסימולטור (המשחק), ניתן ללמוד כיצד לשחק את המשחק כדי למקסם את התגמול, כלומר להישאר בחיים ולצבור כמה שיותר נקודות.
+
+[](https://www.youtube.com/watch?v=lDq_en8RNOo)
+
+> 🎥 לחצו על התמונה למעלה כדי לשמוע את דמיטרי מדבר על למידת חיזוק
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## דרישות מוקדמות והגדרות
+
+בשיעור זה, נתנסה בקוד בפייתון. עליכם להיות מסוגלים להריץ את הקוד של Jupyter Notebook מהשיעור הזה, בין אם במחשב שלכם או בענן.
+
+ניתן לפתוח את [מחברת השיעור](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) ולעבור על השיעור כדי לבנות.
+
+> **הערה:** אם אתם פותחים את הקוד מהענן, תצטרכו גם להוריד את הקובץ [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), שמשמש בקוד המחברת. הוסיפו אותו לאותה תיקייה כמו המחברת.
+
+## מבוא
+
+בשיעור זה, נחקור את עולמו של **[פטר והזאב](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)**, בהשראת אגדה מוזיקלית של המלחין הרוסי [סרגיי פרוקופייב](https://en.wikipedia.org/wiki/Sergei_Prokofiev). נשתמש ב**למידת חיזוק** כדי לאפשר לפטר לחקור את סביבתו, לאסוף תפוחים טעימים ולהימנע ממפגש עם הזאב.
+
+**למידת חיזוק** (RL) היא טכניקת למידה שמאפשרת לנו ללמוד התנהגות אופטימלית של **סוכן** בסביבה מסוימת על ידי ביצוע ניסויים רבים. סוכן בסביבה זו צריך שיהיה לו **מטרה**, שמוגדרת על ידי **פונקציית תגמול**.
+
+## הסביבה
+
+לצורך הפשטות, נניח שעולמו של פטר הוא לוח מרובע בגודל `width` x `height`, כמו זה:
+
+
+
+כל תא בלוח הזה יכול להיות:
+
+* **קרקע**, שעליה פטר ויצורים אחרים יכולים ללכת.
+* **מים**, שעליהם כמובן אי אפשר ללכת.
+* **עץ** או **דשא**, מקום שבו אפשר לנוח.
+* **תפוח**, שמייצג משהו שפטר ישמח למצוא כדי להאכיל את עצמו.
+* **זאב**, שהוא מסוכן ויש להימנע ממנו.
+
+ישנו מודול פייתון נפרד, [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), שמכיל את הקוד לעבודה עם הסביבה הזו. מכיוון שהקוד הזה אינו חשוב להבנת המושגים שלנו, נייבא את המודול ונשתמש בו כדי ליצור את הלוח לדוגמה (בלוק קוד 1):
+
+```python
+from rlboard import *
+
+width, height = 8,8
+m = Board(width,height)
+m.randomize(seed=13)
+m.plot()
+```
+
+הקוד הזה אמור להדפיס תמונה של הסביבה הדומה לזו שמוצגת למעלה.
+
+## פעולות ומדיניות
+
+בדוגמה שלנו, המטרה של פטר תהיה למצוא תפוח, תוך הימנעות מהזאב ומכשולים אחרים. לשם כך, הוא יכול למעשה להסתובב עד שימצא תפוח.
+
+לכן, בכל מיקום, הוא יכול לבחור בין אחת מהפעולות הבאות: למעלה, למטה, שמאלה וימינה.
+
+נגדיר את הפעולות הללו כמילון, ונמפה אותן לזוגות של שינויי קואורדינטות מתאימים. לדוגמה, תנועה ימינה (`R`) תתאים לזוג `(1,0)`. (בלוק קוד 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()) }
+```
+
+לסיכום, האסטרטגיה והמטרה של התרחיש הזה הם כדלקמן:
+
+- **האסטרטגיה**, של הסוכן שלנו (פטר) מוגדרת על ידי מה שנקרא **מדיניות**. מדיניות היא פונקציה שמחזירה את הפעולה בכל מצב נתון. במקרה שלנו, מצב הבעיה מיוצג על ידי הלוח, כולל המיקום הנוכחי של השחקן.
+
+- **המטרה**, של למידת החיזוק היא בסופו של דבר ללמוד מדיניות טובה שתאפשר לנו לפתור את הבעיה ביעילות. עם זאת, כבסיס, נשקול את המדיניות הפשוטה ביותר שנקראת **הליכה אקראית**.
+
+## הליכה אקראית
+
+בואו נפתור את הבעיה שלנו תחילה על ידי יישום אסטרטגיית הליכה אקראית. עם הליכה אקראית, נבחר באופן אקראי את הפעולה הבאה מתוך הפעולות המותרות, עד שנגיע לתפוח (בלוק קוד 3).
+
+1. יישמו את ההליכה האקראית עם הקוד הבא:
+
+ ```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)
+ ```
+
+ הקריאה ל-`walk` אמורה להחזיר את אורך המסלול המתאים, שיכול להשתנות מריצה אחת לאחרת.
+
+1. הריצו את ניסוי ההליכה מספר פעמים (נניח, 100), והדפיסו את הסטטיסטיקות המתקבלות (בלוק קוד 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)
+ ```
+
+ שימו לב שאורך המסלול הממוצע הוא סביב 30-40 צעדים, שזה די הרבה, בהתחשב בכך שהמרחק הממוצע לתפוח הקרוב ביותר הוא סביב 5-6 צעדים.
+
+ תוכלו גם לראות כיצד נראית תנועתו של פטר במהלך ההליכה האקראית:
+
+ 
+
+## פונקציית תגמול
+
+כדי להפוך את המדיניות שלנו לאינטליגנטית יותר, עלינו להבין אילו מהלכים הם "טובים" יותר מאחרים. לשם כך, עלינו להגדיר את המטרה שלנו.
+
+המטרה יכולה להיות מוגדרת במונחים של **פונקציית תגמול**, שתחזיר ערך ניקוד עבור כל מצב. ככל שהמספר גבוה יותר, כך פונקציית התגמול טובה יותר. (בלוק קוד 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
+```
+
+דבר מעניין לגבי פונקציות תגמול הוא שבמקרים רבים, *אנו מקבלים תגמול משמעותי רק בסוף המשחק*. משמעות הדבר היא שהאלגוריתם שלנו צריך לזכור "צעדים טובים" שהובילו לתגמול חיובי בסוף, ולהגדיל את חשיבותם. באופן דומה, כל המהלכים שמובילים לתוצאות רעות צריכים להיות מדוכאים.
+
+## למידת Q
+
+האלגוריתם שנדון בו כאן נקרא **למידת Q**. באלגוריתם זה, המדיניות מוגדרת על ידי פונקציה (או מבנה נתונים) שנקראת **טבלת Q**. היא מתעדת את "הטוב" של כל אחת מהפעולות במצב נתון.
+
+היא נקראת טבלת Q מכיוון שלעתים קרובות נוח לייצג אותה כטבלה, או מערך רב-ממדי. מכיוון שלוח המשחק שלנו הוא בגודל `width` x `height`, נוכל לייצג את טבלת Q באמצעות מערך numpy עם צורה `width` x `height` x `len(actions)`: (בלוק קוד 6)
+
+```python
+Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)
+```
+
+שימו לב שאנו מאתחלים את כל הערכים בטבלת Q עם ערך שווה, במקרה שלנו - 0.25. זה תואם למדיניות "הליכה אקראית", מכיוון שכל המהלכים בכל מצב הם טובים באותה מידה. נוכל להעביר את טבלת Q לפונקציית `plot` כדי להמחיש את הטבלה על הלוח: `m.plot(Q)`.
+
+
+
+במרכז כל תא יש "חץ" שמצביע על כיוון התנועה המועדף. מכיוון שכל הכיוונים שווים, מוצגת נקודה.
+
+כעת עלינו להריץ את הסימולציה, לחקור את הסביבה שלנו, וללמוד חלוקה טובה יותר של ערכי טבלת Q, שתאפשר לנו למצוא את הדרך לתפוח הרבה יותר מהר.
+
+## מהות למידת Q: משוואת בלמן
+
+ברגע שנתחיל לזוז, לכל פעולה יהיה תגמול מתאים, כלומר נוכל באופן תיאורטי לבחור את הפעולה הבאה על סמך התגמול המיידי הגבוה ביותר. עם זאת, ברוב המצבים, המהלך לא ישיג את מטרתנו להגיע לתפוח, ולכן לא נוכל להחליט מיד איזה כיוון טוב יותר.
+
+> זכרו שזה לא התוצאה המיידית שחשובה, אלא התוצאה הסופית, שנקבל בסוף הסימולציה.
+
+כדי לקחת בחשבון את התגמול המושהה, עלינו להשתמש בעקרונות של **[תכנות דינמי](https://en.wikipedia.org/wiki/Dynamic_programming)**, שמאפשרים לנו לחשוב על הבעיה שלנו באופן רקורסיבי.
+
+נניח שאנחנו נמצאים כעת במצב *s*, ורוצים לעבור למצב הבא *s'*. על ידי כך, נקבל את התגמול המיידי *r(s,a)*, שמוגדר על ידי פונקציית התגמול, בתוספת תגמול עתידי כלשהו. אם נניח שטבלת Q שלנו משקפת נכון את "האטרקטיביות" של כל פעולה, אז במצב *s'* נבחר פעולה *a* שתואמת לערך המקסימלי של *Q(s',a')*. לכן, התגמול העתידי הטוב ביותר שנוכל לקבל במצב *s* יוגדר כ-`max`
+
+## בדיקת המדיניות
+
+מכיוון ש-Q-Table מציג את "האטרקטיביות" של כל פעולה בכל מצב, קל מאוד להשתמש בו כדי להגדיר ניווט יעיל בעולם שלנו. במקרה הפשוט ביותר, ניתן לבחור את הפעולה המתאימה לערך הגבוה ביותר ב-Q-Table: (בלוק קוד 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)
+```
+
+> אם תנסו את הקוד למעלה מספר פעמים, ייתכן שתשימו לב שלפעמים הוא "נתקע", ותצטרכו ללחוץ על כפתור ה-STOP במחברת כדי להפסיק אותו. זה קורה מכיוון שיכולות להיות מצבים שבהם שני מצבים "מצביעים" זה על זה מבחינת ערך Q אופטימלי, ובמקרה כזה הסוכן ימשיך לנוע בין אותם מצבים ללא סוף.
+
+## 🚀אתגר
+
+> **משימה 1:** שנו את הפונקציה `walk` כך שתוגבל אורך המסלול המרבי למספר מסוים של צעדים (לדוגמה, 100), וצפו בקוד למעלה מחזיר את הערך הזה מדי פעם.
+
+> **משימה 2:** שנו את הפונקציה `walk` כך שלא תחזור למקומות שבהם כבר הייתה בעבר. זה ימנע מ-`walk` להיכנס ללולאה, אך עדיין ייתכן שהסוכן ימצא את עצמו "תקוע" במקום שממנו אינו יכול לברוח.
+
+## ניווט
+
+מדיניות ניווט טובה יותר תהיה זו שהשתמשנו בה במהלך האימון, שמשלבת ניצול וחקר. במדיניות זו, נבחר כל פעולה עם הסתברות מסוימת, פרופורציונלית לערכים ב-Q-Table. אסטרטגיה זו עדיין עשויה לגרום לסוכן לחזור למיקום שכבר חקר, אך כפי שניתן לראות מהקוד למטה, היא מביאה למסלול ממוצע קצר מאוד למיקום הרצוי (זכרו ש-`print_statistics` מריץ את הסימולציה 100 פעמים): (בלוק קוד 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)
+```
+
+לאחר הרצת הקוד הזה, אתם אמורים לקבל אורך מסלול ממוצע קטן בהרבה מאשר קודם, בטווח של 3-6.
+
+## חקירת תהליך הלמידה
+
+כפי שציינו, תהליך הלמידה הוא איזון בין חקר לבין ניצול הידע שנצבר על מבנה מרחב הבעיה. ראינו שהתוצאות של הלמידה (היכולת לעזור לסוכן למצוא מסלול קצר למטרה) השתפרו, אך גם מעניין לצפות כיצד אורך המסלול הממוצע מתנהג במהלך תהליך הלמידה:
+
+## סיכום הלמידות:
+
+- **אורך המסלול הממוצע עולה**. מה שאנו רואים כאן הוא שבתחילה, אורך המסלול הממוצע עולה. זה כנראה נובע מכך שכאשר איננו יודעים דבר על הסביבה, אנו נוטים להיתקע במצבים גרועים, כמו מים או זאב. ככל שאנו לומדים יותר ומתחילים להשתמש בידע הזה, אנו יכולים לחקור את הסביבה לזמן ארוך יותר, אך עדיין איננו יודעים היטב היכן נמצאים התפוחים.
+
+- **אורך המסלול יורד ככל שאנו לומדים יותר**. ברגע שאנו לומדים מספיק, קל יותר לסוכן להשיג את המטרה, ואורך המסלול מתחיל לרדת. עם זאת, אנו עדיין פתוחים לחקר, ולכן לעיתים קרובות אנו סוטים מהמסלול הטוב ביותר ובוחנים אפשרויות חדשות, מה שגורם למסלול להיות ארוך יותר מהאופטימלי.
+
+- **אורך המסלול עולה באופן פתאומי**. מה שאנו גם רואים בגרף הוא שבשלב מסוים, האורך עלה באופן פתאומי. זה מצביע על האופי הסטוכסטי של התהליך, ועל כך שבשלב מסוים אנו יכולים "לקלקל" את מקדמי ה-Q-Table על ידי החלפתם בערכים חדשים. באופן אידיאלי, יש למזער זאת על ידי הפחתת קצב הלמידה (לדוגמה, לקראת סוף האימון, אנו משנים את ערכי ה-Q-Table רק במידה קטנה).
+
+בסך הכל, חשוב לזכור שההצלחה והאיכות של תהליך הלמידה תלויים באופן משמעותי בפרמטרים, כמו קצב הלמידה, דעיכת קצב הלמידה, ופקטור ההנחה. אלו נקראים לעיתים קרובות **היפר-פרמטרים**, כדי להבדילם מ-**פרמטרים**, שאותם אנו ממטבים במהלך האימון (לדוגמה, מקדמי Q-Table). תהליך מציאת הערכים הטובים ביותר להיפר-פרמטרים נקרא **אופטימיזציה של היפר-פרמטרים**, והוא ראוי לנושא נפרד.
+
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## משימה
+[עולם מציאותי יותר](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/1-QLearning/assignment.md b/translations/he/8-Reinforcement/1-QLearning/assignment.md
new file mode 100644
index 00000000..72cdfb3a
--- /dev/null
+++ b/translations/he/8-Reinforcement/1-QLearning/assignment.md
@@ -0,0 +1,41 @@
+
+# עולם מציאותי יותר
+
+במצב שלנו, פיטר הצליח לנוע כמעט בלי להתעייף או להרגיש רעב. בעולם מציאותי יותר, הוא צריך לשבת ולנוח מדי פעם, וגם להאכיל את עצמו. בואו נעשה את העולם שלנו מציאותי יותר, על ידי יישום הכללים הבאים:
+
+1. כאשר פיטר נע ממקום למקום, הוא מאבד **אנרגיה** וצובר **עייפות**.
+2. פיטר יכול להחזיר לעצמו אנרגיה על ידי אכילת תפוחים.
+3. פיטר יכול להיפטר מעייפות על ידי מנוחה מתחת לעץ או על הדשא (כלומר, הליכה למיקום בלוח שבו יש עץ או דשא - שדה ירוק).
+4. פיטר צריך למצוא ולהרוג את הזאב.
+5. כדי להרוג את הזאב, פיטר צריך להגיע לרמות מסוימות של אנרגיה ועייפות, אחרת הוא מפסיד בקרב.
+
+## הוראות
+
+השתמשו במחברת המקורית [notebook.ipynb](../../../../8-Reinforcement/1-QLearning/notebook.ipynb) כנקודת התחלה לפתרון שלכם.
+
+שנו את פונקציית התגמול בהתאם לכללי המשחק, הריצו את אלגוריתם הלמידה החיזוקית כדי ללמוד את האסטרטגיה הטובה ביותר לנצח במשחק, והשוו את התוצאות של הליכה אקראית עם האלגוריתם שלכם מבחינת מספר המשחקים שניצחו והפסידו.
+
+> **Note**: בעולם החדש שלכם, המצב מורכב יותר, ובנוסף למיקום האדם כולל גם רמות עייפות ואנרגיה. אתם יכולים לבחור לייצג את המצב כטופל (Board,energy,fatigue), או להגדיר מחלקה עבור המצב (ייתכן שתרצו גם להוריש אותה מ-`Board`), או אפילו לשנות את מחלקת `Board` המקורית בתוך [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py).
+
+בפתרון שלכם, אנא שמרו על הקוד האחראי לאסטרטגיית ההליכה האקראית, והשוו את תוצאות האלגוריתם שלכם עם ההליכה האקראית בסוף.
+
+> **Note**: ייתכן שתצטרכו להתאים את ההיפר-פרמטרים כדי לגרום לזה לעבוד, במיוחד את מספר האפוקים. מכיוון שהצלחה במשחק (הקרב עם הזאב) היא אירוע נדיר, אתם יכולים לצפות לזמן אימון ארוך יותר.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| | מוצגת מחברת עם הגדרת כללי עולם חדשים, אלגוריתם Q-Learning והסברים טקסטואליים. האלגוריתם מצליח לשפר משמעותית את התוצאות בהשוואה להליכה אקראית. | מוצגת מחברת, אלגוריתם Q-Learning מיושם ומשפר את התוצאות בהשוואה להליכה אקראית, אך לא באופן משמעותי; או שהמחברת מתועדת בצורה לקויה והקוד אינו מובנה היטב. | נעשה ניסיון להגדיר מחדש את כללי העולם, אך אלגוריתם Q-Learning אינו עובד, או שפונקציית התגמול אינה מוגדרת במלואה. |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/1-QLearning/solution/Julia/README.md b/translations/he/8-Reinforcement/1-QLearning/solution/Julia/README.md
new file mode 100644
index 00000000..6dbd9f03
--- /dev/null
+++ b/translations/he/8-Reinforcement/1-QLearning/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס AI [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/1-QLearning/solution/R/README.md b/translations/he/8-Reinforcement/1-QLearning/solution/R/README.md
new file mode 100644
index 00000000..8a7da665
--- /dev/null
+++ b/translations/he/8-Reinforcement/1-QLearning/solution/R/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו אחראים לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/2-Gym/README.md b/translations/he/8-Reinforcement/2-Gym/README.md
new file mode 100644
index 00000000..905c0b00
--- /dev/null
+++ b/translations/he/8-Reinforcement/2-Gym/README.md
@@ -0,0 +1,333 @@
+
+## דרישות מקדימות
+
+בשיעור הזה נשתמש בספרייה בשם **OpenAI Gym** כדי לדמות **סביבות** שונות. ניתן להריץ את הקוד של השיעור הזה באופן מקומי (למשל, מ-Visual Studio Code), ובמקרה כזה הסימולציה תיפתח בחלון חדש. כאשר מריצים את הקוד אונליין, ייתכן שתצטרכו לבצע כמה התאמות בקוד, כפי שמתואר [כאן](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7).
+
+## OpenAI Gym
+
+בשיעור הקודם, חוקי המשחק והמצב הוגדרו על ידי מחלקת `Board` שהגדרנו בעצמנו. כאן נשתמש ב**סביבת סימולציה** מיוחדת, שתדמה את הפיזיקה שמאחורי מוט האיזון. אחת מסביבות הסימולציה הפופולריות ביותר לאימון אלגוריתמים של למידת חיזוק נקראת [Gym](https://gym.openai.com/), שמנוהלת על ידי [OpenAI](https://openai.com/). באמצעות ה-Gym נוכל ליצור סביבות שונות, החל מסימולציית CartPole ועד משחקי Atari.
+
+> **הערה**: ניתן לראות סביבות נוספות הזמינות ב-OpenAI Gym [כאן](https://gym.openai.com/envs/#classic_control).
+
+ראשית, נתקין את ה-Gym ונייבא את הספריות הנדרשות (קוד בלוק 1):
+
+```python
+import sys
+!{sys.executable} -m pip install gym
+
+import gym
+import matplotlib.pyplot as plt
+import numpy as np
+import random
+```
+
+## תרגיל - אתחול סביבת CartPole
+
+כדי לעבוד עם בעיית איזון מוט ה-CartPole, עלינו לאתחל את הסביבה המתאימה. כל סביבה מקושרת ל:
+
+- **מרחב תצפיות** שמגדיר את מבנה המידע שאנו מקבלים מהסביבה. עבור בעיית ה-CartPole, אנו מקבלים את מיקום המוט, מהירות ועוד ערכים נוספים.
+
+- **מרחב פעולות** שמגדיר פעולות אפשריות. במקרה שלנו מרחב הפעולות הוא דיסקרטי, ומורכב משתי פעולות - **שמאלה** ו-**ימינה**. (קוד בלוק 2)
+
+1. כדי לאתחל, הקלידו את הקוד הבא:
+
+ ```python
+ env = gym.make("CartPole-v1")
+ print(env.action_space)
+ print(env.observation_space)
+ print(env.action_space.sample())
+ ```
+
+כדי לראות איך הסביבה עובדת, נריץ סימולציה קצרה של 100 צעדים. בכל צעד, נספק אחת מהפעולות לביצוע - בסימולציה הזו פשוט נבחר פעולה באופן אקראי מתוך `action_space`.
+
+1. הריצו את הקוד הבא וראו מה מתקבל.
+
+ ✅ זכרו שמומלץ להריץ את הקוד הזה בהתקנה מקומית של Python! (קוד בלוק 3)
+
+ ```python
+ env.reset()
+
+ for i in range(100):
+ env.render()
+ env.step(env.action_space.sample())
+ env.close()
+ ```
+
+ אתם אמורים לראות משהו דומה לתמונה הזו:
+
+ 
+
+1. במהלך הסימולציה, עלינו לקבל תצפיות כדי להחליט כיצד לפעול. למעשה, פונקציית הצעד מחזירה תצפיות נוכחיות, פונקציית תגמול ודגל שמציין האם יש טעם להמשיך את הסימולציה או לא: (קוד בלוק 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()
+ ```
+
+ בסופו של דבר תראו משהו כזה בתוצאות המחברת:
+
+ ```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
+ ```
+
+ וקטור התצפיות שמוחזר בכל צעד של הסימולציה מכיל את הערכים הבאים:
+ - מיקום העגלה
+ - מהירות העגלה
+ - זווית המוט
+ - קצב הסיבוב של המוט
+
+1. קבלו את הערכים המינימליים והמקסימליים של המספרים הללו: (קוד בלוק 5)
+
+ ```python
+ print(env.observation_space.low)
+ print(env.observation_space.high)
+ ```
+
+ ייתכן שתשימו לב שערך התגמול בכל צעד של הסימולציה הוא תמיד 1. זאת מכיוון שהמטרה שלנו היא לשרוד כמה שיותר זמן, כלומר לשמור על המוט במצב אנכי סביר למשך הזמן הארוך ביותר.
+
+ ✅ למעשה, סימולציית CartPole נחשבת לפתרון אם נצליח להגיע לתגמול ממוצע של 195 לאורך 100 ניסיונות רצופים.
+
+## דיסקרטיזציה של מצב
+
+בלמידת Q, עלינו לבנות טבלת Q שמגדירה מה לעשות בכל מצב. כדי לעשות זאת, עלינו שהמצב יהיה **דיסקרטי**, כלומר יכיל מספר סופי של ערכים דיסקרטיים. לכן, עלינו למצוא דרך **לדסקרט** את התצפיות שלנו, ולמפות אותן לקבוצה סופית של מצבים.
+
+יש כמה דרכים לעשות זאת:
+
+- **חלוקה לבינים**. אם אנו יודעים את הטווח של ערך מסוים, נוכל לחלק את הטווח למספר **בינים**, ואז להחליף את הערך במספר הבין שאליו הוא שייך. ניתן לעשות זאת באמצעות המתודה [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html) של numpy. במקרה זה, נדע בדיוק את גודל המצב, מכיוון שהוא תלוי במספר הבינים שנבחר לדיגיטציה.
+
+✅ ניתן להשתמש באינטרפולציה ליניארית כדי להביא ערכים לטווח סופי (למשל, מ-20- עד 20), ואז להמיר מספרים לשלמים על ידי עיגול. זה נותן לנו פחות שליטה על גודל המצב, במיוחד אם איננו יודעים את הטווחים המדויקים של ערכי הקלט. לדוגמה, במקרה שלנו 2 מתוך 4 הערכים אינם מוגבלים בטווח העליון/תחתון שלהם, מה שעשוי להוביל למספר אינסופי של מצבים.
+
+בדוגמה שלנו, נבחר בגישה השנייה. כפי שתשימו לב מאוחר יותר, למרות שהטווחים העליונים/תחתונים אינם מוגדרים, הערכים הללו לעיתים רחוקות לוקחים ערכים מחוץ לטווחים סופיים מסוימים, ולכן מצבים עם ערכים קיצוניים יהיו נדירים מאוד.
+
+1. הנה הפונקציה שתיקח את התצפית מהמודל שלנו ותפיק טופס של 4 ערכים שלמים: (קוד בלוק 6)
+
+ ```python
+ def discretize(x):
+ return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int))
+ ```
+
+1. בואו נחקור גם שיטת דיסקרטיזציה נוספת באמצעות בינים: (קוד בלוק 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. עכשיו נריץ סימולציה קצרה ונצפה בערכי הסביבה הדיסקרטיים. אתם מוזמנים לנסות גם את `discretize` וגם את `discretize_bins` ולראות אם יש הבדל.
+
+ ✅ `discretize_bins` מחזירה את מספר הבין, שהוא מבוסס על 0. לכן עבור ערכי משתנה קלט סביב 0 היא מחזירה את המספר מאמצע הטווח (10). ב-`discretize`, לא דאגנו לטווח ערכי הפלט, מה שמאפשר להם להיות שליליים, ולכן ערכי המצב אינם מוזזים, ו-0 מתאים ל-0. (קוד בלוק 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()
+ ```
+
+ ✅ בטלו את ההערה בשורה שמתחילה ב-env.render אם אתם רוצים לראות איך הסביבה מתבצעת. אחרת, תוכלו להריץ אותה ברקע, מה שמהיר יותר. נשתמש בהרצה "בלתי נראית" זו במהלך תהליך למידת Q.
+
+## מבנה טבלת Q
+
+בשיעור הקודם, המצב היה זוג פשוט של מספרים מ-0 עד 8, ולכן היה נוח לייצג את טבלת Q באמצעות טנזור numpy עם צורה של 8x8x2. אם נשתמש בדיסקרטיזציה באמצעות בינים, גודל וקטור המצב שלנו גם ידוע, ולכן נוכל להשתמש באותה גישה ולייצג מצב באמצעות מערך בצורת 20x20x10x10x2 (כאן 2 הוא הממד של מרחב הפעולות, והמידות הראשונות מתאימות למספר הבינים שבחרנו להשתמש עבור כל אחד מהפרמטרים במרחב התצפיות).
+
+עם זאת, לפעמים המידות המדויקות של מרחב התצפיות אינן ידועות. במקרה של פונקציית `discretize`, לעולם לא נוכל להיות בטוחים שהמצב שלנו נשאר בתוך גבולות מסוימים, מכיוון שחלק מהערכים המקוריים אינם מוגבלים. לכן, נשתמש בגישה מעט שונה ונייצג את טבלת Q באמצעות מילון.
+
+1. השתמשו בזוג *(state,action)* כמפתח המילון, והערך יתאים לערך הכניסה בטבלת Q. (קוד בלוק 9)
+
+ ```python
+ Q = {}
+ actions = (0,1)
+
+ def qvalues(state):
+ return [Q.get((state,a),0) for a in actions]
+ ```
+
+ כאן אנו גם מגדירים פונקציה `qvalues()`, שמחזירה רשימה של ערכי טבלת Q עבור מצב נתון שמתאים לכל הפעולות האפשריות. אם הכניסה אינה קיימת בטבלת Q, נחזיר 0 כברירת מחדל.
+
+## בואו נתחיל בלמידת Q
+
+עכשיו אנחנו מוכנים ללמד את פיטר לשמור על איזון!
+
+1. ראשית, נגדיר כמה היפרפרמטרים: (קוד בלוק 10)
+
+ ```python
+ # hyperparameters
+ alpha = 0.3
+ gamma = 0.9
+ epsilon = 0.90
+ ```
+
+ כאן, `alpha` הוא **קצב הלמידה** שמגדיר באיזו מידה עלינו להתאים את הערכים הנוכחיים של טבלת Q בכל צעד. בשיעור הקודם התחלנו עם 1, ואז הפחתנו את `alpha` לערכים נמוכים יותר במהלך האימון. בדוגמה הזו נשמור אותו קבוע רק לשם הפשטות, ואתם יכולים להתנסות בהתאמת ערכי `alpha` מאוחר יותר.
+
+ `gamma` הוא **גורם ההנחה** שמראה באיזו מידה עלינו להעדיף תגמול עתידי על פני תגמול נוכחי.
+
+ `epsilon` הוא **גורם החקר/ניצול** שקובע האם עלינו להעדיף חקר על פני ניצול או להפך. באלגוריתם שלנו, נבחר באחוז `epsilon` מהמקרים את הפעולה הבאה לפי ערכי טבלת Q, ובשאר המקרים נבצע פעולה אקראית. זה יאפשר לנו לחקור אזורים במרחב החיפוש שמעולם לא ראינו קודם.
+
+ ✅ מבחינת איזון - בחירת פעולה אקראית (חקר) תפעל כמו מכה אקראית בכיוון הלא נכון, והמוט יצטרך ללמוד כיצד להתאושש מה"טעויות" הללו.
+
+### שיפור האלגוריתם
+
+ניתן גם לבצע שני שיפורים באלגוריתם שלנו מהשיעור הקודם:
+
+- **חישוב תגמול מצטבר ממוצע**, לאורך מספר סימולציות. נדפיס את ההתקדמות כל 5000 איטרציות, ונחשב את התגמול המצטבר הממוצע לאורך פרק הזמן הזה. המשמעות היא שאם נקבל יותר מ-195 נקודות - נוכל להחשיב את הבעיה כפתורה, באיכות גבוהה אף יותר מהנדרש.
+
+- **חישוב התוצאה המצטברת הממוצעת המקסימלית**, `Qmax`, ונשמור את טבלת Q המתאימה לתוצאה זו. כאשר תריצו את האימון תבחינו שלפעמים התוצאה המצטברת הממוצעת מתחילה לרדת, ואנו רוצים לשמור את ערכי טבלת Q המתאימים למודל הטוב ביותר שנצפה במהלך האימון.
+
+1. אספו את כל התגמולים המצטברים בכל סימולציה בוקטור `rewards` לצורך גרפיקה מאוחרת יותר. (קוד בלוק 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=[]
+ ```
+
+מה שתשימו לב מהתוצאות הללו:
+
+- **קרוב למטרה שלנו**. אנו קרובים מאוד להשגת המטרה של קבלת 195 תגמולים מצטברים לאורך 100+ ריצות רצופות של הסימולציה, או שאולי כבר השגנו אותה! גם אם נקבל מספרים קטנים יותר, עדיין איננו יודעים, מכיוון שאנו מחשבים ממוצע לאורך 5000 ריצות, ורק 100 ריצות נדרשות בקריטריון הרשמי.
+
+- **התגמול מתחיל לרדת**. לפעמים התגמול מתחיל לרדת, מה שאומר שאנו יכולים "להרוס" ערכים שכבר נלמדו בטבלת Q עם כאלה שמחמירים את המצב.
+
+תצפית זו ברורה יותר אם נגרף את התקדמות האימון.
+
+## גרפיקה של התקדמות האימון
+
+במהלך האימון, אספנו את ערך התגמול המצטבר בכל אחת מהאיטרציות לוקטור `rewards`. הנה איך זה נראה כשאנו מגרפים אותו מול מספר האיטרציות:
+
+```python
+plt.plot(rewards)
+```
+
+
+
+מהגרף הזה, לא ניתן להסיק דבר, מכיוון שבשל טבעו של תהליך האימון הסטוכסטי, אורך הסשנים משתנה מאוד. כדי להבין יותר את הגרף הזה, נוכל לחשב את **הממוצע הרץ** לאורך סדרת ניסויים, נאמר 100. ניתן לעשות זאת בנוחות באמצעות `np.convolve`: (קוד בלוק 12)
+
+```python
+def running_average(x,window):
+ return np.convolve(x,np.ones(window)/window,mode='valid')
+
+plt.plot(running_average(rewards,100))
+```
+
+
+
+## שינוי היפרפרמטרים
+
+כדי להפוך את הלמידה ליציבה יותר, הגיוני להתאים כמה מההיפרפרמטרים שלנו במהלך האימון. במיוחד:
+
+- **עבור קצב הלמידה**, `alpha`, נוכל להתחיל עם ערכים קרובים ל-1, ואז להמשיך להקטין את הפרמטר. עם הזמן, נקבל ערכי הסתברות טובים בטבלת Q, ולכן עלינו להתאים אותם בעדינות, ולא להחליף לחלוטין בערכים חדשים.
+
+- **הגדלת epsilon**. ייתכן שנרצה להגדיל את `epsilon` בהדרגה, כדי לחקור פחות ולנצל יותר. כנראה הגיוני להתחיל עם ערך נמוך של `epsilon`, ולהתקדם כמעט עד 1.
+> **משימה 1**: נסו לשחק עם ערכי ההיפרפרמטרים ולבדוק אם אתם מצליחים להשיג תגמול מצטבר גבוה יותר. האם אתם מגיעים מעל 195?
+> **משימה 2**: כדי לפתור את הבעיה באופן פורמלי, עליכם להגיע ל-195 תגמול ממוצע לאורך 100 ריצות רצופות. מדדו זאת במהלך האימון וודאו שהבעיה נפתרה באופן פורמלי!
+
+## לראות את התוצאה בפעולה
+
+יהיה מעניין לראות כיצד המודל המאומן מתנהג בפועל. בואו נריץ את הסימולציה ונשתמש באותה אסטרטגיית בחירת פעולות כמו במהלך האימון, על ידי דגימה בהתאם להתפלגות ההסתברות ב-Q-Table: (בלוק קוד 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()
+```
+
+אתם אמורים לראות משהו כזה:
+
+
+
+---
+
+## 🚀אתגר
+
+> **משימה 3**: כאן השתמשנו בעותק הסופי של Q-Table, שייתכן שאינו הטוב ביותר. זכרו ששמרנו את ה-Q-Table עם הביצועים הטובים ביותר במשתנה `Qbest`! נסו את אותו הדוגמה עם ה-Q-Table הטוב ביותר על ידי העתקת `Qbest` ל-`Q` ובדקו אם אתם מבחינים בהבדל.
+
+> **משימה 4**: כאן לא בחרנו את הפעולה הטובה ביותר בכל שלב, אלא דגמנו לפי התפלגות ההסתברות המתאימה. האם יהיה הגיוני יותר תמיד לבחור את הפעולה הטובה ביותר, עם הערך הגבוה ביותר ב-Q-Table? ניתן לעשות זאת באמצעות פונקציית `np.argmax` כדי למצוא את מספר הפעולה המתאים לערך הגבוה ביותר ב-Q-Table. יישמו את האסטרטגיה הזו ובדקו אם היא משפרת את האיזון.
+
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## משימה
+[אמן מכונית הרים](assignment.md)
+
+## סיכום
+
+למדנו כעת כיצד לאמן סוכנים להשיג תוצאות טובות רק על ידי מתן פונקציית תגמול שמגדירה את מצב המשחק הרצוי, ועל ידי מתן הזדמנות לחקור את מרחב החיפוש בצורה חכמה. יישמנו בהצלחה את אלגוריתם Q-Learning במקרים של סביבות דיסקרטיות ורציפות, אך עם פעולות דיסקרטיות.
+
+חשוב גם ללמוד מצבים שבהם מצב הפעולה הוא רציף, וכאשר מרחב התצפית מורכב הרבה יותר, כמו התמונה ממסך משחק Atari. בבעיות אלו לעיתים קרובות נדרש להשתמש בטכניקות למידת מכונה חזקות יותר, כמו רשתות נוירונים, כדי להשיג תוצאות טובות. נושאים מתקדמים אלו הם הנושא של קורס הבינה המלאכותית המתקדם שלנו שיבוא בהמשך.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/2-Gym/assignment.md b/translations/he/8-Reinforcement/2-Gym/assignment.md
new file mode 100644
index 00000000..5107bd89
--- /dev/null
+++ b/translations/he/8-Reinforcement/2-Gym/assignment.md
@@ -0,0 +1,57 @@
+
+# אימון מכונית הרים
+
+[OpenAI Gym](http://gym.openai.com) תוכנן כך שכל הסביבות מספקות את אותו API - כלומר, אותן שיטות `reset`, `step` ו-`render`, ואותן הפשטות של **מרחב הפעולה** ו**מרחב התצפית**. לכן, אמור להיות אפשרי להתאים את אותם אלגוריתמים של למידת חיזוק לסביבות שונות עם שינויים מינימליים בקוד.
+
+## סביבת מכונית הרים
+
+[סביבת מכונית הרים](https://gym.openai.com/envs/MountainCar-v0/) כוללת מכונית שנתקעה בעמק:
+
+המטרה היא לצאת מהעמק ולתפוס את הדגל, על ידי ביצוע אחת מהפעולות הבאות בכל שלב:
+
+| ערך | משמעות |
+|---|---|
+| 0 | להאיץ שמאלה |
+| 1 | לא להאיץ |
+| 2 | להאיץ ימינה |
+
+הטריק המרכזי בבעיה זו הוא שהמנוע של המכונית אינו חזק מספיק כדי לטפס על ההר במעבר אחד. לכן, הדרך היחידה להצליח היא לנסוע קדימה ואחורה כדי לצבור מומנטום.
+
+מרחב התצפית מורכב משני ערכים בלבד:
+
+| מספר | תצפית | מינימום | מקסימום |
+|-----|--------------|---------|---------|
+| 0 | מיקום המכונית | -1.2 | 0.6 |
+| 1 | מהירות המכונית | -0.07 | 0.07 |
+
+מערכת התגמולים עבור מכונית ההרים די מורכבת:
+
+ * תגמול של 0 מוענק אם הסוכן הגיע לדגל (מיקום = 0.5) בראש ההר.
+ * תגמול של -1 מוענק אם המיקום של הסוכן קטן מ-0.5.
+
+הפרק מסתיים אם מיקום המכונית גדול מ-0.5, או אם אורך הפרק עולה על 200.
+
+## הוראות
+
+התאם את אלגוריתם למידת החיזוק שלנו כדי לפתור את בעיית מכונית ההרים. התחל עם הקוד הקיים ב-[notebook.ipynb](../../../../8-Reinforcement/2-Gym/notebook.ipynb), החלף את הסביבה, שנה את פונקציות הדיסקרטיזציה של המצב, ונסה לגרום לאלגוריתם הקיים להתאמן עם שינויים מינימליים בקוד. בצע אופטימיזציה לתוצאה על ידי התאמת היפר-פרמטרים.
+
+> **Note**: ייתכן שיהיה צורך בהתאמת היפר-פרמטרים כדי לגרום לאלגוריתם להתכנס.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | ------- | ----- | ----------- |
+| | אלגוריתם Q-Learning הותאם בהצלחה מדוגמת CartPole עם שינויים מינימליים בקוד, ומסוגל לפתור את הבעיה של תפיסת הדגל בפחות מ-200 צעדים. | אלגוריתם Q-Learning חדש אומץ מהאינטרנט, אך מתועד היטב; או אלגוריתם קיים אומץ אך אינו מגיע לתוצאות הרצויות. | הסטודנט לא הצליח לאמץ אלגוריתם כלשהו בהצלחה, אך עשה צעדים משמעותיים לקראת פתרון (מימש דיסקרטיזציה של מצב, מבנה נתונים של Q-Table וכו'). |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/2-Gym/solution/Julia/README.md b/translations/he/8-Reinforcement/2-Gym/solution/Julia/README.md
new file mode 100644
index 00000000..b5c9cd50
--- /dev/null
+++ b/translations/he/8-Reinforcement/2-Gym/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/2-Gym/solution/R/README.md b/translations/he/8-Reinforcement/2-Gym/solution/R/README.md
new file mode 100644
index 00000000..ca486866
--- /dev/null
+++ b/translations/he/8-Reinforcement/2-Gym/solution/R/README.md
@@ -0,0 +1,15 @@
+
+זהו מציין מקום זמני
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/8-Reinforcement/README.md b/translations/he/8-Reinforcement/README.md
new file mode 100644
index 00000000..ee3d8d33
--- /dev/null
+++ b/translations/he/8-Reinforcement/README.md
@@ -0,0 +1,67 @@
+
+# מבוא ללמידת חיזוק
+
+למידת חיזוק, RL, נחשבת לאחת מהפרדיגמות הבסיסיות של למידת מכונה, לצד למידה מונחית ולמידה בלתי מונחית. RL עוסקת בקבלת החלטות: קבלת ההחלטות הנכונות או לפחות ללמוד מהן.
+
+דמיינו שיש לכם סביבה מדומה כמו שוק המניות. מה קורה אם אתם מטילים רגולציה מסוימת? האם יש לכך השפעה חיובית או שלילית? אם קורה משהו שלילי, עליכם לקחת את ה_חיזוק השלילי_, ללמוד ממנו ולשנות כיוון. אם התוצאה חיובית, עליכם לבנות על אותו _חיזוק חיובי_.
+
+
+
+> פטר וחבריו צריכים לברוח מהזאב הרעב! תמונה מאת [Jen Looper](https://twitter.com/jenlooper)
+
+## נושא אזורי: פטר והזאב (רוסיה)
+
+[פטר והזאב](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) הוא אגדה מוזיקלית שנכתבה על ידי המלחין הרוסי [סרגיי פרוקופייב](https://en.wikipedia.org/wiki/Sergei_Prokofiev). זהו סיפור על החלוץ הצעיר פטר, שיוצא באומץ מביתו אל קרחת היער כדי לרדוף אחרי הזאב. בחלק זה, נלמד אלגוריתמים של למידת מכונה שיעזרו לפטר:
+
+- **לחקור** את האזור הסובב ולבנות מפה ניווט אופטימלית.
+- **ללמוד** כיצד להשתמש בסקייטבורד ולשמור על איזון עליו, כדי לנוע מהר יותר.
+
+[](https://www.youtube.com/watch?v=Fmi5zHg4QSM)
+
+> 🎥 לחצו על התמונה למעלה כדי להאזין ל"פטר והזאב" מאת פרוקופייב
+
+## למידת חיזוק
+
+בחלקים הקודמים ראיתם שני סוגים של בעיות למידת מכונה:
+
+- **מונחית**, שבה יש לנו מערכי נתונים שמציעים פתרונות לדוגמה לבעיה שאנו רוצים לפתור. [סיווג](../4-Classification/README.md) ו[רגרסיה](../2-Regression/README.md) הם משימות של למידה מונחית.
+- **בלתי מונחית**, שבה אין לנו נתוני אימון מתויגים. הדוגמה העיקרית ללמידה בלתי מונחית היא [אשכולות](../5-Clustering/README.md).
+
+בחלק זה, נציג בפניכם סוג חדש של בעיית למידה שאינה דורשת נתוני אימון מתויגים. ישנם כמה סוגים של בעיות כאלה:
+
+- **[למידה חצי-מונחית](https://wikipedia.org/wiki/Semi-supervised_learning)**, שבה יש לנו הרבה נתונים לא מתויגים שניתן להשתמש בהם כדי לאמן את המודל מראש.
+- **[למידת חיזוק](https://wikipedia.org/wiki/Reinforcement_learning)**, שבה סוכן לומד כיצד להתנהג על ידי ביצוע ניסויים בסביבה מדומה.
+
+### דוגמה - משחק מחשב
+
+נניח שאתם רוצים ללמד מחשב לשחק במשחק, כמו שחמט או [סופר מריו](https://wikipedia.org/wiki/Super_Mario). כדי שהמחשב ישחק במשחק, אנו צריכים שהוא ינבא איזו פעולה לבצע בכל אחד ממצבי המשחק. למרות שזה עשוי להיראות כמו בעיית סיווג, זה לא - מכיוון שאין לנו מערך נתונים עם מצבים ופעולות תואמות. למרות שאולי יש לנו נתונים כמו משחקי שחמט קיימים או הקלטות של שחקנים משחקים סופר מריו, סביר להניח שהנתונים הללו לא יכסו מספיק מצבים אפשריים.
+
+במקום לחפש נתוני משחק קיימים, **למידת חיזוק** (RL) מבוססת על הרעיון של *לגרום למחשב לשחק* פעמים רבות ולצפות בתוצאה. לכן, כדי ליישם למידת חיזוק, אנו צריכים שני דברים:
+
+- **סביבה** ו**סימולטור** שמאפשרים לנו לשחק במשחק פעמים רבות. הסימולטור יגדיר את כללי המשחק, כמו גם את המצבים והפעולות האפשריים.
+
+- **פונקציית תגמול**, שתספר לנו עד כמה הצלחנו במהלך כל מהלך או משחק.
+
+ההבדל העיקרי בין סוגי למידת מכונה אחרים לבין RL הוא שב-RL בדרך כלל איננו יודעים אם ניצחנו או הפסדנו עד לסיום המשחק. לכן, איננו יכולים לומר אם מהלך מסוים לבדו הוא טוב או לא - אנו מקבלים תגמול רק בסוף המשחק. והמטרה שלנו היא לעצב אלגוריתמים שיאפשרו לנו לאמן מודל בתנאים של אי ודאות. נלמד על אלגוריתם RL אחד שנקרא **Q-learning**.
+
+## שיעורים
+
+1. [מבוא ללמידת חיזוק ו-Q-Learning](1-QLearning/README.md)
+2. [שימוש בסביבת סימולציה של Gym](2-Gym/README.md)
+
+## קרדיטים
+
+"מבוא ללמידת חיזוק" נכתב באהבה על ידי [Dmitry Soshnikov](http://soshnikov.com)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/9-Real-World/1-Applications/README.md b/translations/he/9-Real-World/1-Applications/README.md
new file mode 100644
index 00000000..ce46a6dc
--- /dev/null
+++ b/translations/he/9-Real-World/1-Applications/README.md
@@ -0,0 +1,159 @@
+
+# פוסטסקריפט: למידת מכונה בעולם האמיתי
+
+
+> סקצ'נוט מאת [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+במהלך הקורס הזה, למדתם דרכים רבות להכנת נתונים לאימון וליצירת מודלים של למידת מכונה. בניתם סדרה של מודלים קלאסיים כמו רגרסיה, אשכולות, סיווג, עיבוד שפה טבעית ומודלים של סדרות זמן. כל הכבוד! עכשיו, אתם אולי תוהים למה כל זה נועד... מהן היישומים בעולם האמיתי של המודלים הללו?
+
+למרות שהרבה עניין בתעשייה מתמקד בבינה מלאכותית, שלרוב עושה שימוש בלמידה עמוקה, עדיין יש יישומים חשובים למודלים קלאסיים של למידת מכונה. ייתכן שאפילו אתם משתמשים בחלק מהיישומים הללו היום! בשיעור הזה, תחקור כיצד שמונה תעשיות ותחומים שונים משתמשים במודלים אלו כדי להפוך את היישומים שלהם ליותר יעילים, אמינים, חכמים ובעלי ערך למשתמשים.
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## 💰 פיננסים
+
+תחום הפיננסים מציע הזדמנויות רבות ללמידת מכונה. בעיות רבות בתחום זה מתאימות למידול ופתרון באמצעות למידת מכונה.
+
+### זיהוי הונאות בכרטיסי אשראי
+
+למדנו על [אשכולות k-means](../../5-Clustering/2-K-Means/README.md) מוקדם יותר בקורס, אבל איך ניתן להשתמש בהם כדי לפתור בעיות הקשורות להונאות בכרטיסי אשראי?
+
+אשכולות k-means מועילים בטכניקה לזיהוי הונאות בכרטיסי אשראי הנקראת **זיהוי חריגות**. חריגות, או סטיות בתצפיות על סט נתונים, יכולות להצביע אם כרטיס אשראי נמצא בשימוש רגיל או אם מתרחש משהו חריג. כפי שמוצג במאמר המקושר למטה, ניתן למיין נתוני כרטיסי אשראי באמצעות אלגוריתם אשכולות k-means ולהקצות כל עסקה לאשכול על סמך מידת החריגות שלה. לאחר מכן, ניתן להעריך את האשכולות המסוכנים ביותר כדי להבחין בין עסקאות הונאה לעסקאות לגיטימיות.
+[Reference](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.680.1195&rep=rep1&type=pdf)
+
+### ניהול עושר
+
+בניהול עושר, אדם או חברה מנהלים השקעות עבור לקוחותיהם. תפקידם הוא לשמר ולהגדיל את העושר לטווח הארוך, ולכן חשוב לבחור השקעות שמניבות ביצועים טובים.
+
+אחת הדרכים להעריך את ביצועי ההשקעה היא באמצעות רגרסיה סטטיסטית. [רגרסיה ליניארית](../../2-Regression/1-Tools/README.md) היא כלי חשוב להבנת ביצועי קרן ביחס למדד מסוים. ניתן גם להסיק האם תוצאות הרגרסיה הן משמעותיות סטטיסטית, או כמה הן ישפיעו על השקעות הלקוח. ניתן להרחיב את הניתוח באמצעות רגרסיה מרובה, שבה ניתן לקחת בחשבון גורמי סיכון נוספים. לדוגמה כיצד זה יעבוד עבור קרן ספציפית, עיינו במאמר למטה על הערכת ביצועי קרן באמצעות רגרסיה.
+[Reference](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/)
+
+## 🎓 חינוך
+
+תחום החינוך הוא גם תחום מעניין שבו ניתן ליישם למידת מכונה. ישנן בעיות מעניינות להתמודד איתן כמו זיהוי רמאות במבחנים או חיבורים, או ניהול הטיות, מכוונות או לא, בתהליך התיקון.
+
+### חיזוי התנהגות תלמידים
+
+[Coursera](https://coursera.com), ספק קורסים פתוחים מקוון, מחזיק בלוג טכנולוגי נהדר שבו הם דנים בהחלטות הנדסיות רבות. במקרה זה, הם שרטטו קו רגרסיה כדי לנסות לחקור כל קשר בין דירוג NPS (Net Promoter Score) נמוך לבין שמירה על קורס או נשירה ממנו.
+[Reference](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a)
+
+### הפחתת הטיות
+
+[Grammarly](https://grammarly.com), עוזר כתיבה שבודק שגיאות כתיב ודקדוק, משתמש במערכות מתקדמות של [עיבוד שפה טבעית](../../6-NLP/README.md) במוצריו. הם פרסמו מחקר מעניין בבלוג הטכנולוגי שלהם על איך הם התמודדו עם הטיה מגדרית בלמידת מכונה, כפי שלמדתם בשיעור ההוגנות המבואי שלנו.
+[Reference](https://www.grammarly.com/blog/engineering/mitigating-gender-bias-in-autocorrect/)
+
+## 👜 קמעונאות
+
+תחום הקמעונאות יכול בהחלט להרוויח משימוש בלמידת מכונה, החל מיצירת מסע לקוח טוב יותר ועד לניהול מלאי בצורה אופטימלית.
+
+### התאמת מסע הלקוח
+
+ב-Wayfair, חברה שמוכרת מוצרים לבית כמו רהיטים, עזרה ללקוחות למצוא את המוצרים הנכונים לטעמם ולצרכיהם היא קריטית. במאמר זה, מהנדסים מהחברה מתארים כיצד הם משתמשים בלמידת מכונה ובעיבוד שפה טבעית כדי "להציג את התוצאות הנכונות ללקוחות". במיוחד, מנוע כוונת השאילתה שלהם נבנה כדי להשתמש בחילוץ ישויות, אימון מסווגים, חילוץ נכסים ודעות, ותיוג רגשות על ביקורות לקוחות. זהו מקרה שימוש קלאסי של איך NLP עובד בקמעונאות מקוונת.
+[Reference](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search)
+
+### ניהול מלאי
+
+חברות חדשניות וזריזות כמו [StitchFix](https://stitchfix.com), שירות קופסאות ששולח בגדים לצרכנים, מסתמכות רבות על למידת מכונה להמלצות וניהול מלאי. צוותי הסטיילינג שלהם עובדים יחד עם צוותי הסחורה שלהם, למעשה: "אחד ממדעני הנתונים שלנו התנסה באלגוריתם גנטי ויישם אותו על בגדים כדי לחזות מה יהיה פריט לבוש מצליח שלא קיים היום. הבאנו את זה לצוות הסחורה ועכשיו הם יכולים להשתמש בזה ככלי."
+[Reference](https://www.zdnet.com/article/how-stitch-fix-uses-machine-learning-to-master-the-science-of-styling/)
+
+## 🏥 בריאות
+
+תחום הבריאות יכול לנצל למידת מכונה כדי לייעל משימות מחקר וגם בעיות לוגיסטיות כמו אשפוז חוזר של מטופלים או עצירת התפשטות מחלות.
+
+### ניהול ניסויים קליניים
+
+רעילות בניסויים קליניים היא דאגה מרכזית עבור יצרני תרופות. כמה רעילות היא נסבלת? במחקר זה, ניתוח שיטות ניסוי קליניות שונות הוביל לפיתוח גישה חדשה לחיזוי הסיכויים לתוצאות ניסויים קליניים. במיוחד, הם הצליחו להשתמש ביער אקראי כדי ליצור [מסווג](../../4-Classification/README.md) שמסוגל להבחין בין קבוצות של תרופות.
+[Reference](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
+
+### ניהול אשפוז חוזר בבתי חולים
+
+טיפול בבתי חולים הוא יקר, במיוחד כאשר מטופלים צריכים להתאשפז שוב. מאמר זה דן בחברה שמשתמשת בלמידת מכונה כדי לחזות פוטנציאל אשפוז חוזר באמצעות אלגוריתמי [אשכולות](../../5-Clustering/README.md). אשכולות אלו עוזרים לאנליסטים "לגלות קבוצות של אשפוזים חוזרים שעשויים לחלוק סיבה משותפת".
+[Reference](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning)
+
+### ניהול מחלות
+
+המגפה האחרונה שמה זרקור על הדרכים שבהן למידת מכונה יכולה לעזור בעצירת התפשטות מחלות. במאמר זה, תזהו שימוש ב-ARIMA, עקומות לוגיסטיות, רגרסיה ליניארית ו-SARIMA. "עבודה זו היא ניסיון לחשב את שיעור התפשטות הנגיף הזה וכך לחזות את מקרי המוות, ההחלמות והמקרים המאושרים, כך שזה עשוי לעזור לנו להתכונן טוב יותר ולהישאר בחיים."
+[Reference](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/)
+
+## 🌲 אקולוגיה וטכנולוגיה ירוקה
+
+הטבע והאקולוגיה מורכבים ממערכות רגישות רבות שבהן האינטראקציה בין בעלי חיים לטבע נכנסת למוקד. חשוב להיות מסוגלים למדוד מערכות אלו בצורה מדויקת ולפעול בהתאם אם משהו קורה, כמו שריפת יער או ירידה באוכלוסיית בעלי החיים.
+
+### ניהול יערות
+
+למדתם על [למידת חיזוקים](../../8-Reinforcement/README.md) בשיעורים קודמים. היא יכולה להיות מאוד שימושית כאשר מנסים לחזות דפוסים בטבע. במיוחד, ניתן להשתמש בה כדי לעקוב אחר בעיות אקולוגיות כמו שריפות יער והתפשטות מינים פולשים. בקנדה, קבוצת חוקרים השתמשה בלמידת חיזוקים כדי לבנות מודלים של דינמיקת שריפות יער מתמונות לוויין. באמצעות "תהליך התפשטות מרחבי (SSP)" חדשני, הם דמיינו שריפת יער כ"סוכן בכל תא בנוף". "סט הפעולות שהאש יכולה לבצע ממיקום בכל נקודת זמן כולל התפשטות צפונה, דרומה, מזרחה או מערבה או אי התפשטות.
+
+גישה זו הופכת את ההגדרה הרגילה של למידת חיזוקים מכיוון שהדינמיקה של תהליך ההחלטה של מרקוב (MDP) המתאים היא פונקציה ידועה להתפשטות מיידית של שריפות." קראו עוד על האלגוריתמים הקלאסיים שבהם השתמשה הקבוצה בקישור למטה.
+[Reference](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full)
+
+### חישת תנועה של בעלי חיים
+
+בעוד שלמידה עמוקה יצרה מהפכה במעקב חזותי אחר תנועות בעלי חיים (ניתן לבנות [עוקב דובי קוטב](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) משלכם כאן), למידת מכונה קלאסית עדיין יש מקום במשימה זו.
+
+חיישנים למעקב אחר תנועות של בעלי חיים בחוות ו-IoT עושים שימוש בסוג זה של עיבוד חזותי, אך טכניקות למידת מכונה בסיסיות יותר מועילות לעיבוד מקדים של נתונים. לדוגמה, במאמר זה, תנוחות כבשים נוטרו ונותחו באמצעות אלגוריתמי מסווגים שונים. ייתכן שתזהו את עקומת ROC בעמוד 335.
+[Reference](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf)
+
+### ⚡️ ניהול אנרגיה
+
+בשיעורים שלנו על [חיזוי סדרות זמן](../../7-TimeSeries/README.md), העלינו את הרעיון של מדחנים חכמים כדי לייצר הכנסות לעיר על סמך הבנת היצע וביקוש. מאמר זה דן בפירוט כיצד אשכולות, רגרסיה וחיזוי סדרות זמן שולבו כדי לעזור לחזות שימוש עתידי באנרגיה באירלנד, בהתבסס על מדידה חכמה.
+[Reference](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf)
+
+## 💼 ביטוח
+
+תחום הביטוח הוא תחום נוסף שמשתמש בלמידת מכונה כדי לבנות ולייעל מודלים פיננסיים ואקטואריים.
+
+### ניהול תנודתיות
+
+MetLife, ספק ביטוח חיים, פתוח לגבי הדרך שבה הם מנתחים ומפחיתים תנודתיות במודלים הפיננסיים שלהם. במאמר זה תבחינו בהדמיות סיווג בינאריות ואורדינליות. תגלו גם הדמיות חיזוי.
+[Reference](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf)
+
+## 🎨 אמנות, תרבות וספרות
+
+בתחום האמנות, למשל בעיתונאות, ישנן בעיות מעניינות רבות. זיהוי חדשות מזויפות הוא בעיה גדולה שכן הוכח שהיא משפיעה על דעת הקהל ואפילו על הפלת דמוקרטיות. מוזיאונים יכולים גם להרוויח משימוש בלמידת מכונה בכל דבר, החל ממציאת קשרים בין פריטים ועד תכנון משאבים.
+
+### זיהוי חדשות מזויפות
+
+זיהוי חדשות מזויפות הפך למשחק של חתול ועכבר במדיה של היום. במאמר זה, חוקרים מציעים שמערכת שמשלבת כמה מטכניקות למידת המכונה שלמדנו יכולה להיבחן והמודל הטוב ביותר ייושם: "מערכת זו מבוססת על עיבוד שפה טבעית כדי לחלץ תכונות מהנתונים ולאחר מכן תכונות אלו משמשות לאימון מסווגי למידת מכונה כמו Naive Bayes, Support Vector Machine (SVM), Random Forest (RF), Stochastic Gradient Descent (SGD), ו-Logistic Regression (LR)."
+[Reference](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf)
+
+מאמר זה מראה כיצד שילוב תחומים שונים של למידת מכונה יכול להפיק תוצאות מעניינות שיכולות לעזור לעצור את התפשטות החדשות המזויפות ולמנוע נזק אמיתי; במקרה זה, המניע היה התפשטות שמועות על טיפולי COVID שגרמו לאלימות המונית.
+
+### למידת מכונה במוזיאונים
+
+מוזיאונים נמצאים על סף מהפכת AI שבה קטלוג ודיגיטציה של אוספים ומציאת קשרים בין פריטים הופכים לקלים יותר ככל שהטכנולוגיה מתקדמת. פרויקטים כמו [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources.) עוזרים לפתוח את המסתורין של אוספים בלתי נגישים כמו הארכיונים של הוותיקן. אבל, ההיבט העסקי של מוזיאונים מרוויח גם ממודלים של למידת מכונה.
+
+לדוגמה, מכון האמנות של שיקגו בנה מודלים כדי לחזות מה מעניין את הקהל ומתי הוא יגיע לתערוכות. המטרה היא ליצור חוויות מבקר מותאמות ואופטימליות בכל פעם שהמשתמש מבקר במוזיאון. "במהלך שנת הכספים 2017, המודל חזה נוכחות והכנסות בדיוק של 1 אחוז, אומר אנדרו סימניק, סגן נשיא בכיר במכון האמנות."
+[Reference](https://www.chicagobusiness.com/article/20180518/ISSUE01/180519840/art-institute-of-chicago-uses-data-to-make-exhibit-choices)
+
+## 🏷 שיווק
+
+### פילוח לקוחות
+
+אסטרטגיות השיווק היעילות ביותר מכוונות ללקוחות בדרכים שונות בהתבסס על קבוצות שונות. במאמר זה, נדונים השימושים באלגוריתמי אשכולות כדי לתמוך בשיווק מובחן. שיווק מובחן עוזר לחברות לשפר את זיהוי המותג, להגיע ליותר לקוחות ולהרוויח יותר כסף.
+[Reference](https://ai.inqline.com/machine-learning-for-marketing-customer-segmentation/)
+
+## 🚀 אתגר
+
+זהו תחום נוסף שמרוויח מחלק מהטכניקות שלמדתם בקורס זה, וגלה כיצד הוא משתמש בלמידת מכונה.
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+
+## סקירה ולימוד עצמי
+
+לצוות מדעי הנתונים של Wayfair יש כמה סרטונים מעניינים על איך הם משתמשים בלמידת מכונה בחברה שלהם. שווה [להציץ](https://www.youtube.com/channel/UCe2PjkQXqOuwkW1gw6Ameuw/videos)!
+
+## משימה
+
+[חיפוש אוצר בלמידת מכונה](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/9-Real-World/1-Applications/assignment.md b/translations/he/9-Real-World/1-Applications/assignment.md
new file mode 100644
index 00000000..72325f04
--- /dev/null
+++ b/translations/he/9-Real-World/1-Applications/assignment.md
@@ -0,0 +1,27 @@
+
+# חיפוש אוצרות בלמידת מכונה
+
+## הוראות
+
+בשיעור הזה, למדתם על מגוון שימושים אמיתיים שנפתרו באמצעות למידת מכונה קלאסית. למרות שהשימוש בלמידה עמוקה, טכניקות וכלים חדשים ב-AI, וניצול רשתות נוירונים עזרו להאיץ את הפיתוח של כלים לסיוע בתחומים אלו, למידת מכונה קלאסית באמצעות הטכניקות שנלמדו בתוכנית הלימודים עדיין מחזיקה בערך רב.
+
+במשימה הזו, דמיינו שאתם משתתפים בהאקתון. השתמשו במה שלמדתם בתוכנית הלימודים כדי להציע פתרון באמצעות למידת מכונה קלאסית לבעיה באחד התחומים שנדונו בשיעור הזה. צרו מצגת שבה תדונו כיצד תיישמו את הרעיון שלכם. נקודות בונוס אם תוכלו לאסוף נתוני דוגמה ולבנות מודל למידת מכונה שיתמוך בקונספט שלכם!
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| --------- | ---------------------------------------------------------------- | --------------------------------------------- | ---------------- |
+| | מוצגת מצגת PowerPoint - בונוס על בניית מודל | מוצגת מצגת בסיסית ולא חדשנית | העבודה אינה שלמה |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/9-Real-World/2-Debugging-ML-Models/README.md b/translations/he/9-Real-World/2-Debugging-ML-Models/README.md
new file mode 100644
index 00000000..a349077a
--- /dev/null
+++ b/translations/he/9-Real-World/2-Debugging-ML-Models/README.md
@@ -0,0 +1,178 @@
+
+# פוסטסקריפט: איתור שגיאות במודלים של למידת מכונה באמצעות רכיבי לוח מחוונים של AI אחראי
+
+## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+## מבוא
+
+למידת מכונה משפיעה על חיי היומיום שלנו. הבינה המלאכותית מוצאת את דרכה למערכות החשובות ביותר שמשפיעות עלינו כיחידים ועל החברה שלנו, כמו בריאות, פיננסים, חינוך ותעסוקה. לדוגמה, מערכות ומודלים מעורבים במשימות קבלת החלטות יומיומיות, כמו אבחנות רפואיות או זיהוי הונאות. כתוצאה מכך, ההתקדמות בבינה מלאכותית יחד עם האימוץ המואץ שלה נתקלים בציפיות חברתיות מתפתחות ובתקנות הולכות וגוברות בתגובה. אנו רואים באופן קבוע תחומים שבהם מערכות AI ממשיכות לאכזב; הן חושפות אתגרים חדשים; וממשלות מתחילות להסדיר פתרונות AI. לכן, חשוב לנתח את המודלים הללו כדי להבטיח תוצאות הוגנות, אמינות, כוללות, שקופות ואחראיות לכולם.
+
+בתוכנית הלימודים הזו, נבחן כלים מעשיים שניתן להשתמש בהם כדי להעריך אם למודל יש בעיות של AI אחראי. טכניקות מסורתיות לאיתור שגיאות במודלים של למידת מכונה נוטות להתבסס על חישובים כמותיים כמו דיוק מצטבר או ממוצע הפסד שגיאה. דמיינו מה יכול לקרות כאשר הנתונים שבהם אתם משתמשים לבניית המודלים הללו חסרים דמוגרפיות מסוימות, כמו גזע, מגדר, השקפה פוליטית, דת, או מייצגים באופן לא פרופורציונלי דמוגרפיות כאלה. ומה לגבי מצב שבו הפלט של המודל מפורש כמעדיף דמוגרפיה מסוימת? זה יכול להוביל לייצוג יתר או חסר של קבוצות תכונות רגישות, מה שגורם לבעיות של הוגנות, הכללה או אמינות במודל. גורם נוסף הוא שמודלים של למידת מכונה נחשבים לקופסאות שחורות, מה שמקשה להבין ולהסביר מה מניע את התחזיות של המודל. כל אלה הם אתגרים שמדעני נתונים ומפתחי AI מתמודדים איתם כאשר אין להם כלים מתאימים לאיתור שגיאות ולהערכת ההוגנות או האמינות של מודל.
+
+בשיעור זה תלמדו על איתור שגיאות במודלים באמצעות:
+
+- **ניתוח שגיאות**: זיהוי אזורים בהתפלגות הנתונים שבהם למודל יש שיעורי שגיאה גבוהים.
+- **סקירת מודל**: ביצוע ניתוח השוואתי בין קבוצות נתונים שונות כדי לגלות פערים במדדי הביצועים של המודל.
+- **ניתוח נתונים**: חקירה של אזורים שבהם עשויה להיות ייצוג יתר או חסר של הנתונים, מה שעלול להטות את המודל להעדיף דמוגרפיה אחת על פני אחרת.
+- **חשיבות תכונות**: הבנה אילו תכונות מניעות את התחזיות של המודל ברמה גלובלית או מקומית.
+
+## דרישות מקדימות
+
+כדרישה מקדימה, אנא עיינו ב[כלי AI אחראי למפתחים](https://www.microsoft.com/ai/ai-lab-responsible-ai-dashboard)
+
+> 
+
+## ניתוח שגיאות
+
+מדדי ביצועים מסורתיים של מודלים המשמשים למדידת דיוק הם לרוב חישובים המבוססים על תחזיות נכונות מול שגויות. לדוגמה, קביעה שמודל מדויק ב-89% מהזמן עם הפסד שגיאה של 0.001 יכולה להיחשב כביצועים טובים. שגיאות אינן מחולקות באופן אחיד בנתוני הבסיס שלכם. ייתכן שתקבלו ציון דיוק של 89% למודל אך תגלו שיש אזורים שונים בנתונים שבהם המודל נכשל ב-42% מהזמן. ההשלכות של דפוסי כשל אלה עם קבוצות נתונים מסוימות יכולות להוביל לבעיות של הוגנות או אמינות. חשוב להבין את האזורים שבהם המודל מתפקד היטב או לא. אזורי הנתונים שבהם יש מספר גבוה של אי דיוקים במודל עשויים להתברר כדמוגרפיה נתונים חשובה.
+
+
+
+רכיב ניתוח השגיאות בלוח המחוונים של RAI ממחיש כיצד כשלי המודל מחולקים בין קבוצות שונות באמצעות ויזואליזציה של עץ. זה שימושי בזיהוי תכונות או אזורים שבהם יש שיעור שגיאות גבוה בנתונים שלכם. על ידי צפייה במקור רוב אי הדיוקים של המודל, תוכלו להתחיל לחקור את שורש הבעיה. ניתן גם ליצור קבוצות נתונים כדי לבצע ניתוח עליהן. קבוצות נתונים אלו מסייעות בתהליך איתור השגיאות כדי לקבוע מדוע ביצועי המודל טובים בקבוצה אחת אך שגויים באחרת.
+
+
+
+הסימנים הוויזואליים במפת העץ מסייעים באיתור אזורי הבעיה במהירות. לדוגמה, ככל שצבע אדום כהה יותר מופיע בצומת עץ, כך שיעור השגיאות גבוה יותר.
+
+מפת חום היא פונקציונליות ויזואליזציה נוספת שמשתמשים יכולים להשתמש בה כדי לחקור את שיעור השגיאות באמצעות תכונה אחת או שתיים ולמצוא גורם תורם לשגיאות המודל על פני כל קבוצת הנתונים או הקבוצות.
+
+
+
+השתמשו בניתוח שגיאות כאשר אתם צריכים:
+
+* להבין לעומק כיצד כשלי המודל מחולקים על פני קבוצת נתונים ועל פני מספר ממדי קלט ותכונות.
+* לפרק את מדדי הביצועים המצטברים כדי לגלות באופן אוטומטי קבוצות שגויות וליידע את הצעדים הממוקדים שלכם למיתון הבעיה.
+
+## סקירת מודל
+
+הערכת ביצועי מודל למידת מכונה דורשת הבנה הוליסטית של התנהגותו. ניתן להשיג זאת על ידי סקירת יותר ממדד אחד, כמו שיעור שגיאות, דיוק, ריקול, דיוק תחזיות או MAE (שגיאה מוחלטת ממוצעת), כדי למצוא פערים בין מדדי ביצועים. מדד ביצועים אחד עשוי להיראות מצוין, אך אי דיוקים יכולים להתגלות במדד אחר. בנוסף, השוואת המדדים לפערים על פני כל קבוצת הנתונים או הקבוצות עוזרת להאיר את האזורים שבהם המודל מתפקד היטב או לא. זה חשוב במיוחד כדי לראות את ביצועי המודל בין תכונות רגישות לעומת לא רגישות (למשל, גזע, מגדר או גיל של מטופל) כדי לחשוף אי הוגנות פוטנציאלית במודל. לדוגמה, גילוי שהמודל שגוי יותר בקבוצה שיש לה תכונות רגישות יכול לחשוף אי הוגנות פוטנציאלית במודל.
+
+רכיב סקירת המודל בלוח המחוונים של RAI מסייע לא רק בניתוח מדדי הביצועים של ייצוג הנתונים בקבוצה, אלא גם נותן למשתמשים את היכולת להשוות את התנהגות המודל בין קבוצות שונות.
+
+
+
+הפונקציונליות של ניתוח מבוסס תכונות של הרכיב מאפשרת למשתמשים לצמצם תת-קבוצות נתונים בתוך תכונה מסוימת כדי לזהות אנומליות ברמה גרעינית. לדוגמה, ללוח המחוונים יש אינטליגנציה מובנית ליצירת קבוצות באופן אוטומטי עבור תכונה שנבחרה על ידי המשתמש (למשל, *"time_in_hospital < 3"* או *"time_in_hospital >= 7"*). זה מאפשר למשתמש לבודד תכונה מסוימת מקבוצת נתונים גדולה יותר כדי לראות אם היא משפיעה על תוצאות שגויות של המודל.
+
+
+
+רכיב סקירת המודל תומך בשני סוגים של מדדי פערים:
+
+**פער בביצועי המודל**: קבוצת מדדים זו מחשבת את הפער (ההבדל) בערכים של מדד הביצועים הנבחר בין תת-קבוצות נתונים. הנה כמה דוגמאות:
+
+* פער בשיעור דיוק
+* פער בשיעור שגיאות
+* פער בדיוק תחזיות
+* פער בריקול
+* פער בשגיאה מוחלטת ממוצעת (MAE)
+
+**פער בשיעור הבחירה**: מדד זה מכיל את ההבדל בשיעור הבחירה (תחזית חיובית) בין תת-קבוצות. דוגמה לכך היא הפער בשיעורי אישור הלוואות. שיעור הבחירה מתייחס לחלק מנקודות הנתונים בכל מחלקה שמסווגות כ-1 (במיון בינארי) או להתפלגות ערכי התחזיות (ברגרסיה).
+
+## ניתוח נתונים
+
+> "אם תענה את הנתונים מספיק זמן, הם יודו בכל דבר" - רונלד קואז
+
+האמירה הזו נשמעת קיצונית, אבל נכון שנתונים יכולים להיות מנוצלים כדי לתמוך בכל מסקנה. מניפולציה כזו יכולה לפעמים לקרות באופן לא מכוון. כבני אדם, לכולנו יש הטיות, ולעיתים קרובות קשה לדעת באופן מודע מתי אנו מכניסים הטיה לנתונים. הבטחת הוגנות ב-AI ולמידת מכונה נותרת אתגר מורכב.
+
+נתונים הם נקודת עיוור גדולה עבור מדדי ביצועים מסורתיים של מודלים. ייתכן שיש לכם ציוני דיוק גבוהים, אך זה לא תמיד משקף את הטיה הנתונים הבסיסית שיכולה להיות בקבוצת הנתונים שלכם. לדוגמה, אם קבוצת נתונים של עובדים כוללת 27% נשים בתפקידים בכירים בחברה ו-73% גברים באותו רמה, מודל AI לפרסום משרות שמאומן על נתונים אלו עשוי לכוון בעיקר לקהל גברים עבור משרות בכירות. חוסר איזון זה בנתונים הטה את תחזיות המודל להעדיף מגדר אחד. זה חושף בעיית הוגנות שבה יש הטיה מגדרית במודל AI.
+
+רכיב ניתוח הנתונים בלוח המחוונים של RAI מסייע בזיהוי אזורים שבהם יש ייצוג יתר או חסר בקבוצת הנתונים. הוא עוזר למשתמשים לאבחן את שורש הבעיות של שגיאות ובעיות הוגנות שנגרמות מחוסר איזון בנתונים או מחוסר ייצוג של קבוצת נתונים מסוימת. זה נותן למשתמשים את היכולת להציג ויזואלית קבוצות נתונים על סמך תחזיות ותוצאות בפועל, קבוצות שגיאות ותכונות ספציפיות. לפעמים גילוי קבוצת נתונים לא מיוצגת יכול גם לחשוף שהמודל לא לומד היטב, ולכן יש אי דיוקים גבוהים. מודל שיש לו הטיה נתונים הוא לא רק בעיית הוגנות אלא גם מראה שהמודל אינו כולל או אמין.
+
+
+
+השתמשו בניתוח נתונים כאשר אתם צריכים:
+
+* לחקור את סטטיסטיקות קבוצת הנתונים שלכם על ידי בחירת מסננים שונים כדי לחלק את הנתונים שלכם לממדים שונים (המכונים גם קבוצות).
+* להבין את התפלגות קבוצת הנתונים שלכם על פני קבוצות שונות וקבוצות תכונות.
+* לקבוע האם הממצאים שלכם הקשורים להוגנות, ניתוח שגיאות וסיבתיות (שנגזרו מרכיבים אחרים בלוח המחוונים) הם תוצאה של התפלגות קבוצת הנתונים שלכם.
+* להחליט באילו אזורים לאסוף יותר נתונים כדי למתן שגיאות שנובעות מבעיות ייצוג, רעש תוויות, רעש תכונות, הטיה תוויות וגורמים דומים.
+
+## פרשנות מודל
+
+מודלים של למידת מכונה נוטים להיות קופסאות שחורות. הבנת אילו תכונות נתונים מרכזיות מניעות את התחזיות של מודל יכולה להיות מאתגרת. חשוב לספק שקיפות לגבי הסיבה שמודל עושה תחזית מסוימת. לדוגמה, אם מערכת AI חוזה שמטופל סוכרתי נמצא בסיכון לחזור לבית חולים תוך פחות מ-30 ימים, עליה לספק נתונים תומכים שהובילו לתחזית שלה. נתונים תומכים אלו מביאים שקיפות שעוזרת לרופאים או בתי חולים לקבל החלטות מושכלות. בנוסף, היכולת להסביר מדוע מודל עשה תחזית עבור מטופל מסוים מאפשרת אחריות עם תקנות בריאות. כאשר אתם משתמשים במודלים של למידת מכונה בדרכים שמשפיעות על חיי אנשים, חשוב להבין ולהסביר מה משפיע על התנהגות המודל. פרשנות והסבר מודל עוזרים לענות על שאלות בתרחישים כמו:
+
+* איתור שגיאות במודל: מדוע המודל שלי עשה את הטעות הזו? איך אני יכול לשפר את המודל שלי?
+* שיתוף פעולה בין אדם ל-AI: איך אני יכול להבין ולסמוך על ההחלטות של המודל?
+* עמידה בתקנות: האם המודל שלי עומד בדרישות החוקיות?
+
+רכיב חשיבות התכונות בלוח המחוונים של RAI עוזר לכם לאתר שגיאות ולקבל הבנה מקיפה של איך מודל עושה תחזיות. זהו גם כלי שימושי עבור אנשי מקצוע בלמידת מכונה ומקבלי החלטות להסביר ולהציג ראיות לתכונות שמשפיעות על התנהגות המודל לצורך עמידה בתקנות. לאחר מכן, משתמשים יכולים לחקור הסברים גלובליים ומקומיים כדי לאמת אילו תכונות מניעות את התחזיות של המודל. הסברים גלובליים מציגים את התכונות המרכזיות שהשפיעו על התחזיות הכוללות של המודל. הסברים מקומיים מציגים אילו תכונות הובילו לתחזית של המודל עבור מקרה יחיד. היכולת להעריך הסברים מקומיים מועילה גם באיתור שגיאות או בביקורת מקרה ספציפי כדי להבין ולהסביר מדוע מודל עשה תחזית מדויקת או שגויה.
+
+
+
+* הסברים גלובליים: לדוגמה, אילו תכונות משפיעות על ההתנהגות הכוללת של מודל חזרה לבית חולים של חולי סוכרת?
+* הסברים מקומיים: לדוגמה, מדוע מטופל סוכרתי מעל גיל 60 עם אשפוזים קודמים חזה שיחזור או לא יחזור לבית חולים תוך 30 ימים?
+
+בתהליך איתור שגיאות של בחינת ביצועי המודל על פני קבוצות שונות, חשיבות התכונות מראה מהי רמת ההשפעה של תכונה על פני הקבוצות. זה עוזר לחשוף אנומליות כאשר משווים את רמת ההשפעה של התכונה על תחזיות שגויות של המודל. רכיב חשיבות התכונות יכול להראות אילו ערכים בתכונה השפיעו באופן חיובי או שלילי על תוצאות המודל. לדוגמה, אם מודל עשה תחזית שגויה, הרכיב נותן לכם את היכולת להעמיק ולזהות אילו תכונות או ערכי תכונות הובילו לתחזית. רמת פירוט זו עוזרת לא רק באיתור שגיאות אלא מספקת שקיפות ואחריות במצבי ביקורת. לבסוף, הרכיב יכול לעזור לכם לזהות בעיות הוגנות. לדוגמה, אם תכונה רגישה כמו אתניות או מגדר משפיעה מאוד על תחזיות המודל, זה יכול להיות סימן להטיה גזעית או מגדרית במודל.
+
+
+
+השתמשו בפרשנות כאשר אתם צריכים:
+
+* לקבוע עד כמה ניתן לסמוך על תחזיות מערכת ה-AI שלכם על ידי הבנת אילו תכונות הן החשובות ביותר עבור התחזיות.
+* לגשת לאיתור שגיאות במודל שלכם על ידי הבנתו תחילה וזיהוי האם המודל משתמש בתכונות בריאות או רק בקורלציות שגויות.
+* לחשוף מקורות פוטנציאליים של אי הוגנות על ידי הבנת האם המודל מבסס תחזיות על תכונות רגישות או על תכונות שמקושרות מאוד אליהן.
+* לבנות אמון משתמש בהחלטות המודל שלכם על ידי יצירת הסברים מקומיים להמחשת התוצאות שלהם.
+* להשלים ביקורת רגולטורית של מערכת AI כדי לאמת מודלים ולפקח על ההשפעה של החלטות המודל על בני אדם.
+
+## סיכום
+
+כל רכיבי לוח המחוונים של RAI הם כלים מעשיים שעוזרים לכם לבנות מודלים של למידת מכונה שפוגעים פחות ומעוררים יותר אמון בחברה.
+- **ייצוג יתר או חסר**. הרעיון הוא שקבוצה מסוימת אינה נראית במקצוע מסוים, וכל שירות או פונקציה שממשיכים לקדם זאת תורמים לנזק.
+
+### לוח מחוונים של Azure RAI
+
+[לוח המחוונים של Azure RAI](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) מבוסס על כלים בקוד פתוח שפותחו על ידי מוסדות אקדמיים וארגונים מובילים, כולל Microsoft. כלים אלו חיוניים למדעני נתונים ומפתחי AI כדי להבין טוב יותר את התנהגות המודל, לגלות ולתקן בעיות לא רצויות במודלים של AI.
+
+- למדו כיצד להשתמש ברכיבים השונים על ידי עיון ב[תיעוד לוח המחוונים של RAI.](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu)
+
+- עיינו בכמה [מחברות לדוגמה של לוח המחוונים של RAI](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) לצורך איתור בעיות בתרחישים של AI אחראי ב-Azure Machine Learning.
+
+---
+## 🚀 אתגר
+
+כדי למנוע מראש הטיה סטטיסטית או הטיה בנתונים, עלינו:
+
+- להבטיח מגוון רקעים ונקודות מבט בקרב האנשים שעובדים על המערכות
+- להשקיע במאגרי נתונים שמשקפים את המגוון בחברה שלנו
+- לפתח שיטות טובות יותר לזיהוי ותיקון הטיה כאשר היא מתרחשת
+
+חשבו על תרחישים אמיתיים שבהם אי-צדק ניכר בבניית מודלים ובשימוש בהם. מה עוד כדאי לקחת בחשבון?
+
+## [שאלון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
+## סקירה ולימוד עצמי
+
+בשיעור זה, למדתם כמה מהכלים המעשיים לשילוב AI אחראי בלמידת מכונה.
+
+צפו בסדנה זו כדי להעמיק בנושאים:
+
+- לוח מחוונים של AI אחראי: פתרון כולל ליישום RAI בפועל מאת Besmira Nushi ו-Mehrnoosh Sameki
+
+[](https://www.youtube.com/watch?v=f1oaDNl3djg "לוח מחוונים של AI אחראי: פתרון כולל ליישום RAI בפועל")
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: לוח מחוונים של AI אחראי: פתרון כולל ליישום RAI בפועל מאת Besmira Nushi ו-Mehrnoosh Sameki
+
+עיינו בחומרים הבאים כדי ללמוד עוד על AI אחראי וכיצד לבנות מודלים אמינים יותר:
+
+- כלים של Microsoft ללוח מחוונים של RAI לצורך איתור בעיות במודלים של ML: [משאבי כלים ל-AI אחראי](https://aka.ms/rai-dashboard)
+
+- חקרו את ערכת הכלים ל-AI אחראי: [Github](https://github.com/microsoft/responsible-ai-toolbox)
+
+- מרכז המשאבים של Microsoft ל-AI אחראי: [משאבי AI אחראי – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- קבוצת המחקר FATE של Microsoft: [FATE: צדק, אחריות, שקיפות ואתיקה ב-AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+## משימה
+
+[חקרו את לוח המחוונים של RAI](assignment.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/9-Real-World/2-Debugging-ML-Models/assignment.md b/translations/he/9-Real-World/2-Debugging-ML-Models/assignment.md
new file mode 100644
index 00000000..f3cf51a0
--- /dev/null
+++ b/translations/he/9-Real-World/2-Debugging-ML-Models/assignment.md
@@ -0,0 +1,25 @@
+
+# חקור את לוח המחוונים של AI אחראי (RAI)
+
+## הוראות
+
+בשיעור זה למדת על לוח המחוונים של RAI, אוסף של רכיבים המבוססים על כלים "קוד פתוח" שנועדו לעזור למדעני נתונים לבצע ניתוח שגיאות, חקר נתונים, הערכת הוגנות, פרשנות מודלים, הערכות נגד/מה-אם וניתוח סיבתי במערכות AI. עבור משימה זו, חקור כמה מדוגמאות [מחברות](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) של לוח המחוונים של RAI ודווח על ממצאיך במאמר או מצגת.
+
+## קריטריונים להערכה
+
+| קריטריון | מצטיין | מספק | דורש שיפור |
+| -------- | --------- | -------- | ----------------- |
+| | מאמר או מצגת PowerPoint מוצגים, דנים ברכיבי לוח המחוונים של RAI, במחברת שהורצה ובמסקנות שהוסקו מהרצתה | מאמר מוצג ללא מסקנות | לא מוצג מאמר |
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/9-Real-World/README.md b/translations/he/9-Real-World/README.md
new file mode 100644
index 00000000..c664cb03
--- /dev/null
+++ b/translations/he/9-Real-World/README.md
@@ -0,0 +1,32 @@
+
+# פוסטסקריפט: יישומים בעולם האמיתי של למידת מכונה קלאסית
+
+בחלק זה של התוכנית, תיחשפו לכמה יישומים בעולם האמיתי של למידת מכונה קלאסית. חיפשנו ברחבי האינטרנט מאמרים ומחקרים על יישומים שהשתמשו באסטרטגיות אלו, תוך הימנעות מרשתות נוירונים, למידה עמוקה ובינה מלאכותית ככל האפשר. תלמדו כיצד למידת מכונה משמשת במערכות עסקיות, יישומים אקולוגיים, פיננסים, אמנות ותרבות, ועוד.
+
+
+
+> צילום על ידי אלקסיס פובט ב-Unsplash
+
+## שיעור
+
+1. [יישומים בעולם האמיתי עבור למידת מכונה](1-Applications/README.md)
+2. [ניפוי שגיאות במודלים של למידת מכונה באמצעות רכיבי לוח מחוונים של AI אחראי](2-Debugging-ML-Models/README.md)
+
+## קרדיטים
+
+"יישומים בעולם האמיתי" נכתב על ידי צוות אנשים, כולל [ג'ן לופר](https://twitter.com/jenlooper) ו-[אורנלה אלטוניאן](https://twitter.com/ornelladotcom).
+
+"ניפוי שגיאות במודלים של למידת מכונה באמצעות רכיבי לוח מחוונים של AI אחראי" נכתב על ידי [רות יעקובו](https://twitter.com/ruthieyakubu)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/CODE_OF_CONDUCT.md b/translations/he/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..95a94586
--- /dev/null
+++ b/translations/he/CODE_OF_CONDUCT.md
@@ -0,0 +1,23 @@
+
+# קוד ההתנהגות של קוד פתוח של מיקרוסופט
+
+הפרויקט הזה אימץ את [קוד ההתנהגות של קוד פתוח של מיקרוסופט](https://opensource.microsoft.com/codeofconduct/).
+
+משאבים:
+
+- [קוד ההתנהגות של קוד פתוח של מיקרוסופט](https://opensource.microsoft.com/codeofconduct/)
+- [שאלות נפוצות על קוד ההתנהגות של מיקרוסופט](https://opensource.microsoft.com/codeofconduct/faq/)
+- צרו קשר עם [opencode@microsoft.com](mailto:opencode@microsoft.com) לשאלות או חששות
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/CONTRIBUTING.md b/translations/he/CONTRIBUTING.md
new file mode 100644
index 00000000..6f1ba870
--- /dev/null
+++ b/translations/he/CONTRIBUTING.md
@@ -0,0 +1,25 @@
+
+# תרומה
+
+הפרויקט הזה מקבל בברכה תרומות והצעות. רוב התרומות דורשות ממך להסכים להסכם רישיון תורם (CLA) שמצהיר שיש לך את הזכות, ואתה אכן מעניק לנו את הזכויות להשתמש בתרומתך. לפרטים נוספים, בקר בכתובת https://cla.microsoft.com.
+
+> חשוב: בעת תרגום טקסט במאגר הזה, אנא וודא שאינך משתמש בתרגום מכונה. אנו נוודא את התרגומים דרך הקהילה, לכן אנא התנדב לתרגום רק בשפות שבהן אתה שולט היטב.
+
+כאשר אתה מגיש בקשת משיכה (pull request), CLA-bot יקבע באופן אוטומטי אם עליך לספק CLA ויעצב את הבקשה בהתאם (לדוגמה, תווית, תגובה). פשוט עקוב אחר ההוראות שסופקו על ידי הבוט. תצטרך לעשות זאת רק פעם אחת בכל המאגרים שמשתמשים ב-CLA שלנו.
+
+הפרויקט הזה אימץ את [קוד ההתנהגות של קוד פתוח של Microsoft](https://opensource.microsoft.com/codeofconduct/).
+למידע נוסף, ראה את [שאלות נפוצות על קוד ההתנהגות](https://opensource.microsoft.com/codeofconduct/faq/)
+או צור קשר עם [opencode@microsoft.com](mailto:opencode@microsoft.com) לכל שאלה או הערה נוספת.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/README.md b/translations/he/README.md
new file mode 100644
index 00000000..d46016f7
--- /dev/null
+++ b/translations/he/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/)
+
+### 🌐 תמיכה רב-שפתית
+
+#### נתמך באמצעות GitHub Action (אוטומטי ותמיד מעודכן)
+
+[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](./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](../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)
+
+#### הצטרפו לקהילה
+
+[](https://discord.gg/kzRShWzttr)
+
+# למידת מכונה למתחילים - תוכנית לימודים
+
+> 🌍 מסע מסביב לעולם תוך חקר למידת מכונה דרך תרבויות עולמיות 🌍
+
+צוות Cloud Advocates במיקרוסופט שמח להציע תוכנית לימודים בת 12 שבועות ו-26 שיעורים בנושא **למידת מכונה**. בתוכנית זו תלמדו על מה שמכונה לעיתים **למידת מכונה קלאסית**, תוך שימוש בעיקר בספריית Scikit-learn והימנעות מלמידה עמוקה, שמכוסה בתוכנית הלימודים שלנו [AI למתחילים](https://aka.ms/ai4beginners). ניתן לשלב את השיעורים הללו עם תוכנית הלימודים שלנו ['מדעי הנתונים למתחילים'](https://aka.ms/ds4beginners), גם כן!
+
+צאו איתנו למסע מסביב לעולם תוך יישום טכניקות קלאסיות על נתונים מאזורים שונים בעולם. כל שיעור כולל שאלונים לפני ואחרי השיעור, הוראות כתובות להשלמת השיעור, פתרון, משימה ועוד. הפדגוגיה מבוססת הפרויקטים שלנו מאפשרת לכם ללמוד תוך כדי בנייה, שיטה מוכחת להטמעת מיומנויות חדשות.
+
+**✍️ תודה רבה למחברים שלנו** ג'ן לופר, סטיבן האוול, פרנצ'סקה לזארי, טומומי אימורה, קסי ברביו, דמיטרי סושניקוב, כריס נורינג, אנירבן מוקרג'י, אורנלה אלטוניאן, רות יעקובו ואיימי בויד
+
+**🎨 תודה גם למאיירים שלנו** טומומי אימורה, דאסאני מדיפאלי וג'ן לופר
+
+**🙏 תודה מיוחדת 🙏 למחברי, מבקרי ותורמי התוכן מקרב שגרירי הסטודנטים של מיקרוסופט**, במיוחד רישיט דגלי, מוחמד סאקיב חאן אינאן, רוהאן ראג', אלכסנדרו פטרסקו, אבישק ג'ייסוואל, נאורין טבאסום, יואן סמואילה וסניגדה אגרוול
+
+**🤩 תודה נוספת לשגרירי הסטודנטים של מיקרוסופט אריק וואנג'או, ג'סלין סונדי ווידושי גופטה על שיעורי R שלנו!**
+
+# התחלת העבודה
+
+בצעו את השלבים הבאים:
+1. **פיצול הריפוזיטורי**: לחצו על כפתור "Fork" בפינה הימנית העליונה של הדף.
+2. **שכפול הריפוזיטורי**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
+
+> [מצאו את כל המשאבים הנוספים לקורס זה באוסף Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+**[סטודנטים](https://aka.ms/student-page)**, כדי להשתמש בתוכנית הלימודים הזו, פצלו את הריפוזיטורי כולו לחשבון GitHub שלכם והשלימו את התרגילים בעצמכם או בקבוצה:
+
+- התחילו עם שאלון לפני השיעור.
+- קראו את השיעור והשלימו את הפעילויות, תוך עצירה והרהור בכל בדיקת ידע.
+- נסו ליצור את הפרויקטים על ידי הבנת השיעורים במקום להריץ את קוד הפתרון; עם זאת, קוד זה זמין בתיקיות `/solution` בכל שיעור מבוסס פרויקט.
+- בצעו את השאלון לאחר השיעור.
+- השלימו את האתגר.
+- השלימו את המשימה.
+- לאחר השלמת קבוצת שיעורים, בקרו ב-[לוח הדיונים](https://github.com/microsoft/ML-For-Beginners/discussions) ו"למדו בקול רם" על ידי מילוי טופס PAT המתאים. 'PAT' הוא כלי הערכת התקדמות שהוא טופס שאתם ממלאים כדי להעמיק את הלמידה שלכם. תוכלו גם להגיב ל-PATs אחרים כדי שנלמד יחד.
+
+> ללימוד נוסף, אנו ממליצים לעקוב אחר [מודולים ונתיבי לימוד של Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
+
+**מורים**, [הוספנו כמה הצעות](for-teachers.md) כיצד להשתמש בתוכנית הלימודים הזו.
+
+---
+
+## סרטוני הדרכה
+
+חלק מהשיעורים זמינים כסרטונים קצרים. תוכלו למצוא את כולם בתוך השיעורים, או ברשימת ההשמעה [ML למתחילים בערוץ YouTube של Microsoft Developer](https://aka.ms/ml-beginners-videos) על ידי לחיצה על התמונה למטה.
+
+[](https://aka.ms/ml-beginners-videos)
+
+---
+
+## הכירו את הצוות
+
+[](https://youtu.be/Tj1XWrDSYJU)
+
+**Gif מאת** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
+
+> 🎥 לחצו על התמונה למעלה לצפייה בסרטון על הפרויקט והאנשים שיצרו אותו!
+
+---
+
+## פדגוגיה
+
+בחרנו שני עקרונות פדגוגיים בעת בניית תוכנית הלימודים הזו: להבטיח שהיא מבוססת **פרויקטים מעשיים** ושכוללת **שאלונים תכופים**. בנוסף, לתוכנית הלימודים יש **נושא משותף** שמעניק לה לכידות.
+
+על ידי הבטחת התאמת התוכן לפרויקטים, התהליך נעשה יותר מרתק עבור סטודנטים ושימור המושגים יוגבר. בנוסף, שאלון בעל סיכון נמוך לפני השיעור מכוון את כוונת הסטודנט ללמידת הנושא, בעוד ששאלון שני לאחר השיעור מבטיח שימור נוסף. תוכנית הלימודים הזו תוכננה להיות גמישה ומהנה וניתן לקחת אותה בשלמותה או בחלקים. הפרויקטים מתחילים קטנים והופכים מורכבים יותר עד סוף מחזור 12 השבועות. תוכנית הלימודים כוללת גם נספח על יישומים בעולם האמיתי של למידת מכונה, שניתן להשתמש בו כקרדיט נוסף או כבסיס לדיון.
+
+> מצאו את [קוד ההתנהגות שלנו](CODE_OF_CONDUCT.md), [הנחיות לתרומה](CONTRIBUTING.md), ו[הנחיות לתרגום](TRANSLATIONS.md). נשמח לקבל את המשוב הבונה שלכם!
+
+## כל שיעור כולל
+
+- סקיצות אופציונליות
+- סרטון משלים אופציונלי
+- סרטון הדרכה (חלק מהשיעורים בלבד)
+- [שאלון חימום לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
+- שיעור כתוב
+- עבור שיעורים מבוססי פרויקט, מדריכים שלב-אחר-שלב כיצד לבנות את הפרויקט
+- בדיקות ידע
+- אתגר
+- קריאה משלימה
+- משימה
+- [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
+
+> **הערה לגבי שפות**: שיעורים אלו נכתבו בעיקר ב-Python, אך רבים זמינים גם ב-R. כדי להשלים שיעור ב-R, עברו לתיקיית `/solution` וחפשו שיעורי R. הם כוללים סיומת .rmd שמייצגת קובץ **R Markdown** שניתן להגדירו כקובץ שמשלב `קטעי קוד` (של R או שפות אחרות) ו`כותרת YAML` (שמנחה כיצד לעצב פלטים כמו PDF) בתוך `מסמך Markdown`. כך, הוא משמש כמסגרת כתיבה לדוגמה עבור מדעי הנתונים מכיוון שהוא מאפשר לכם לשלב את הקוד שלכם, את הפלט שלו ואת המחשבות שלכם על ידי כתיבתם ב-Markdown. יתרה מכך, ניתן לעבד מסמכי R Markdown לפורמטים כמו PDF, HTML או Word.
+
+> **הערה לגבי שאלונים**: כל השאלונים נמצאים בתיקיית [Quiz App](../../quiz-app), עבור סך של 52 שאלונים עם שלוש שאלות כל אחד. הם מקושרים מתוך השיעורים אך ניתן להריץ את אפליקציית השאלונים באופן מקומי; עקבו אחר ההוראות בתיקיית `quiz-app` כדי לארח אותה באופן מקומי או לפרוס אותה ב-Azure.
+
+| מספר שיעור | נושא | קבוצת שיעורים | מטרות למידה | שיעור מקושר | מחבר |
+| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
+| 01 | מבוא ללמידת מכונה | [מבוא](1-Introduction/README.md) | למדו את המושגים הבסיסיים מאחורי למידת מכונה | [שיעור](1-Introduction/1-intro-to-ML/README.md) | מוחמד |
+| 02 | ההיסטוריה של למידת מכונה | [מבוא](1-Introduction/README.md) | למדו את ההיסטוריה שמאחורי התחום | [שיעור](1-Introduction/2-history-of-ML/README.md) | ג'ן ואיימי |
+| 03 | הוגנות ולמידת מכונה | [מבוא](1-Introduction/README.md) | מהם הנושאים הפילוסופיים החשובים סביב הוגנות שעל הסטודנטים לשקול בעת בניית ויישום מודלים של למידת מכונה? | [שיעור](1-Introduction/3-fairness/README.md) | טומומי |
+| 04 | טכניקות ללמידת מכונה | [Introduction](1-Introduction/README.md) | אילו טכניקות חוקרי למידת מכונה משתמשים כדי לבנות מודלים של למידת מכונה? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | כריס וג'ן |
+| 05 | מבוא לרגרסיה | [Regression](2-Regression/README.md) | התחילו עם Python ו-Scikit-learn עבור מודלים של רגרסיה |
+
|
+| 16 | מבוא לעיבוד שפה טבעית ☕️ | [Natural language processing](6-NLP/README.md) | למדו את היסודות של עיבוד שפה טבעית על ידי בניית בוט פשוט | [Python](6-NLP/1-Introduction-to-NLP/README.md) | סטיבן |
+| 17 | משימות נפוצות בעיבוד שפה טבעית ☕️ | [Natural language processing](6-NLP/README.md) | העמיקו את הידע שלכם בעיבוד שפה טבעית על ידי הבנת משימות נפוצות הנדרשות בעת עבודה עם מבני שפה | [Python](6-NLP/2-Tasks/README.md) | סטיבן |
+| 18 | תרגום וניתוח רגשות ♥️ | [Natural language processing](6-NLP/README.md) | תרגום וניתוח רגשות עם ג'יין אוסטן | [Python](6-NLP/3-Translation-Sentiment/README.md) | סטיבן |
+| 19 | מלונות רומנטיים באירופה ♥️ | [Natural language processing](6-NLP/README.md) | ניתוח רגשות עם ביקורות על מלונות 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | סטיבן |
+| 20 | מלונות רומנטיים באירופה ♥️ | [Natural language processing](6-NLP/README.md) | ניתוח רגשות עם ביקורות על מלונות 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | סטיבן |
+| 21 | מבוא לחיזוי סדרות זמן | [Time series](7-TimeSeries/README.md) | מבוא לחיזוי סדרות זמן | [Python](7-TimeSeries/1-Introduction/README.md) | פרנצ'סקה |
+| 22 | ⚡️ שימוש עולמי בחשמל ⚡️ - חיזוי סדרות זמן עם ARIMA | [Time series](7-TimeSeries/README.md) | חיזוי סדרות זמן עם ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | פרנצ'סקה |
+| 23 | ⚡️ שימוש עולמי בחשמל ⚡️ - חיזוי סדרות זמן עם SVR | [Time series](7-TimeSeries/README.md) | חיזוי סדרות זמן עם Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | אנירבן |
+| 24 | מבוא ללמידת חיזוק | [Reinforcement learning](8-Reinforcement/README.md) | מבוא ללמידת חיזוק עם Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | דמיטרי |
+| 25 | עזרו לפיטר להימנע מהזאב! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | למידת חיזוק Gym | [Python](8-Reinforcement/2-Gym/README.md) | דמיטרי |
+| Postscript | תרחישים ויישומים של למידת מכונה בעולם האמיתי | [ML in the Wild](9-Real-World/README.md) | יישומים מעניינים ומרתקים של למידת מכונה קלאסית | [Lesson](9-Real-World/1-Applications/README.md) | צוות |
+| Postscript | ניפוי שגיאות מודלים בלמידת מכונה באמצעות לוח מחוונים RAI | [ML in the Wild](9-Real-World/README.md) | ניפוי שגיאות מודלים בלמידת מכונה באמצעות רכיבי לוח מחוונים של AI אחראי | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | רות יעקובו |
+
+> [מצאו את כל המשאבים הנוספים לקורס זה באוסף Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+## גישה לא מקוונת
+
+ניתן להפעיל את התיעוד הזה לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). עשו Fork למאגר זה, [התקינו את Docsify](https://docsify.js.org/#/quickstart) במחשב המקומי שלכם, ואז בתיקיית השורש של מאגר זה, הקלידו `docsify serve`. האתר יוגש על פורט 3000 ב-localhost שלכם: `localhost:3000`.
+
+## PDFs
+
+מצאו קובץ PDF של תוכנית הלימודים עם קישורים [כאן](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
+
+
+## 🎒 קורסים נוספים
+
+הצוות שלנו מייצר קורסים נוספים! בדקו:
+
+- [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)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/SECURITY.md b/translations/he/SECURITY.md
new file mode 100644
index 00000000..558a9860
--- /dev/null
+++ b/translations/he/SECURITY.md
@@ -0,0 +1,51 @@
+
+## אבטחה
+
+מיקרוסופט מתייחסת ברצינות לאבטחת מוצרי התוכנה והשירותים שלה, כולל כל מאגרי הקוד המקוריים המנוהלים דרך הארגונים שלנו ב-GitHub, הכוללים [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), ו-[ארגוני GitHub שלנו](https://opensource.microsoft.com/).
+
+אם אתם מאמינים שמצאתם פגיעות אבטחה באחד ממאגרי הקוד שבבעלות מיקרוסופט, אשר עומדת בהגדרת [פגיעות אבטחה של מיקרוסופט](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)?WT.mc_id=academic-77952-leestott), אנא דווחו לנו כפי שמתואר להלן.
+
+## דיווח על בעיות אבטחה
+
+**אנא אל תדווחו על פגיעות אבטחה דרך בעיות ציבוריות ב-GitHub.**
+
+במקום זאת, דווחו עליהן למרכז התגובה לאבטחת מידע של מיקרוסופט (MSRC) בכתובת [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
+
+אם אתם מעדיפים לשלוח דיווח ללא התחברות, שלחו דוא"ל לכתובת [secure@microsoft.com](mailto:secure@microsoft.com). אם אפשר, הצפינו את ההודעה שלכם באמצעות מפתח ה-PGP שלנו; ניתן להוריד אותו מדף [Microsoft Security Response Center PGP Key](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
+
+אתם אמורים לקבל תגובה תוך 24 שעות. אם מסיבה כלשהי לא קיבלתם תגובה, אנא עקבו אחר הדיווח באמצעות דוא"ל כדי לוודא שההודעה המקורית שלכם התקבלה. מידע נוסף ניתן למצוא ב-[microsoft.com/msrc](https://www.microsoft.com/msrc).
+
+אנא כללו את המידע המבוקש המפורט להלן (ככל שתוכלו לספק) כדי לעזור לנו להבין טוב יותר את מהות הבעיה והיקפה:
+
+ * סוג הבעיה (לדוגמה, גלישת חוצץ, הזרקת SQL, סקריפטים בין אתרים וכו')
+ * נתיבי הקבצים המלאים הקשורים להופעת הבעיה
+ * מיקום הקוד הפגוע (תג/ענף/מחויבות או URL ישיר)
+ * כל תצורה מיוחדת הנדרשת לשחזור הבעיה
+ * הוראות מפורטות לשחזור הבעיה
+ * קוד הוכחת רעיון או ניצול (אם אפשרי)
+ * השפעת הבעיה, כולל כיצד תוקף עשוי לנצל אותה
+
+מידע זה יעזור לנו לטפל בדיווח שלכם במהירות רבה יותר.
+
+אם אתם מדווחים במסגרת תוכנית באג באונטי, דיווחים מפורטים יותר עשויים להוביל לפרס גבוה יותר. אנא בקרו בדף [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) למידע נוסף על התוכניות הפעילות שלנו.
+
+## שפות מועדפות
+
+אנו מעדיפים שכל התקשורת תהיה באנגלית.
+
+## מדיניות
+
+מיקרוסופט פועלת לפי עקרון [גילוי פגיעות מתואם](https://www.microsoft.com/en-us/msrc/cvd).
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/SUPPORT.md b/translations/he/SUPPORT.md
new file mode 100644
index 00000000..0a6fd446
--- /dev/null
+++ b/translations/he/SUPPORT.md
@@ -0,0 +1,24 @@
+
+# תמיכה
+## כיצד לדווח על בעיות ולקבל עזרה
+
+פרויקט זה משתמש ב-GitHub Issues למעקב אחר באגים ובקשות לפיצ'רים. אנא חפשו את הבעיות הקיימות לפני שאתם מדווחים על בעיות חדשות כדי להימנע מכפילויות. עבור בעיות חדשות, דווחו על הבאג או בקשת הפיצ'ר שלכם כבעיה חדשה.
+
+לעזרה ושאלות בנוגע לשימוש בפרויקט זה, דווחו על בעיה.
+
+## מדיניות התמיכה של Microsoft
+
+התמיכה עבור מאגר זה מוגבלת למשאבים המפורטים לעיל.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/docs/_sidebar.md b/translations/he/docs/_sidebar.md
new file mode 100644
index 00000000..7ba11f99
--- /dev/null
+++ b/translations/he/docs/_sidebar.md
@@ -0,0 +1,57 @@
+
+- מבוא
+ - [מבוא ללמידת מכונה](../1-Introduction/1-intro-to-ML/README.md)
+ - [היסטוריה של למידת מכונה](../1-Introduction/2-history-of-ML/README.md)
+ - [למידת מכונה והוגנות](../1-Introduction/3-fairness/README.md)
+ - [טכניקות בלמידת מכונה](../1-Introduction/4-techniques-of-ML/README.md)
+
+- רגרסיה
+ - [כלים מקצועיים](../2-Regression/1-Tools/README.md)
+ - [נתונים](../2-Regression/2-Data/README.md)
+ - [רגרסיה לינארית](../2-Regression/3-Linear/README.md)
+ - [רגרסיה לוגיסטית](../2-Regression/4-Logistic/README.md)
+
+- בניית אפליקציית אינטרנט
+ - [אפליקציית אינטרנט](../3-Web-App/1-Web-App/README.md)
+
+- סיווג
+ - [מבוא לסיווג](../4-Classification/1-Introduction/README.md)
+ - [סיווגים 1](../4-Classification/2-Classifiers-1/README.md)
+ - [סיווגים 2](../4-Classification/3-Classifiers-2/README.md)
+ - [למידת מכונה יישומית](../4-Classification/4-Applied/README.md)
+
+- אשכולות
+ - [הצגת הנתונים שלך](../5-Clustering/1-Visualize/README.md)
+ - [K-Means](../5-Clustering/2-K-Means/README.md)
+
+- עיבוד שפה טבעית (NLP)
+ - [מבוא לעיבוד שפה טבעית](../6-NLP/1-Introduction-to-NLP/README.md)
+ - [משימות בעיבוד שפה טבעית](../6-NLP/2-Tasks/README.md)
+ - [תרגום וניתוח רגשות](../6-NLP/3-Translation-Sentiment/README.md)
+ - [ביקורות מלונות 1](../6-NLP/4-Hotel-Reviews-1/README.md)
+ - [ביקורות מלונות 2](../6-NLP/5-Hotel-Reviews-2/README.md)
+
+- חיזוי סדרות זמן
+ - [מבוא לחיזוי סדרות זמן](../7-TimeSeries/1-Introduction/README.md)
+ - [ARIMA](../7-TimeSeries/2-ARIMA/README.md)
+ - [SVR](../7-TimeSeries/3-SVR/README.md)
+
+- למידה מחיזוקים
+ - [Q-Learning](../8-Reinforcement/1-QLearning/README.md)
+ - [Gym](../8-Reinforcement/2-Gym/README.md)
+
+- למידת מכונה בעולם האמיתי
+ - [יישומים](../9-Real-World/1-Applications/README.md)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/for-teachers.md b/translations/he/for-teachers.md
new file mode 100644
index 00000000..ddf98743
--- /dev/null
+++ b/translations/he/for-teachers.md
@@ -0,0 +1,37 @@
+
+## למורים
+
+האם תרצו להשתמש בתוכנית הלימודים הזו בכיתה שלכם? אתם מוזמנים לעשות זאת!
+
+למעשה, תוכלו להשתמש בה ישירות בתוך GitHub באמצעות GitHub Classroom.
+
+כדי לעשות זאת, בצעו fork למאגר הזה. תצטרכו ליצור מאגר עבור כל שיעור, ולכן תצטרכו להפריד כל תיקייה למאגר נפרד. כך [GitHub Classroom](https://classroom.github.com/classrooms) יוכל לזהות כל שיעור בנפרד.
+
+הוראות [מלאות](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) אלו יספקו לכם רעיון כיצד להקים את הכיתה שלכם.
+
+## שימוש במאגר כפי שהוא
+
+אם תרצו להשתמש במאגר כפי שהוא כרגע, מבלי להשתמש ב-GitHub Classroom, גם זה אפשרי. תצטרכו לתקשר עם התלמידים שלכם איזה שיעור לעבוד עליו יחד.
+
+בפורמט מקוון (Zoom, Teams או אחר) תוכלו ליצור חדרי עבודה עבור החידונים, ולהנחות את התלמידים כדי להכין אותם ללמידה. לאחר מכן, הזמינו את התלמידים להשתתף בחידונים ולהגיש את תשובותיהם כ-'issues' בזמן מסוים. תוכלו לעשות את אותו הדבר עם משימות, אם תרצו שהתלמידים יעבדו בשיתוף פעולה באופן פתוח.
+
+אם אתם מעדיפים פורמט יותר פרטי, בקשו מהתלמידים לבצע fork לתוכנית הלימודים, שיעור אחר שיעור, למאגרים פרטיים משלהם ב-GitHub, ותנו לכם גישה. כך הם יוכלו להשלים חידונים ומשימות באופן פרטי ולהגיש אותם לכם דרך 'issues' במאגר הכיתה שלכם.
+
+ישנן דרכים רבות לגרום לזה לעבוד בפורמט כיתה מקוון. אנא שתפו אותנו מה עובד הכי טוב עבורכם!
+
+## נשמח לשמוע את דעתכם!
+
+אנחנו רוצים שהתוכנית הזו תתאים לכם ולתלמידים שלכם. אנא שתפו אותנו [משוב](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u).
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/quiz-app/README.md b/translations/he/quiz-app/README.md
new file mode 100644
index 00000000..de67d035
--- /dev/null
+++ b/translations/he/quiz-app/README.md
@@ -0,0 +1,127 @@
+
+# חידונים
+
+החידונים האלה הם חידוני טרום ואחרי הרצאה עבור תוכנית הלימודים של למידת מכונה בכתובת https://aka.ms/ml-beginners
+
+## הגדרת הפרויקט
+
+```
+npm install
+```
+
+### קומפילציה וטעינה מחדש לפיתוח
+
+```
+npm run serve
+```
+
+### קומפילציה ומזעור עבור הפקה
+
+```
+npm run build
+```
+
+### בדיקת קוד ותיקון קבצים
+
+```
+npm run lint
+```
+
+### התאמת ההגדרות
+
+ראו [הפניה להגדרות](https://cli.vuejs.org/config/).
+
+קרדיטים: תודה לגרסה המקורית של אפליקציית החידונים הזו: https://github.com/arpan45/simple-quiz-vue
+
+## פריסה ל-Azure
+
+הנה מדריך שלב-אחר-שלב שיעזור לכם להתחיל:
+
+1. עשו Fork למאגר GitHub
+ודאו שקוד האפליקציה שלכם נמצא במאגר GitHub. עשו Fork למאגר הזה.
+
+2. צרו אפליקציית אינטרנט סטטית ב-Azure
+- צרו [חשבון Azure](http://azure.microsoft.com)
+- עברו ל-[פורטל Azure](https://portal.azure.com)
+- לחצו על "Create a resource" וחפשו "Static Web App".
+- לחצו על "Create".
+
+3. הגדרת אפליקציית האינטרנט הסטטית
+- בסיסים:
+ - Subscription: בחרו את המנוי שלכם ב-Azure.
+ - Resource Group: צרו קבוצת משאבים חדשה או השתמשו בקיימת.
+ - Name: ספקו שם לאפליקציית האינטרנט הסטטית שלכם.
+ - Region: בחרו את האזור הקרוב ביותר למשתמשים שלכם.
+
+- #### פרטי פריסה:
+ - Source: בחרו "GitHub".
+ - GitHub Account: תנו הרשאה ל-Azure לגשת לחשבון GitHub שלכם.
+ - Organization: בחרו את הארגון שלכם ב-GitHub.
+ - Repository: בחרו את המאגר שמכיל את אפליקציית האינטרנט הסטטית שלכם.
+ - Branch: בחרו את הענף שממנו תרצו לפרוס.
+
+- #### פרטי בנייה:
+ - Build Presets: בחרו את המסגרת שבה האפליקציה שלכם נבנתה (לדוגמה, React, Angular, Vue וכו').
+ - App Location: ציינו את התיקייה שמכילה את קוד האפליקציה שלכם (לדוגמה, / אם היא נמצאת בשורש).
+ - API Location: אם יש לכם API, ציינו את מיקומו (אופציונלי).
+ - Output Location: ציינו את התיקייה שבה נוצר פלט הבנייה (לדוגמה, build או dist).
+
+4. סקירה ויצירה
+סקור את ההגדרות שלך ולחץ על "Create". Azure יגדיר את המשאבים הנדרשים וייצור קובץ זרימת עבודה של GitHub Actions במאגר שלך.
+
+5. זרימת עבודה של GitHub Actions
+Azure ייצור באופן אוטומטי קובץ זרימת עבודה של GitHub Actions במאגר שלך (.github/workflows/azure-static-web-apps-.yml). קובץ זה יטפל בתהליך הבנייה והפריסה.
+
+6. מעקב אחר הפריסה
+עברו ללשונית "Actions" במאגר GitHub שלכם.
+תוכלו לראות זרימת עבודה פועלת. זרימת עבודה זו תבנה ותפרוס את אפליקציית האינטרנט הסטטית שלכם ל-Azure.
+לאחר סיום זרימת העבודה, האפליקציה שלכם תהיה זמינה בכתובת ה-URL שסופקה על ידי Azure.
+
+### דוגמה לקובץ זרימת עבודה
+
+הנה דוגמה לאיך קובץ זרימת העבודה של 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
+```
+
+### משאבים נוספים
+- [תיעוד אפליקציות אינטרנט סטטיות של Azure](https://learn.microsoft.com/azure/static-web-apps/getting-started)
+- [תיעוד GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/sketchnotes/LICENSE.md b/translations/he/sketchnotes/LICENSE.md
new file mode 100644
index 00000000..41c458b6
--- /dev/null
+++ b/translations/he/sketchnotes/LICENSE.md
@@ -0,0 +1,106 @@
+
+זכויות, אז אתה לא יכול להטיל מגבלות על מימוש הזכויות המוענקות תחת רישיון המותאם שאתה מיישם.
+
+סעיף 4 -- זכויות בסיס נתונים ייחודיות.
+
+כאשר הזכויות המורשות כוללות זכויות בסיס נתונים ייחודיות החלות על השימוש שלך בחומר המורשה:
+
+א. למען הסר ספק, סעיף 2(א)(1) מעניק לך את הזכות לחלץ, להשתמש מחדש, לשכפל ולשתף את כל או חלק משמעותי מתוכן הבסיס נתונים;
+
+ב. אם אתה כולל את כל או חלק משמעותי מתוכן הבסיס נתונים בבסיס נתונים שבו יש לך זכויות בסיס נתונים ייחודיות, אז הבסיס נתונים שלך חייב להיות מורשה תחת תנאי רישיון זה או רישיון תואם BY-SA (כמוגדר בסעיף 1(ג)).
+
+סעיף 5 -- אחריות כללית.
+
+אלא אם כן מוסכם אחרת בכתב, המורשה מספק את החומר המורשה כפי שהוא, ללא אחריות מכל סוג, מפורשת או משתמעת, כולל, אך לא מוגבל, אחריות לסחירות, התאמה למטרה מסוימת, אי-הפרה, או היעדר פגמים נסתרים או אחרים, דיוק, או נוכחות או היעדר שגיאות, בין אם ניתן לגלותם או לא. חלקים מסוימים של סעיף זה עשויים שלא לחול במקרים מסוימים.
+
+סעיף 6 -- תנאים וסיום.
+
+א. תקופה. הזכויות המורשות מוענקות לתקופה בלתי מוגבלת תחת תנאי רישיון זה. עם זאת, אם אתה מפר את תנאי רישיון זה, הזכויות המורשות שלך מסתיימות אוטומטית.
+
+ב. סיום. אם הזכויות המורשות שלך מסתיימות תחת סעיף 6(א), הן עשויות להיות משוחזרות:
+
+1. באופן אוטומטי אם המורשה מודיע לך על הפרה, בתנאי שאתה מתקן את ההפרה תוך 30 ימים מיום ההודעה;
+
+2. על ידי המורשה במפורש.
+
+ג. המשך. סעיפים 1, 5, 6, 7, ו-8 נשארים בתוקף לאחר סיום רישיון זה.
+
+ד. אין הגבלה על זכויות אחרות. סיום רישיון זה אינו מגביל את זכויותיך תחת כל חריג או הגבלה על זכויות יוצרים או זכויות דומות אחרות.
+
+סעיף 7 -- תנאים נוספים.
+
+א. המורשה לא יהיה מחויב או אחראי תחת רישיון זה לכל נזק ישיר, עקיף, מיוחד, עונשי, או תוצאתי, אלא אם כן מוסכם אחרת בכתב.
+
+ב. אם כל תנאי רישיון זה נחשב בלתי חוקי או בלתי ניתן לאכיפה תחת החוק החל, הוא ייחשב כמתוקן במידה המינימלית הנדרשת כדי להפוך אותו חוקי וניתן לאכיפה. אם התנאי אינו ניתן לתיקון, הוא ייחשב כלא נכלל מרישיון זה מבלי להשפיע על תוקף התנאים הנותרים.
+
+ג. אין ויתור. שום תנאי או תנאי של רישיון זה לא ייחשב כוויתור ולא ייחשב כוויתור על כל הפרה עתידית של אותו תנאי או תנאי.
+
+סעיף 8 -- פרשנות.
+
+א. רישיון זה אינו מפחית, מגביל, או מטיל מגבלות על כל חריג או הגבלה על זכויות יוצרים או זכויות דומות אחרות החלות על השימוש שלך בחומר המורשה.
+
+ב. רישיון זה יפורש על פי החוק החל, ללא קשר לכל עקרונות סתירה של חוקים.
+זכויות, ואז מסד הנתונים שבו יש לך זכויות מסד נתונים ייחודיות (Sui Generis Database Rights) אך לא את התכנים האישיים שלו, נחשב כחומר מותאם,
+
+כולל לצורך סעיף 3(b); ו
+ג. עליך לעמוד בתנאים שבסעיף 3(a) אם אתה משתף את כל או חלק משמעותי מתכני מסד הנתונים.
+
+למען הסר ספק, סעיף 4 זה משלים ואינו מחליף את התחייבויותיך תחת רישיון ציבורי זה כאשר הזכויות המורשות כוללות זכויות יוצרים וזכויות דומות אחרות.
+
+סעיף 5 -- כתב ויתור על אחריות והגבלת אחריות.
+
+א. אלא אם כן הוסכם אחרת בנפרד על ידי מעניק הרישיון, ככל האפשר, מעניק הרישיון מציע את החומר המורשה כפי שהוא וכפי שהוא זמין, ואינו נותן הצהרות או אחריות מכל סוג שהוא בנוגע לחומר המורשה, בין אם מפורשות, משתמעות, סטטוטוריות או אחרות. זה כולל, ללא הגבלה, אחריות על כותרת, סחירות, התאמה למטרה מסוימת, אי-הפרה, היעדר פגמים סמויים או אחרים, דיוק, או נוכחות או היעדר שגיאות, בין אם ידועות או ניתנות לגילוי. במקומות שבהם כתב ויתור על אחריות אינו מותר במלואו או בחלקו, כתב ויתור זה עשוי שלא לחול עליך.
+
+ב. ככל האפשר, בשום מקרה מעניק הרישיון לא יהיה אחראי כלפיך על פי כל תיאוריה משפטית (כולל, ללא הגבלה, רשלנות) או אחרת על כל הפסדים ישירים, מיוחדים, עקיפים, מקריים, תוצאתיים, עונשיים, דוגמתיים או אחרים, עלויות, הוצאות או נזקים הנובעים מרישיון ציבורי זה או משימוש בחומר המורשה, גם אם מעניק הרישיון הוזהר על האפשרות של הפסדים, עלויות, הוצאות או נזקים כאלה. במקומות שבהם הגבלת אחריות אינה מותרת במלואה או בחלקה, הגבלה זו עשויה שלא לחול עליך.
+
+ג. כתב הוויתור על אחריות והגבלת האחריות המוצגים לעיל יפורשו באופן שמקרב ככל האפשר לוויתור מוחלט על כל אחריות.
+
+סעיף 6 -- תקופה וסיום.
+
+א. רישיון ציבורי זה חל על תקופת זכויות היוצרים וזכויות דומות המורשות כאן. עם זאת, אם אינך עומד ברישיון ציבורי זה, זכויותיך תחת רישיון ציבורי זה מסתיימות באופן אוטומטי.
+
+ב. כאשר זכותך להשתמש בחומר המורשה הסתיימה תחת סעיף 6(a), היא מתחדשת:
+
+1. באופן אוטומטי החל מתאריך תיקון ההפרה, בתנאי שהיא תוקנה תוך 30 ימים מגילוי ההפרה; או
+2. עם חידוש מפורש על ידי מעניק הרישיון.
+
+למען הסר ספק, סעיף 6(b) זה אינו משפיע על כל זכות שיש למעניק הרישיון לבקש תרופות להפרותיך של רישיון ציבורי זה.
+
+ג. למען הסר ספק, מעניק הרישיון רשאי גם להציע את החומר המורשה תחת תנאים או תנאים נפרדים או להפסיק להפיץ את החומר המורשה בכל עת; עם זאת, פעולה זו לא תסיים את רישיון ציבורי זה.
+
+ד. סעיפים 1, 5, 6, 7 ו-8 נשארים בתוקף לאחר סיום רישיון ציבורי זה.
+
+סעיף 7 -- תנאים והגבלות נוספים.
+
+א. מעניק הרישיון לא יהיה מחויב על ידי תנאים או הגבלות נוספים או שונים שהועברו על ידך אלא אם כן הוסכם במפורש.
+
+ב. כל הסדרים, הבנות או הסכמים בנוגע לחומר המורשה שאינם מצוינים כאן הם נפרדים ועצמאיים מהתנאים וההגבלות של רישיון ציבורי זה.
+
+סעיף 8 -- פרשנות.
+
+א. למען הסר ספק, רישיון ציבורי זה אינו, ולא יפורש כמצמצם, מגביל, או מטיל תנאים על כל שימוש בחומר המורשה שניתן לבצע באופן חוקי ללא רשות תחת רישיון ציבורי זה.
+
+ב. ככל האפשר, אם כל הוראה של רישיון ציבורי זה נחשבת כבלתי ניתנת לאכיפה, היא תתוקן באופן אוטומטי למינימום הנדרש כדי להפוך אותה לאכיפה. אם ההוראה אינה ניתנת לתיקון, היא תופרד מרישיון ציבורי זה מבלי להשפיע על אכיפת התנאים וההגבלות הנותרים.
+
+ג. שום תנאי או הגבלה של רישיון ציבורי זה לא יוויתרו ושום אי-עמידה לא תתקבל אלא אם כן הוסכם במפורש על ידי מעניק הרישיון.
+
+ד. שום דבר ברישיון ציבורי זה אינו מהווה או עשוי להתפרש כהגבלה או וויתור על כל זכויות יתר וחסינויות החלות על מעניק הרישיון או עליך, כולל מפני תהליכים משפטיים של כל תחום שיפוט או סמכות.
+
+=======================================================================
+
+Creative Commons אינה צד לרישיונות הציבוריים שלה. עם זאת, Creative Commons עשויה לבחור להחיל אחד מהרישיונות הציבוריים שלה על חומר שהיא מפרסמת ובמקרים אלה תיחשב כ"מעניק הרישיון". הטקסט של רישיונות הציבוריים של Creative Commons מוקדש לנחלת הכלל תחת CC0 Public Domain Dedication. למעט למטרות מוגבלות של ציון שחומר משותף תחת רישיון ציבורי של Creative Commons או כפי שמותר אחרת על ידי המדיניות של Creative Commons שפורסמה בכתובת creativecommons.org/policies, Creative Commons אינה מאשרת את השימוש בסימן המסחרי "Creative Commons" או כל סימן מסחרי או לוגו אחר של Creative Commons ללא הסכמה כתובה מראש, כולל, ללא הגבלה, בקשר עם כל שינוי לא מורשה של אחד מהרישיונות הציבוריים שלה או כל הסדרים, הבנות או הסכמים בנוגע לשימוש בחומר מורשה. למען הסר ספק, פסקה זו אינה חלק מהרישיונות הציבוריים.
+
+ניתן ליצור קשר עם Creative Commons בכתובת creativecommons.org.
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/he/sketchnotes/README.md b/translations/he/sketchnotes/README.md
new file mode 100644
index 00000000..59f0fe27
--- /dev/null
+++ b/translations/he/sketchnotes/README.md
@@ -0,0 +1,21 @@
+
+כל הסקצ'נוטים של תכנית הלימודים זמינים להורדה כאן.
+
+🖨 להדפסה באיכות גבוהה, גרסאות TIFF זמינות ב-[מאגר הזה](https://github.com/girliemac/a-picture-is-worth-a-1000-words/tree/main/ml/tiff).
+
+🎨 נוצר על ידי: [Tomomi Imura](https://github.com/girliemac) (טוויטר: [@girlie_mac](https://twitter.com/girlie_mac))
+
+[](https://creativecommons.org/licenses/by-sa/4.0/)
+
+---
+
+**כתב ויתור**:
+מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/1-intro-to-ML/README.md b/translations/id/1-Introduction/1-intro-to-ML/README.md
new file mode 100644
index 00000000..0cdafbdc
--- /dev/null
+++ b/translations/id/1-Introduction/1-intro-to-ML/README.md
@@ -0,0 +1,159 @@
+
+# Pengantar Pembelajaran Mesin
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/6mSx_KJxcHI "ML untuk Pemula - Pengantar Pembelajaran Mesin untuk Pemula")
+
+> 🎥 Klik gambar di atas untuk video singkat yang membahas pelajaran ini.
+
+Selamat datang di kursus pembelajaran mesin klasik untuk pemula! Baik Anda benar-benar baru dalam topik ini, atau seorang praktisi ML berpengalaman yang ingin menyegarkan pengetahuan di area tertentu, kami senang Anda bergabung dengan kami! Kami ingin menciptakan tempat awal yang ramah untuk studi ML Anda dan akan senang mengevaluasi, merespons, dan mengintegrasikan [masukan Anda](https://github.com/microsoft/ML-For-Beginners/discussions).
+
+[](https://youtu.be/h0e2HAPTGF4 "Pengantar ML")
+
+> 🎥 Klik gambar di atas untuk video: John Guttag dari MIT memperkenalkan pembelajaran mesin
+
+---
+## Memulai dengan Pembelajaran Mesin
+
+Sebelum memulai kurikulum ini, Anda perlu memastikan komputer Anda siap untuk menjalankan notebook secara lokal.
+
+- **Konfigurasikan komputer Anda dengan video ini**. Gunakan tautan berikut untuk mempelajari [cara menginstal Python](https://youtu.be/CXZYvNRIAKM) di sistem Anda dan [menyiapkan editor teks](https://youtu.be/EU8eayHWoZg) untuk pengembangan.
+- **Pelajari Python**. Disarankan juga untuk memiliki pemahaman dasar tentang [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), bahasa pemrograman yang berguna bagi ilmuwan data dan yang akan kita gunakan dalam kursus ini.
+- **Pelajari Node.js dan JavaScript**. Kami juga menggunakan JavaScript beberapa kali dalam kursus ini saat membangun aplikasi web, jadi Anda perlu menginstal [node](https://nodejs.org) dan [npm](https://www.npmjs.com/), serta memiliki [Visual Studio Code](https://code.visualstudio.com/) untuk pengembangan Python dan JavaScript.
+- **Buat akun GitHub**. Karena Anda menemukan kami di [GitHub](https://github.com), Anda mungkin sudah memiliki akun, tetapi jika belum, buatlah satu akun dan kemudian fork kurikulum ini untuk digunakan sendiri. (Jangan ragu untuk memberi kami bintang juga 😊)
+- **Jelajahi Scikit-learn**. Kenali [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), kumpulan pustaka ML yang akan kita referensikan dalam pelajaran ini.
+
+---
+## Apa itu Pembelajaran Mesin?
+
+Istilah 'pembelajaran mesin' adalah salah satu istilah yang paling populer dan sering digunakan saat ini. Ada kemungkinan besar Anda pernah mendengar istilah ini setidaknya sekali jika Anda memiliki sedikit keterkaitan dengan teknologi, tidak peduli di bidang apa Anda bekerja. Namun, mekanisme pembelajaran mesin adalah misteri bagi kebanyakan orang. Bagi pemula pembelajaran mesin, subjek ini kadang-kadang bisa terasa membingungkan. Oleh karena itu, penting untuk memahami apa sebenarnya pembelajaran mesin itu, dan mempelajarinya langkah demi langkah melalui contoh praktis.
+
+---
+## Kurva Hype
+
+
+
+> Google Trends menunjukkan 'kurva hype' terbaru dari istilah 'pembelajaran mesin'
+
+---
+## Alam Semesta yang Misterius
+
+Kita hidup di alam semesta yang penuh dengan misteri yang menakjubkan. Ilmuwan hebat seperti Stephen Hawking, Albert Einstein, dan banyak lainnya telah mendedikasikan hidup mereka untuk mencari informasi bermakna yang mengungkap misteri dunia di sekitar kita. Ini adalah kondisi manusia untuk belajar: seorang anak manusia belajar hal-hal baru dan mengungkap struktur dunia mereka tahun demi tahun saat mereka tumbuh dewasa.
+
+---
+## Otak Anak
+
+Otak dan indra seorang anak merasakan fakta-fakta di sekitarnya dan secara bertahap mempelajari pola-pola tersembunyi dalam kehidupan yang membantu anak tersebut menyusun aturan logis untuk mengenali pola-pola yang telah dipelajari. Proses pembelajaran otak manusia membuat manusia menjadi makhluk hidup paling canggih di dunia ini. Belajar secara terus-menerus dengan menemukan pola-pola tersembunyi dan kemudian berinovasi berdasarkan pola-pola tersebut memungkinkan kita untuk menjadi lebih baik sepanjang hidup kita. Kapasitas belajar dan kemampuan berkembang ini terkait dengan konsep yang disebut [plastisitas otak](https://www.simplypsychology.org/brain-plasticity.html). Secara dangkal, kita dapat menarik beberapa kesamaan motivasi antara proses pembelajaran otak manusia dan konsep pembelajaran mesin.
+
+---
+## Otak Manusia
+
+[Otak manusia](https://www.livescience.com/29365-human-brain.html) merasakan hal-hal dari dunia nyata, memproses informasi yang dirasakan, membuat keputusan rasional, dan melakukan tindakan tertentu berdasarkan keadaan. Inilah yang kita sebut berperilaku secara cerdas. Ketika kita memprogram tiruan dari proses perilaku cerdas ke sebuah mesin, itu disebut kecerdasan buatan (AI).
+
+---
+## Beberapa Terminologi
+
+Meskipun istilah-istilah ini dapat membingungkan, pembelajaran mesin (ML) adalah subset penting dari kecerdasan buatan. **ML berkaitan dengan penggunaan algoritma khusus untuk menemukan informasi bermakna dan menemukan pola tersembunyi dari data yang dirasakan untuk mendukung proses pengambilan keputusan rasional**.
+
+---
+## AI, ML, Pembelajaran Mendalam
+
+
+
+> Diagram yang menunjukkan hubungan antara AI, ML, pembelajaran mendalam, dan ilmu data. Infografik oleh [Jen Looper](https://twitter.com/jenlooper) terinspirasi oleh [grafik ini](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
+
+---
+## Konsep yang Akan Dibahas
+
+Dalam kurikulum ini, kita akan membahas hanya konsep inti pembelajaran mesin yang harus diketahui oleh pemula. Kita akan membahas apa yang kita sebut 'pembelajaran mesin klasik' terutama menggunakan Scikit-learn, pustaka yang sangat baik yang banyak digunakan oleh siswa untuk mempelajari dasar-dasarnya. Untuk memahami konsep yang lebih luas tentang kecerdasan buatan atau pembelajaran mendalam, pengetahuan dasar yang kuat tentang pembelajaran mesin sangat penting, dan kami ingin menyediakannya di sini.
+
+---
+## Dalam Kursus Ini Anda Akan Belajar:
+
+- konsep inti pembelajaran mesin
+- sejarah ML
+- ML dan keadilan
+- teknik regresi ML
+- teknik klasifikasi ML
+- teknik pengelompokan ML
+- teknik pemrosesan bahasa alami ML
+- teknik peramalan deret waktu ML
+- pembelajaran penguatan
+- aplikasi dunia nyata untuk ML
+
+---
+## Apa yang Tidak Akan Dibahas
+
+- pembelajaran mendalam
+- jaringan saraf
+- AI
+
+Untuk pengalaman belajar yang lebih baik, kami akan menghindari kompleksitas jaringan saraf, 'pembelajaran mendalam' - pembangunan model berlapis-lapis menggunakan jaringan saraf - dan AI, yang akan kita bahas dalam kurikulum yang berbeda. Kami juga akan menawarkan kurikulum ilmu data yang akan datang untuk fokus pada aspek tersebut dari bidang yang lebih besar ini.
+
+---
+## Mengapa Mempelajari Pembelajaran Mesin?
+
+Pembelajaran mesin, dari perspektif sistem, didefinisikan sebagai pembuatan sistem otomatis yang dapat mempelajari pola tersembunyi dari data untuk membantu dalam membuat keputusan yang cerdas.
+
+Motivasi ini secara longgar terinspirasi oleh bagaimana otak manusia mempelajari hal-hal tertentu berdasarkan data yang dirasakannya dari dunia luar.
+
+✅ Pikirkan sejenak mengapa sebuah bisnis ingin mencoba menggunakan strategi pembelajaran mesin dibandingkan dengan membuat mesin berbasis aturan yang dikodekan secara manual.
+
+---
+## Aplikasi Pembelajaran Mesin
+
+Aplikasi pembelajaran mesin sekarang hampir ada di mana-mana, dan sama melimpahnya dengan data yang mengalir di sekitar masyarakat kita, yang dihasilkan oleh ponsel pintar, perangkat yang terhubung, dan sistem lainnya. Mengingat potensi besar algoritma pembelajaran mesin mutakhir, para peneliti telah mengeksplorasi kemampuannya untuk menyelesaikan masalah kehidupan nyata yang multi-dimensi dan multi-disiplin dengan hasil yang sangat positif.
+
+---
+## Contoh Penerapan ML
+
+**Anda dapat menggunakan pembelajaran mesin dalam berbagai cara**:
+
+- Untuk memprediksi kemungkinan penyakit dari riwayat medis atau laporan pasien.
+- Untuk memanfaatkan data cuaca guna memprediksi peristiwa cuaca.
+- Untuk memahami sentimen dari sebuah teks.
+- Untuk mendeteksi berita palsu guna menghentikan penyebaran propaganda.
+
+Keuangan, ekonomi, ilmu bumi, eksplorasi luar angkasa, teknik biomedis, ilmu kognitif, dan bahkan bidang humaniora telah mengadaptasi pembelajaran mesin untuk menyelesaikan masalah berat yang melibatkan pemrosesan data di domain mereka.
+
+---
+## Kesimpulan
+
+Pembelajaran mesin mengotomatisasi proses penemuan pola dengan menemukan wawasan bermakna dari data dunia nyata atau data yang dihasilkan. Ini telah terbukti sangat berharga dalam aplikasi bisnis, kesehatan, dan keuangan, di antara lainnya.
+
+Di masa depan, memahami dasar-dasar pembelajaran mesin akan menjadi keharusan bagi orang-orang dari berbagai bidang karena adopsinya yang luas.
+
+---
+# 🚀 Tantangan
+
+Gambarkan, di atas kertas atau menggunakan aplikasi online seperti [Excalidraw](https://excalidraw.com/), pemahaman Anda tentang perbedaan antara AI, ML, pembelajaran mendalam, dan ilmu data. Tambahkan beberapa ide tentang masalah yang baik untuk diselesaikan oleh masing-masing teknik ini.
+
+# [Kuis Pasca-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+# Tinjauan & Studi Mandiri
+
+Untuk mempelajari lebih lanjut tentang bagaimana Anda dapat bekerja dengan algoritma ML di cloud, ikuti [Learning Path](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott) ini.
+
+Ikuti [Learning Path](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) tentang dasar-dasar ML.
+
+---
+# Tugas
+
+[Mulai dan jalankan](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/1-intro-to-ML/assignment.md b/translations/id/1-Introduction/1-intro-to-ML/assignment.md
new file mode 100644
index 00000000..37614684
--- /dev/null
+++ b/translations/id/1-Introduction/1-intro-to-ML/assignment.md
@@ -0,0 +1,23 @@
+
+# Memulai dan Berjalan
+
+## Instruksi
+
+Dalam tugas yang tidak dinilai ini, Anda harus menyegarkan kembali pengetahuan tentang Python dan menyiapkan lingkungan Anda agar dapat menjalankan notebook.
+
+Ikuti [Jalur Pembelajaran Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), lalu siapkan sistem Anda dengan menonton video pengantar berikut:
+
+https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/2-history-of-ML/README.md b/translations/id/1-Introduction/2-history-of-ML/README.md
new file mode 100644
index 00000000..b288fb43
--- /dev/null
+++ b/translations/id/1-Introduction/2-history-of-ML/README.md
@@ -0,0 +1,164 @@
+
+# Sejarah Pembelajaran Mesin
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/N6wxM4wZ7V0 "ML untuk Pemula - Sejarah Pembelajaran Mesin")
+
+> 🎥 Klik gambar di atas untuk video singkat yang membahas pelajaran ini.
+
+Dalam pelajaran ini, kita akan membahas tonggak-tonggak utama dalam sejarah pembelajaran mesin dan kecerdasan buatan.
+
+Sejarah kecerdasan buatan (AI) sebagai bidang ilmu sangat terkait dengan sejarah pembelajaran mesin, karena algoritma dan kemajuan komputasi yang mendasari ML berkontribusi pada pengembangan AI. Penting untuk diingat bahwa, meskipun bidang-bidang ini sebagai area penelitian yang terpisah mulai terbentuk pada tahun 1950-an, [penemuan algoritmik, statistik, matematis, komputasi, dan teknis](https://wikipedia.org/wiki/Timeline_of_machine_learning) yang penting telah ada sebelumnya dan saling tumpang tindih. Faktanya, manusia telah memikirkan pertanyaan-pertanyaan ini selama [ratusan tahun](https://wikipedia.org/wiki/History_of_artificial_intelligence): artikel ini membahas dasar intelektual historis dari gagasan tentang 'mesin yang dapat berpikir.'
+
+---
+## Penemuan Penting
+
+- 1763, 1812 [Teorema Bayes](https://wikipedia.org/wiki/Bayes%27_theorem) dan pendahulunya. Teorema ini dan aplikasinya mendasari inferensi, menggambarkan probabilitas suatu peristiwa terjadi berdasarkan pengetahuan sebelumnya.
+- 1805 [Teori Kuadrat Terkecil](https://wikipedia.org/wiki/Least_squares) oleh matematikawan Prancis Adrien-Marie Legendre. Teori ini, yang akan Anda pelajari dalam unit Regresi, membantu dalam pencocokan data.
+- 1913 [Rantai Markov](https://wikipedia.org/wiki/Markov_chain), dinamai dari matematikawan Rusia Andrey Markov, digunakan untuk menggambarkan urutan kemungkinan peristiwa berdasarkan keadaan sebelumnya.
+- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) adalah jenis pengklasifikasi linear yang ditemukan oleh psikolog Amerika Frank Rosenblatt yang mendasari kemajuan dalam pembelajaran mendalam.
+
+---
+
+- 1967 [Tetangga Terdekat](https://wikipedia.org/wiki/Nearest_neighbor) adalah algoritma yang awalnya dirancang untuk memetakan rute. Dalam konteks ML, algoritma ini digunakan untuk mendeteksi pola.
+- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) digunakan untuk melatih [jaringan saraf feedforward](https://wikipedia.org/wiki/Feedforward_neural_network).
+- 1982 [Jaringan Saraf Rekuren](https://wikipedia.org/wiki/Recurrent_neural_network) adalah jaringan saraf buatan yang berasal dari jaringan saraf feedforward yang menciptakan grafik temporal.
+
+✅ Lakukan sedikit penelitian. Tanggal apa lagi yang menurut Anda penting dalam sejarah ML dan AI?
+
+---
+## 1950: Mesin yang Berpikir
+
+Alan Turing, seorang tokoh luar biasa yang dipilih [oleh publik pada tahun 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) sebagai ilmuwan terbesar abad ke-20, dianggap membantu meletakkan dasar untuk konsep 'mesin yang dapat berpikir.' Ia menghadapi skeptisisme dan kebutuhan pribadinya akan bukti empiris tentang konsep ini sebagian dengan menciptakan [Tes Turing](https://www.bbc.com/news/technology-18475646), yang akan Anda pelajari dalam pelajaran NLP kami.
+
+---
+## 1956: Proyek Penelitian Musim Panas Dartmouth
+
+"Proyek Penelitian Musim Panas Dartmouth tentang kecerdasan buatan adalah peristiwa penting bagi kecerdasan buatan sebagai bidang," dan di sinilah istilah 'kecerdasan buatan' pertama kali diciptakan ([sumber](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
+
+> Setiap aspek pembelajaran atau fitur kecerdasan lainnya pada prinsipnya dapat dijelaskan dengan sangat tepat sehingga sebuah mesin dapat dibuat untuk mensimulasikannya.
+
+---
+
+Peneliti utama, profesor matematika John McCarthy, berharap "untuk melanjutkan berdasarkan dugaan bahwa setiap aspek pembelajaran atau fitur kecerdasan lainnya pada prinsipnya dapat dijelaskan dengan sangat tepat sehingga sebuah mesin dapat dibuat untuk mensimulasikannya." Para peserta termasuk tokoh terkenal lainnya di bidang ini, Marvin Minsky.
+
+Lokakarya ini dianggap telah memulai dan mendorong beberapa diskusi termasuk "kemunculan metode simbolik, sistem yang berfokus pada domain terbatas (sistem pakar awal), dan sistem deduktif versus sistem induktif." ([sumber](https://wikipedia.org/wiki/Dartmouth_workshop)).
+
+---
+## 1956 - 1974: "Tahun-tahun Emas"
+
+Dari tahun 1950-an hingga pertengahan '70-an, optimisme tinggi bahwa AI dapat menyelesaikan banyak masalah. Pada tahun 1967, Marvin Minsky dengan percaya diri menyatakan bahwa "Dalam satu generasi ... masalah menciptakan 'kecerdasan buatan' akan secara substansial terpecahkan." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
+
+Penelitian pemrosesan bahasa alami berkembang pesat, pencarian disempurnakan dan dibuat lebih kuat, dan konsep 'dunia mikro' diciptakan, di mana tugas-tugas sederhana diselesaikan menggunakan instruksi bahasa biasa.
+
+---
+
+Penelitian didanai dengan baik oleh lembaga pemerintah, kemajuan dibuat dalam komputasi dan algoritma, dan prototipe mesin cerdas dibangun. Beberapa mesin ini termasuk:
+
+* [Shakey the robot](https://wikipedia.org/wiki/Shakey_the_robot), yang dapat bermanuver dan memutuskan cara melakukan tugas secara 'cerdas'.
+
+ 
+ > Shakey pada tahun 1972
+
+---
+
+* Eliza, 'chatterbot' awal, dapat berbicara dengan orang dan bertindak sebagai 'terapis' primitif. Anda akan belajar lebih banyak tentang Eliza dalam pelajaran NLP.
+
+ 
+ > Versi Eliza, chatbot
+
+---
+
+* "Blocks world" adalah contoh dunia mikro di mana balok dapat ditumpuk dan diurutkan, dan eksperimen dalam mengajarkan mesin untuk membuat keputusan dapat diuji. Kemajuan yang dibangun dengan pustaka seperti [SHRDLU](https://wikipedia.org/wiki/SHRDLU) membantu mendorong pemrosesan bahasa ke depan.
+
+ [](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world dengan SHRDLU")
+
+ > 🎥 Klik gambar di atas untuk video: Blocks world dengan SHRDLU
+
+---
+## 1974 - 1980: "Musim Dingin AI"
+
+Pada pertengahan 1970-an, menjadi jelas bahwa kompleksitas membuat 'mesin cerdas' telah diremehkan dan janji-janji yang diberikan, mengingat kekuatan komputasi yang tersedia, telah dilebih-lebihkan. Pendanaan mengering dan kepercayaan pada bidang ini melambat. Beberapa masalah yang memengaruhi kepercayaan meliputi:
+---
+- **Keterbatasan**. Kekuatan komputasi terlalu terbatas.
+- **Ledakan kombinatorial**. Jumlah parameter yang perlu dilatih tumbuh secara eksponensial seiring dengan meningkatnya permintaan pada komputer, tanpa evolusi paralel dari kekuatan dan kemampuan komputasi.
+- **Kekurangan data**. Kekurangan data menghambat proses pengujian, pengembangan, dan penyempurnaan algoritma.
+- **Apakah kita mengajukan pertanyaan yang tepat?**. Pertanyaan yang diajukan mulai dipertanyakan. Peneliti mulai menghadapi kritik terhadap pendekatan mereka:
+ - Tes Turing dipertanyakan melalui, antara lain, teori 'ruang Cina' yang menyatakan bahwa, "memprogram komputer digital mungkin membuatnya tampak memahami bahasa tetapi tidak dapat menghasilkan pemahaman nyata." ([sumber](https://plato.stanford.edu/entries/chinese-room/))
+ - Etika memperkenalkan kecerdasan buatan seperti "terapis" ELIZA ke dalam masyarakat diperdebatkan.
+
+---
+
+Pada saat yang sama, berbagai aliran pemikiran AI mulai terbentuk. Sebuah dikotomi muncul antara praktik ["AI berantakan" vs. "AI rapi"](https://wikipedia.org/wiki/Neats_and_scruffies). Laboratorium _berantakan_ mengutak-atik program selama berjam-jam hingga mendapatkan hasil yang diinginkan. Laboratorium _rapi_ "berfokus pada logika dan pemecahan masalah formal". ELIZA dan SHRDLU adalah sistem _berantakan_ yang terkenal. Pada tahun 1980-an, ketika muncul permintaan untuk membuat sistem ML dapat direproduksi, pendekatan _rapi_ secara bertahap menjadi yang terdepan karena hasilnya lebih dapat dijelaskan.
+
+---
+## Sistem Pakar 1980-an
+
+Seiring berkembangnya bidang ini, manfaatnya bagi bisnis menjadi lebih jelas, dan pada tahun 1980-an begitu pula proliferasi 'sistem pakar'. "Sistem pakar adalah salah satu bentuk perangkat lunak kecerdasan buatan (AI) yang pertama benar-benar sukses." ([sumber](https://wikipedia.org/wiki/Expert_system)).
+
+Jenis sistem ini sebenarnya _hibrida_, terdiri sebagian dari mesin aturan yang mendefinisikan persyaratan bisnis, dan mesin inferensi yang memanfaatkan sistem aturan untuk menyimpulkan fakta baru.
+
+Era ini juga melihat perhatian yang semakin besar terhadap jaringan saraf.
+
+---
+## 1987 - 1993: 'Pendinginan' AI
+
+Proliferasi perangkat keras sistem pakar yang khusus memiliki efek yang tidak menguntungkan karena menjadi terlalu khusus. Munculnya komputer pribadi juga bersaing dengan sistem besar, khusus, dan terpusat ini. Demokratisasi komputasi telah dimulai, dan akhirnya membuka jalan bagi ledakan data besar modern.
+
+---
+## 1993 - 2011
+
+Era ini melihat babak baru bagi ML dan AI untuk dapat menyelesaikan beberapa masalah yang sebelumnya disebabkan oleh kurangnya data dan kekuatan komputasi. Jumlah data mulai meningkat pesat dan menjadi lebih tersedia secara luas, baik untuk keuntungan maupun kerugian, terutama dengan munculnya smartphone sekitar tahun 2007. Kekuatan komputasi berkembang secara eksponensial, dan algoritma berevolusi seiring waktu. Bidang ini mulai mencapai kematangan saat masa-masa bebas sebelumnya mulai mengkristal menjadi disiplin yang sebenarnya.
+
+---
+## Sekarang
+
+Saat ini pembelajaran mesin dan AI menyentuh hampir setiap bagian dari kehidupan kita. Era ini menyerukan pemahaman yang hati-hati tentang risiko dan dampak potensial dari algoritma ini terhadap kehidupan manusia. Seperti yang dinyatakan oleh Brad Smith dari Microsoft, "Teknologi informasi menimbulkan masalah yang menyentuh inti perlindungan hak asasi manusia fundamental seperti privasi dan kebebasan berekspresi. Masalah-masalah ini meningkatkan tanggung jawab bagi perusahaan teknologi yang menciptakan produk ini. Menurut pandangan kami, masalah ini juga menyerukan regulasi pemerintah yang bijaksana dan pengembangan norma-norma tentang penggunaan yang dapat diterima" ([sumber](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
+
+---
+
+Masih harus dilihat apa yang akan terjadi di masa depan, tetapi penting untuk memahami sistem komputer ini serta perangkat lunak dan algoritma yang mereka jalankan. Kami berharap kurikulum ini akan membantu Anda mendapatkan pemahaman yang lebih baik sehingga Anda dapat memutuskan sendiri.
+
+[](https://www.youtube.com/watch?v=mTtDfKgLm54 "Sejarah pembelajaran mendalam")
+> 🎥 Klik gambar di atas untuk video: Yann LeCun membahas sejarah pembelajaran mendalam dalam kuliah ini
+
+---
+## 🚀Tantangan
+
+Telusuri salah satu momen sejarah ini dan pelajari lebih lanjut tentang orang-orang di baliknya. Ada karakter-karakter yang menarik, dan tidak ada penemuan ilmiah yang pernah dibuat dalam kekosongan budaya. Apa yang Anda temukan?
+
+## [Kuis Pasca-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+## Tinjauan & Studi Mandiri
+
+Berikut adalah item untuk ditonton dan didengarkan:
+
+[Podcast ini di mana Amy Boyd membahas evolusi AI](http://runasradio.com/Shows/Show/739)
+
+[](https://www.youtube.com/watch?v=EJt3_bFYKss "Sejarah AI oleh Amy Boyd")
+
+---
+
+## Tugas
+
+[Buat garis waktu](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/2-history-of-ML/assignment.md b/translations/id/1-Introduction/2-history-of-ML/assignment.md
new file mode 100644
index 00000000..98bcc9e5
--- /dev/null
+++ b/translations/id/1-Introduction/2-history-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Buat sebuah garis waktu
+
+## Instruksi
+
+Menggunakan [repo ini](https://github.com/Digital-Humanities-Toolkit/timeline-builder), buatlah sebuah garis waktu tentang salah satu aspek dari sejarah algoritma, matematika, statistik, AI, atau ML, atau kombinasi dari semuanya. Anda dapat fokus pada satu orang, satu ide, atau rentang waktu panjang dari pemikiran. Pastikan untuk menambahkan elemen multimedia.
+
+## Rubrik
+
+| Kriteria | Luar Biasa | Memadai | Perlu Peningkatan |
+| -------- | ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- |
+| | Garis waktu yang sudah diterapkan disajikan sebagai halaman GitHub | Kode tidak lengkap dan belum diterapkan | Garis waktu tidak lengkap, kurang riset, dan belum diterapkan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/3-fairness/README.md b/translations/id/1-Introduction/3-fairness/README.md
new file mode 100644
index 00000000..1db4108b
--- /dev/null
+++ b/translations/id/1-Introduction/3-fairness/README.md
@@ -0,0 +1,170 @@
+
+# Membangun Solusi Machine Learning dengan AI yang Bertanggung Jawab
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Pendahuluan
+
+Dalam kurikulum ini, Anda akan mulai memahami bagaimana machine learning dapat dan sedang memengaruhi kehidupan kita sehari-hari. Bahkan saat ini, sistem dan model terlibat dalam tugas pengambilan keputusan harian, seperti diagnosis kesehatan, persetujuan pinjaman, atau mendeteksi penipuan. Oleh karena itu, penting bahwa model-model ini bekerja dengan baik untuk memberikan hasil yang dapat dipercaya. Sama seperti aplikasi perangkat lunak lainnya, sistem AI dapat meleset dari ekspektasi atau menghasilkan hasil yang tidak diinginkan. Itulah mengapa penting untuk memahami dan menjelaskan perilaku model AI.
+
+Bayangkan apa yang bisa terjadi ketika data yang Anda gunakan untuk membangun model ini tidak mencakup demografi tertentu, seperti ras, gender, pandangan politik, agama, atau secara tidak proporsional mewakili demografi tersebut. Bagaimana jika output model diinterpretasikan untuk menguntungkan beberapa demografi? Apa konsekuensinya bagi aplikasi tersebut? Selain itu, apa yang terjadi ketika model menghasilkan hasil yang merugikan dan membahayakan orang? Siapa yang bertanggung jawab atas perilaku sistem AI? Ini adalah beberapa pertanyaan yang akan kita eksplorasi dalam kurikulum ini.
+
+Dalam pelajaran ini, Anda akan:
+
+- Meningkatkan kesadaran tentang pentingnya keadilan dalam machine learning dan dampak terkait keadilan.
+- Mengenal praktik eksplorasi outlier dan skenario tidak biasa untuk memastikan keandalan dan keamanan.
+- Memahami kebutuhan untuk memberdayakan semua orang dengan merancang sistem yang inklusif.
+- Mengeksplorasi betapa pentingnya melindungi privasi dan keamanan data serta individu.
+- Melihat pentingnya pendekatan transparan untuk menjelaskan perilaku model AI.
+- Menyadari bahwa akuntabilitas sangat penting untuk membangun kepercayaan pada sistem AI.
+
+## Prasyarat
+
+Sebagai prasyarat, silakan ikuti "Responsible AI Principles" Learn Path dan tonton video di bawah ini tentang topik tersebut:
+
+Pelajari lebih lanjut tentang AI yang Bertanggung Jawab dengan mengikuti [Learning Path](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott)
+
+[](https://youtu.be/dnC8-uUZXSc "Pendekatan Microsoft terhadap AI yang Bertanggung Jawab")
+
+> 🎥 Klik gambar di atas untuk video: Pendekatan Microsoft terhadap AI yang Bertanggung Jawab
+
+## Keadilan
+
+Sistem AI harus memperlakukan semua orang secara adil dan menghindari memengaruhi kelompok orang yang serupa dengan cara yang berbeda. Misalnya, ketika sistem AI memberikan panduan tentang pengobatan medis, aplikasi pinjaman, atau pekerjaan, mereka harus memberikan rekomendasi yang sama kepada semua orang dengan gejala, keadaan finansial, atau kualifikasi profesional yang serupa. Setiap dari kita sebagai manusia membawa bias yang diwarisi yang memengaruhi keputusan dan tindakan kita. Bias ini dapat terlihat dalam data yang kita gunakan untuk melatih sistem AI. Manipulasi semacam itu terkadang terjadi secara tidak sengaja. Sering kali sulit untuk secara sadar mengetahui kapan Anda memperkenalkan bias dalam data.
+
+**“Ketidakadilan”** mencakup dampak negatif, atau “kerugian”, bagi sekelompok orang, seperti yang didefinisikan dalam hal ras, gender, usia, atau status disabilitas. Kerugian utama terkait keadilan dapat diklasifikasikan sebagai:
+
+- **Distribusi**, jika gender atau etnis tertentu, misalnya, lebih diuntungkan dibandingkan yang lain.
+- **Kualitas layanan**. Jika Anda melatih data untuk satu skenario spesifik tetapi kenyataannya jauh lebih kompleks, ini menghasilkan layanan yang berkinerja buruk. Misalnya, dispenser sabun tangan yang tidak dapat mendeteksi orang dengan kulit gelap. [Referensi](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773)
+- **Pelecehan**. Mengkritik atau melabeli sesuatu atau seseorang secara tidak adil. Misalnya, teknologi pelabelan gambar yang secara keliru melabeli gambar orang berkulit gelap sebagai gorila.
+- **Representasi berlebihan atau kurang**. Ide bahwa kelompok tertentu tidak terlihat dalam profesi tertentu, dan layanan atau fungsi apa pun yang terus mempromosikan hal itu berkontribusi pada kerugian.
+- **Stereotip**. Mengaitkan atribut yang telah ditentukan sebelumnya dengan kelompok tertentu. Misalnya, sistem penerjemahan bahasa antara Inggris dan Turki mungkin memiliki ketidakakuratan karena kata-kata dengan asosiasi stereotip terhadap gender.
+
+
+> terjemahan ke Turki
+
+
+> terjemahan kembali ke Inggris
+
+Saat merancang dan menguji sistem AI, kita perlu memastikan bahwa AI adil dan tidak diprogram untuk membuat keputusan yang bias atau diskriminatif, yang juga dilarang dilakukan oleh manusia. Menjamin keadilan dalam AI dan machine learning tetap menjadi tantangan sosial-teknis yang kompleks.
+
+### Keandalan dan keamanan
+
+Untuk membangun kepercayaan, sistem AI perlu dapat diandalkan, aman, dan konsisten dalam kondisi normal maupun tak terduga. Penting untuk mengetahui bagaimana sistem AI akan berperilaku dalam berbagai situasi, terutama ketika mereka berada di luar batas normal. Saat membangun solusi AI, perlu ada fokus yang substansial pada bagaimana menangani berbagai keadaan yang mungkin dihadapi oleh solusi AI tersebut. Misalnya, mobil tanpa pengemudi harus mengutamakan keselamatan orang. Akibatnya, AI yang menggerakkan mobil harus mempertimbangkan semua kemungkinan skenario yang dapat dihadapi mobil, seperti malam hari, badai petir atau badai salju, anak-anak berlari di jalan, hewan peliharaan, konstruksi jalan, dll. Seberapa baik sistem AI dapat menangani berbagai kondisi secara andal dan aman mencerminkan tingkat antisipasi yang dipertimbangkan oleh ilmuwan data atau pengembang AI selama desain atau pengujian sistem.
+
+> [🎥 Klik di sini untuk video: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
+
+### Inklusivitas
+
+Sistem AI harus dirancang untuk melibatkan dan memberdayakan semua orang. Saat merancang dan mengimplementasikan sistem AI, ilmuwan data dan pengembang AI mengidentifikasi dan mengatasi hambatan potensial dalam sistem yang dapat secara tidak sengaja mengecualikan orang. Misalnya, ada 1 miliar orang dengan disabilitas di seluruh dunia. Dengan kemajuan AI, mereka dapat mengakses berbagai informasi dan peluang dengan lebih mudah dalam kehidupan sehari-hari mereka. Dengan mengatasi hambatan tersebut, tercipta peluang untuk berinovasi dan mengembangkan produk AI dengan pengalaman yang lebih baik yang menguntungkan semua orang.
+
+> [🎥 Klik di sini untuk video: inklusivitas dalam AI](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
+
+### Keamanan dan privasi
+
+Sistem AI harus aman dan menghormati privasi orang. Orang memiliki kepercayaan yang lebih rendah pada sistem yang membahayakan privasi, informasi, atau kehidupan mereka. Saat melatih model machine learning, kita mengandalkan data untuk menghasilkan hasil terbaik. Dalam melakukannya, asal dan integritas data harus dipertimbangkan. Misalnya, apakah data dikirimkan oleh pengguna atau tersedia secara publik? Selanjutnya, saat bekerja dengan data, sangat penting untuk mengembangkan sistem AI yang dapat melindungi informasi rahasia dan tahan terhadap serangan. Seiring dengan semakin meluasnya penggunaan AI, melindungi privasi dan mengamankan informasi pribadi serta bisnis yang penting menjadi semakin kritis dan kompleks. Masalah privasi dan keamanan data memerlukan perhatian khusus untuk AI karena akses ke data sangat penting bagi sistem AI untuk membuat prediksi dan keputusan yang akurat dan terinformasi tentang orang.
+
+> [🎥 Klik di sini untuk video: keamanan dalam AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Sebagai industri, kita telah membuat kemajuan signifikan dalam privasi & keamanan, yang didorong secara signifikan oleh regulasi seperti GDPR (General Data Protection Regulation).
+- Namun, dengan sistem AI, kita harus mengakui adanya ketegangan antara kebutuhan akan data pribadi yang lebih banyak untuk membuat sistem lebih personal dan efektif – dan privasi.
+- Sama seperti dengan lahirnya komputer yang terhubung dengan internet, kita juga melihat peningkatan besar dalam jumlah masalah keamanan terkait AI.
+- Pada saat yang sama, kita telah melihat AI digunakan untuk meningkatkan keamanan. Sebagai contoh, sebagian besar pemindai antivirus modern didukung oleh heuristik AI saat ini.
+- Kita perlu memastikan bahwa proses Data Science kita berpadu harmonis dengan praktik privasi dan keamanan terbaru.
+
+### Transparansi
+
+Sistem AI harus dapat dipahami. Bagian penting dari transparansi adalah menjelaskan perilaku sistem AI dan komponennya. Meningkatkan pemahaman tentang sistem AI membutuhkan para pemangku kepentingan untuk memahami bagaimana dan mengapa mereka berfungsi sehingga mereka dapat mengidentifikasi potensi masalah kinerja, kekhawatiran keamanan dan privasi, bias, praktik eksklusif, atau hasil yang tidak diinginkan. Kami juga percaya bahwa mereka yang menggunakan sistem AI harus jujur dan terbuka tentang kapan, mengapa, dan bagaimana mereka memilih untuk menerapkannya, serta keterbatasan sistem yang mereka gunakan. Misalnya, jika sebuah bank menggunakan sistem AI untuk mendukung keputusan pemberian pinjaman konsumen, penting untuk memeriksa hasilnya dan memahami data mana yang memengaruhi rekomendasi sistem. Pemerintah mulai mengatur AI di berbagai industri, sehingga ilmuwan data dan organisasi harus menjelaskan apakah sistem AI memenuhi persyaratan regulasi, terutama ketika ada hasil yang tidak diinginkan.
+
+> [🎥 Klik di sini untuk video: transparansi dalam AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Karena sistem AI sangat kompleks, sulit untuk memahami cara kerjanya dan menafsirkan hasilnya.
+- Kurangnya pemahaman ini memengaruhi cara sistem ini dikelola, dioperasikan, dan didokumentasikan.
+- Lebih penting lagi, kurangnya pemahaman ini memengaruhi keputusan yang dibuat menggunakan hasil yang dihasilkan oleh sistem ini.
+
+### Akuntabilitas
+
+Orang-orang yang merancang dan menerapkan sistem AI harus bertanggung jawab atas cara sistem mereka beroperasi. Kebutuhan akan akuntabilitas sangat penting dengan teknologi yang sensitif seperti pengenalan wajah. Baru-baru ini, ada permintaan yang meningkat untuk teknologi pengenalan wajah, terutama dari organisasi penegak hukum yang melihat potensi teknologi ini dalam penggunaan seperti menemukan anak-anak yang hilang. Namun, teknologi ini berpotensi digunakan oleh pemerintah untuk membahayakan kebebasan fundamental warganya, misalnya, dengan memungkinkan pengawasan terus-menerus terhadap individu tertentu. Oleh karena itu, ilmuwan data dan organisasi perlu bertanggung jawab atas bagaimana sistem AI mereka memengaruhi individu atau masyarakat.
+
+[](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Pendekatan Microsoft terhadap AI yang Bertanggung Jawab")
+
+> 🎥 Klik gambar di atas untuk video: Peringatan Pengawasan Massal Melalui Pengenalan Wajah
+
+Pada akhirnya, salah satu pertanyaan terbesar untuk generasi kita, sebagai generasi pertama yang membawa AI ke masyarakat, adalah bagaimana memastikan bahwa komputer tetap bertanggung jawab kepada manusia dan bagaimana memastikan bahwa orang-orang yang merancang komputer tetap bertanggung jawab kepada semua orang.
+
+## Penilaian Dampak
+
+Sebelum melatih model machine learning, penting untuk melakukan penilaian dampak untuk memahami tujuan sistem AI; apa penggunaan yang dimaksudkan; di mana sistem akan diterapkan; dan siapa yang akan berinteraksi dengan sistem tersebut. Hal ini membantu peninjau atau penguji mengevaluasi sistem untuk mengetahui faktor-faktor yang perlu dipertimbangkan saat mengidentifikasi risiko potensial dan konsekuensi yang diharapkan.
+
+Berikut adalah area fokus saat melakukan penilaian dampak:
+
+* **Dampak buruk pada individu**. Menyadari adanya pembatasan atau persyaratan, penggunaan yang tidak didukung, atau keterbatasan yang diketahui yang menghambat kinerja sistem sangat penting untuk memastikan bahwa sistem tidak digunakan dengan cara yang dapat merugikan individu.
+* **Persyaratan data**. Memahami bagaimana dan di mana sistem akan menggunakan data memungkinkan peninjau untuk mengeksplorasi persyaratan data apa yang perlu diperhatikan (misalnya, regulasi data GDPR atau HIPPA). Selain itu, periksa apakah sumber atau jumlah data cukup untuk pelatihan.
+* **Ringkasan dampak**. Kumpulkan daftar potensi kerugian yang dapat timbul dari penggunaan sistem. Sepanjang siklus hidup ML, tinjau apakah masalah yang diidentifikasi telah diatasi atau diminimalkan.
+* **Tujuan yang berlaku** untuk masing-masing dari enam prinsip inti. Tinjau apakah tujuan dari setiap prinsip telah terpenuhi dan apakah ada celah.
+
+## Debugging dengan AI yang Bertanggung Jawab
+
+Seperti debugging aplikasi perangkat lunak, debugging sistem AI adalah proses yang diperlukan untuk mengidentifikasi dan menyelesaikan masalah dalam sistem. Ada banyak faktor yang dapat memengaruhi model tidak berkinerja seperti yang diharapkan atau secara bertanggung jawab. Sebagian besar metrik kinerja model tradisional adalah agregat kuantitatif dari kinerja model, yang tidak cukup untuk menganalisis bagaimana model melanggar prinsip AI yang bertanggung jawab. Selain itu, model machine learning adalah kotak hitam yang membuatnya sulit untuk memahami apa yang mendorong hasilnya atau memberikan penjelasan ketika terjadi kesalahan. Nanti dalam kursus ini, kita akan belajar bagaimana menggunakan dashboard AI yang Bertanggung Jawab untuk membantu debugging sistem AI. Dashboard ini menyediakan alat holistik bagi ilmuwan data dan pengembang AI untuk melakukan:
+
+* **Analisis kesalahan**. Untuk mengidentifikasi distribusi kesalahan model yang dapat memengaruhi keadilan atau keandalan sistem.
+* **Ikhtisar model**. Untuk menemukan di mana terdapat disparitas dalam kinerja model di berbagai kelompok data.
+* **Analisis data**. Untuk memahami distribusi data dan mengidentifikasi potensi bias dalam data yang dapat menyebabkan masalah keadilan, inklusivitas, dan keandalan.
+* **Interpretabilitas model**. Untuk memahami apa yang memengaruhi atau memengaruhi prediksi model. Ini membantu menjelaskan perilaku model, yang penting untuk transparansi dan akuntabilitas.
+
+## 🚀 Tantangan
+
+Untuk mencegah kerugian diperkenalkan sejak awal, kita harus:
+
+- memiliki keragaman latar belakang dan perspektif di antara orang-orang yang bekerja pada sistem
+- berinvestasi dalam dataset yang mencerminkan keragaman masyarakat kita
+- mengembangkan metode yang lebih baik di seluruh siklus hidup machine learning untuk mendeteksi dan memperbaiki AI yang bertanggung jawab saat terjadi
+
+Pikirkan skenario kehidupan nyata di mana ketidakpercayaan model terlihat dalam pembangunan dan penggunaan model. Apa lagi yang harus kita pertimbangkan?
+
+## [Kuis Pasca-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Dalam pelajaran ini, Anda telah mempelajari beberapa dasar konsep keadilan dan ketidakadilan dalam machine learning.
+Tonton lokakarya ini untuk mendalami topik berikut:
+
+- Mengejar AI yang bertanggung jawab: Menerapkan prinsip ke dalam praktik oleh Besmira Nushi, Mehrnoosh Sameki, dan Amit Sharma
+
+[](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: Kerangka kerja open-source untuk membangun AI yang bertanggung jawab")
+
+> 🎥 Klik gambar di atas untuk menonton video: RAI Toolbox: Kerangka kerja open-source untuk membangun AI yang bertanggung jawab oleh Besmira Nushi, Mehrnoosh Sameki, dan Amit Sharma
+
+Selain itu, baca:
+
+- Pusat sumber daya RAI Microsoft: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Kelompok penelitian FATE Microsoft: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+RAI Toolbox:
+
+- [Repositori GitHub Responsible AI Toolbox](https://github.com/microsoft/responsible-ai-toolbox)
+
+Baca tentang alat Azure Machine Learning untuk memastikan keadilan:
+
+- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott)
+
+## Tugas
+
+[Eksplorasi RAI Toolbox](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/3-fairness/assignment.md b/translations/id/1-Introduction/3-fairness/assignment.md
new file mode 100644
index 00000000..afb21da4
--- /dev/null
+++ b/translations/id/1-Introduction/3-fairness/assignment.md
@@ -0,0 +1,25 @@
+
+# Jelajahi Responsible AI Toolbox
+
+## Instruksi
+
+Dalam pelajaran ini, Anda telah mempelajari tentang Responsible AI Toolbox, sebuah "proyek sumber terbuka yang digerakkan oleh komunitas untuk membantu ilmuwan data menganalisis dan meningkatkan sistem AI." Untuk tugas ini, jelajahi salah satu [notebook](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) dari RAI Toolbox dan laporkan temuan Anda dalam bentuk makalah atau presentasi.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ------- | -------- | ----------------- |
+| | Makalah atau presentasi PowerPoint disajikan yang membahas sistem Fairlearn, notebook yang dijalankan, dan kesimpulan yang diambil dari menjalankannya | Makalah disajikan tanpa kesimpulan | Tidak ada makalah yang disajikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/4-techniques-of-ML/README.md b/translations/id/1-Introduction/4-techniques-of-ML/README.md
new file mode 100644
index 00000000..32917d44
--- /dev/null
+++ b/translations/id/1-Introduction/4-techniques-of-ML/README.md
@@ -0,0 +1,132 @@
+
+# Teknik Pembelajaran Mesin
+
+Proses membangun, menggunakan, dan memelihara model pembelajaran mesin serta data yang digunakan sangat berbeda dari banyak alur kerja pengembangan lainnya. Dalam pelajaran ini, kita akan mengungkap proses tersebut dan merangkum teknik utama yang perlu Anda ketahui. Anda akan:
+
+- Memahami proses yang mendasari pembelajaran mesin pada tingkat tinggi.
+- Mengeksplorasi konsep dasar seperti 'model', 'prediksi', dan 'data pelatihan'.
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+[](https://youtu.be/4NGM0U2ZSHU "ML untuk pemula - Teknik Pembelajaran Mesin")
+
+> 🎥 Klik gambar di atas untuk video singkat yang membahas pelajaran ini.
+
+## Pendahuluan
+
+Secara umum, seni menciptakan proses pembelajaran mesin (ML) terdiri dari beberapa langkah:
+
+1. **Tentukan pertanyaan**. Sebagian besar proses ML dimulai dengan mengajukan pertanyaan yang tidak dapat dijawab oleh program bersyarat sederhana atau mesin berbasis aturan. Pertanyaan ini sering kali berkisar pada prediksi berdasarkan kumpulan data.
+2. **Kumpulkan dan siapkan data**. Untuk dapat menjawab pertanyaan Anda, Anda memerlukan data. Kualitas dan, terkadang, kuantitas data Anda akan menentukan seberapa baik Anda dapat menjawab pertanyaan awal. Memvisualisasikan data adalah aspek penting dari fase ini. Fase ini juga mencakup pembagian data menjadi kelompok pelatihan dan pengujian untuk membangun model.
+3. **Pilih metode pelatihan**. Bergantung pada pertanyaan Anda dan sifat data Anda, Anda perlu memilih cara melatih model agar dapat mencerminkan data Anda dengan baik dan membuat prediksi yang akurat. Bagian dari proses ML ini membutuhkan keahlian khusus dan, sering kali, sejumlah besar eksperimen.
+4. **Latih model**. Dengan menggunakan data pelatihan Anda, Anda akan menggunakan berbagai algoritma untuk melatih model agar mengenali pola dalam data. Model mungkin memanfaatkan bobot internal yang dapat disesuaikan untuk memprioritaskan bagian tertentu dari data dibandingkan yang lain guna membangun model yang lebih baik.
+5. **Evaluasi model**. Anda menggunakan data yang belum pernah dilihat sebelumnya (data pengujian Anda) dari kumpulan yang dikumpulkan untuk melihat bagaimana kinerja model.
+6. **Penyetelan parameter**. Berdasarkan kinerja model Anda, Anda dapat mengulangi proses menggunakan parameter atau variabel yang berbeda yang mengontrol perilaku algoritma yang digunakan untuk melatih model.
+7. **Prediksi**. Gunakan input baru untuk menguji akurasi model Anda.
+
+## Pertanyaan yang harus diajukan
+
+Komputer sangat mahir dalam menemukan pola tersembunyi dalam data. Kemampuan ini sangat membantu bagi peneliti yang memiliki pertanyaan tentang suatu domain tertentu yang tidak dapat dengan mudah dijawab dengan membuat mesin berbasis aturan bersyarat. Dalam tugas aktuaria, misalnya, seorang ilmuwan data mungkin dapat membangun aturan buatan seputar tingkat kematian perokok vs non-perokok.
+
+Namun, ketika banyak variabel lain dimasukkan ke dalam persamaan, model ML mungkin lebih efisien untuk memprediksi tingkat kematian di masa depan berdasarkan riwayat kesehatan sebelumnya. Contoh yang lebih ceria mungkin adalah membuat prediksi cuaca untuk bulan April di lokasi tertentu berdasarkan data yang mencakup garis lintang, garis bujur, perubahan iklim, kedekatan dengan laut, pola aliran jet, dan lainnya.
+
+✅ [Slide presentasi ini](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) tentang model cuaca menawarkan perspektif historis tentang penggunaan ML dalam analisis cuaca.
+
+## Tugas sebelum membangun
+
+Sebelum mulai membangun model Anda, ada beberapa tugas yang perlu Anda selesaikan. Untuk menguji pertanyaan Anda dan membentuk hipotesis berdasarkan prediksi model, Anda perlu mengidentifikasi dan mengonfigurasi beberapa elemen.
+
+### Data
+
+Untuk dapat menjawab pertanyaan Anda dengan tingkat kepastian apa pun, Anda memerlukan sejumlah data yang cukup dan jenis data yang tepat. Ada dua hal yang perlu Anda lakukan pada tahap ini:
+
+- **Kumpulkan data**. Dengan mengingat pelajaran sebelumnya tentang keadilan dalam analisis data, kumpulkan data Anda dengan hati-hati. Perhatikan sumber data ini, bias bawaan yang mungkin dimilikinya, dan dokumentasikan asalnya.
+- **Siapkan data**. Ada beberapa langkah dalam proses persiapan data. Anda mungkin perlu menggabungkan data dan menormalkannya jika berasal dari berbagai sumber. Anda dapat meningkatkan kualitas dan kuantitas data melalui berbagai metode seperti mengonversi string menjadi angka (seperti yang kita lakukan dalam [Clustering](../../5-Clustering/1-Visualize/README.md)). Anda juga dapat menghasilkan data baru berdasarkan data asli (seperti yang kita lakukan dalam [Classification](../../4-Classification/1-Introduction/README.md)). Anda dapat membersihkan dan mengedit data (seperti yang akan kita lakukan sebelum pelajaran [Web App](../../3-Web-App/README.md)). Akhirnya, Anda mungkin juga perlu mengacak dan mengacaknya, tergantung pada teknik pelatihan Anda.
+
+✅ Setelah mengumpulkan dan memproses data Anda, luangkan waktu untuk melihat apakah bentuknya memungkinkan Anda menjawab pertanyaan yang dimaksud. Mungkin saja data tidak akan bekerja dengan baik dalam tugas yang diberikan, seperti yang kita temukan dalam pelajaran [Clustering](../../5-Clustering/1-Visualize/README.md)!
+
+### Fitur dan Target
+
+[Fitur](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) adalah properti yang dapat diukur dari data Anda. Dalam banyak kumpulan data, fitur diekspresikan sebagai judul kolom seperti 'tanggal', 'ukuran', atau 'warna'. Variabel fitur Anda, biasanya direpresentasikan sebagai `X` dalam kode, mewakili variabel input yang akan digunakan untuk melatih model.
+
+Target adalah hal yang Anda coba prediksi. Target, biasanya direpresentasikan sebagai `y` dalam kode, mewakili jawaban atas pertanyaan yang Anda coba ajukan dari data Anda: pada bulan Desember, **warna** labu mana yang akan paling murah? Di San Francisco, lingkungan mana yang akan memiliki **harga** real estat terbaik? Kadang-kadang target juga disebut sebagai atribut label.
+
+### Memilih variabel fitur Anda
+
+🎓 **Pemilihan Fitur dan Ekstraksi Fitur** Bagaimana Anda tahu variabel mana yang harus dipilih saat membangun model? Anda mungkin akan melalui proses pemilihan fitur atau ekstraksi fitur untuk memilih variabel yang tepat untuk model yang paling berkinerja. Namun, keduanya tidak sama: "Ekstraksi fitur menciptakan fitur baru dari fungsi fitur asli, sedangkan pemilihan fitur mengembalikan subset dari fitur tersebut." ([sumber](https://wikipedia.org/wiki/Feature_selection))
+
+### Visualisasikan data Anda
+
+Aspek penting dari alat ilmuwan data adalah kemampuan untuk memvisualisasikan data menggunakan beberapa pustaka yang sangat baik seperti Seaborn atau MatPlotLib. Mewakili data Anda secara visual mungkin memungkinkan Anda menemukan korelasi tersembunyi yang dapat Anda manfaatkan. Visualisasi Anda juga dapat membantu Anda menemukan bias atau data yang tidak seimbang (seperti yang kita temukan dalam [Classification](../../4-Classification/2-Classifiers-1/README.md)).
+
+### Pisahkan dataset Anda
+
+Sebelum pelatihan, Anda perlu membagi dataset Anda menjadi dua atau lebih bagian dengan ukuran yang tidak sama yang tetap mewakili data dengan baik.
+
+- **Pelatihan**. Bagian dataset ini digunakan untuk melatih model Anda. Set ini merupakan mayoritas dari dataset asli.
+- **Pengujian**. Dataset pengujian adalah kelompok data independen, sering kali dikumpulkan dari data asli, yang Anda gunakan untuk mengonfirmasi kinerja model yang dibangun.
+- **Validasi**. Set validasi adalah kelompok contoh independen yang lebih kecil yang Anda gunakan untuk menyetel hiperparameter atau arsitektur model untuk meningkatkan model. Bergantung pada ukuran data Anda dan pertanyaan yang Anda ajukan, Anda mungkin tidak perlu membangun set ketiga ini (seperti yang kita catat dalam [Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md)).
+
+## Membangun model
+
+Dengan menggunakan data pelatihan Anda, tujuan Anda adalah membangun model, atau representasi statistik dari data Anda, menggunakan berbagai algoritma untuk **melatih** model tersebut. Melatih model memaparkannya pada data dan memungkinkan model membuat asumsi tentang pola yang ditemukan, memvalidasi, dan menerima atau menolak.
+
+### Tentukan metode pelatihan
+
+Bergantung pada pertanyaan Anda dan sifat data Anda, Anda akan memilih metode untuk melatihnya. Dengan menjelajahi [dokumentasi Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - yang kita gunakan dalam kursus ini - Anda dapat mengeksplorasi banyak cara untuk melatih model. Bergantung pada pengalaman Anda, Anda mungkin harus mencoba beberapa metode berbeda untuk membangun model terbaik. Anda kemungkinan akan melalui proses di mana ilmuwan data mengevaluasi kinerja model dengan memberinya data yang belum pernah dilihat sebelumnya, memeriksa akurasi, bias, dan masalah kualitas lainnya, serta memilih metode pelatihan yang paling sesuai untuk tugas yang diberikan.
+
+### Latih model
+
+Dengan data pelatihan Anda, Anda siap untuk 'memasangkannya' untuk membuat model. Anda akan melihat bahwa dalam banyak pustaka ML, Anda akan menemukan kode 'model.fit' - pada saat inilah Anda mengirimkan variabel fitur Anda sebagai array nilai (biasanya 'X') dan variabel target (biasanya 'y').
+
+### Evaluasi model
+
+Setelah proses pelatihan selesai (dapat memakan waktu banyak iterasi, atau 'epoch', untuk melatih model besar), Anda akan dapat mengevaluasi kualitas model dengan menggunakan data pengujian untuk mengukur kinerjanya. Data ini adalah subset dari data asli yang belum pernah dianalisis oleh model sebelumnya. Anda dapat mencetak tabel metrik tentang kualitas model Anda.
+
+🎓 **Pemasangan model**
+
+Dalam konteks pembelajaran mesin, pemasangan model mengacu pada akurasi fungsi dasar model saat mencoba menganalisis data yang tidak dikenalnya.
+
+🎓 **Underfitting** dan **overfitting** adalah masalah umum yang menurunkan kualitas model, karena model tidak cocok dengan baik atau terlalu cocok. Hal ini menyebabkan model membuat prediksi yang terlalu selaras atau terlalu longgar dengan data pelatihannya. Model yang terlalu cocok memprediksi data pelatihan terlalu baik karena telah mempelajari detail dan kebisingan data terlalu baik. Model yang kurang cocok tidak akurat karena tidak dapat menganalisis data pelatihannya maupun data yang belum pernah 'dilihat' dengan akurat.
+
+
+> Infografis oleh [Jen Looper](https://twitter.com/jenlooper)
+
+## Penyetelan parameter
+
+Setelah pelatihan awal Anda selesai, amati kualitas model dan pertimbangkan untuk meningkatkannya dengan menyetel 'hiperparameter'-nya. Baca lebih lanjut tentang proses ini [dalam dokumentasi](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+
+## Prediksi
+
+Ini adalah momen di mana Anda dapat menggunakan data yang benar-benar baru untuk menguji akurasi model Anda. Dalam pengaturan ML 'terapan', di mana Anda membangun aset web untuk menggunakan model dalam produksi, proses ini mungkin melibatkan pengumpulan input pengguna (misalnya, menekan tombol) untuk menetapkan variabel dan mengirimkannya ke model untuk inferensi atau evaluasi.
+
+Dalam pelajaran ini, Anda akan menemukan cara menggunakan langkah-langkah ini untuk mempersiapkan, membangun, menguji, mengevaluasi, dan memprediksi - semua gerakan seorang ilmuwan data dan lebih banyak lagi, saat Anda maju dalam perjalanan Anda untuk menjadi seorang insinyur ML 'full stack'.
+
+---
+
+## 🚀Tantangan
+
+Buat diagram alur yang mencerminkan langkah-langkah seorang praktisi ML. Di mana Anda melihat diri Anda saat ini dalam proses tersebut? Di mana Anda memprediksi akan menemukan kesulitan? Apa yang tampaknya mudah bagi Anda?
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Cari wawancara online dengan ilmuwan data yang membahas pekerjaan harian mereka. Berikut adalah [salah satunya](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+
+## Tugas
+
+[Wawancarai seorang ilmuwan data](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/4-techniques-of-ML/assignment.md b/translations/id/1-Introduction/4-techniques-of-ML/assignment.md
new file mode 100644
index 00000000..d06517e4
--- /dev/null
+++ b/translations/id/1-Introduction/4-techniques-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Wawancara dengan seorang data scientist
+
+## Instruksi
+
+Di perusahaan Anda, dalam grup pengguna, atau di antara teman atau sesama mahasiswa, ajak seseorang yang bekerja secara profesional sebagai data scientist untuk berbicara. Tulislah sebuah esai pendek (500 kata) tentang pekerjaan sehari-hari mereka. Apakah mereka seorang spesialis, atau mereka bekerja secara 'full stack'?
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Perbaikan |
+| -------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------- |
+| | Esai dengan panjang yang sesuai, dengan sumber yang disebutkan, disajikan sebagai file .doc | Esai kurang menyebutkan sumber atau lebih pendek dari panjang yang diminta | Tidak ada esai yang disajikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/1-Introduction/README.md b/translations/id/1-Introduction/README.md
new file mode 100644
index 00000000..adba51d2
--- /dev/null
+++ b/translations/id/1-Introduction/README.md
@@ -0,0 +1,36 @@
+
+# Pengantar pembelajaran mesin
+
+Di bagian kurikulum ini, Anda akan diperkenalkan pada konsep dasar yang mendasari bidang pembelajaran mesin, apa itu, serta mempelajari sejarahnya dan teknik yang digunakan para peneliti untuk bekerja dengannya. Mari kita jelajahi dunia baru ML ini bersama-sama!
+
+
+> Foto oleh Bill Oxford di Unsplash
+
+### Pelajaran
+
+1. [Pengantar pembelajaran mesin](1-intro-to-ML/README.md)
+1. [Sejarah pembelajaran mesin dan AI](2-history-of-ML/README.md)
+1. [Keadilan dalam pembelajaran mesin](3-fairness/README.md)
+1. [Teknik pembelajaran mesin](4-techniques-of-ML/README.md)
+### Kredit
+
+"Pengantar Pembelajaran Mesin" ditulis dengan ♥️ oleh tim yang terdiri dari [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) dan [Jen Looper](https://twitter.com/jenlooper)
+
+"Sejarah Pembelajaran Mesin" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Amy Boyd](https://twitter.com/AmyKateNicho)
+
+"Keadilan dalam Pembelajaran Mesin" ditulis dengan ♥️ oleh [Tomomi Imura](https://twitter.com/girliemac)
+
+"Teknik Pembelajaran Mesin" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Chris Noring](https://twitter.com/softchris)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/1-Tools/README.md b/translations/id/2-Regression/1-Tools/README.md
new file mode 100644
index 00000000..377d00fc
--- /dev/null
+++ b/translations/id/2-Regression/1-Tools/README.md
@@ -0,0 +1,239 @@
+
+# Memulai dengan Python dan Scikit-learn untuk model regresi
+
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
+
+## Pendahuluan
+
+Dalam empat pelajaran ini, Anda akan mempelajari cara membangun model regresi. Kita akan membahas kegunaannya sebentar lagi. Namun sebelum memulai, pastikan Anda memiliki alat yang tepat untuk memulai proses ini!
+
+Dalam pelajaran ini, Anda akan belajar:
+
+- Mengonfigurasi komputer Anda untuk tugas pembelajaran mesin lokal.
+- Bekerja dengan Jupyter notebook.
+- Menggunakan Scikit-learn, termasuk instalasi.
+- Mengeksplorasi regresi linier melalui latihan langsung.
+
+## Instalasi dan konfigurasi
+
+[](https://youtu.be/-DfeD2k2Kj0 "ML untuk pemula - Siapkan alat Anda untuk membangun model Pembelajaran Mesin")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang cara mengonfigurasi komputer Anda untuk ML.
+
+1. **Instal Python**. Pastikan [Python](https://www.python.org/downloads/) sudah terinstal di komputer Anda. Anda akan menggunakan Python untuk banyak tugas ilmu data dan pembelajaran mesin. Sebagian besar sistem komputer sudah memiliki instalasi Python. Ada juga [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) yang berguna untuk mempermudah pengaturan bagi beberapa pengguna.
+
+ Namun, beberapa penggunaan Python memerlukan satu versi perangkat lunak, sementara yang lain memerlukan versi yang berbeda. Oleh karena itu, sangat berguna untuk bekerja dalam [lingkungan virtual](https://docs.python.org/3/library/venv.html).
+
+2. **Instal Visual Studio Code**. Pastikan Anda memiliki Visual Studio Code yang terinstal di komputer Anda. Ikuti petunjuk ini untuk [menginstal Visual Studio Code](https://code.visualstudio.com/) untuk instalasi dasar. Anda akan menggunakan Python di Visual Studio Code dalam kursus ini, jadi Anda mungkin ingin mempelajari cara [mengonfigurasi Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) untuk pengembangan Python.
+
+ > Biasakan diri dengan Python dengan mempelajari koleksi [modul pembelajaran](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott)
+ >
+ > [](https://youtu.be/yyQM70vi7V8 "Siapkan Python dengan Visual Studio Code")
+ >
+ > 🎥 Klik gambar di atas untuk video: menggunakan Python dalam VS Code.
+
+3. **Instal Scikit-learn**, dengan mengikuti [petunjuk ini](https://scikit-learn.org/stable/install.html). Karena Anda perlu memastikan bahwa Anda menggunakan Python 3, disarankan untuk menggunakan lingkungan virtual. Perhatikan, jika Anda menginstal pustaka ini di Mac M1, ada petunjuk khusus di halaman yang ditautkan di atas.
+
+4. **Instal Jupyter Notebook**. Anda perlu [menginstal paket Jupyter](https://pypi.org/project/jupyter/).
+
+## Lingkungan penulisan ML Anda
+
+Anda akan menggunakan **notebook** untuk mengembangkan kode Python Anda dan membuat model pembelajaran mesin. Jenis file ini adalah alat umum bagi ilmuwan data, dan dapat diidentifikasi dengan akhiran atau ekstensi `.ipynb`.
+
+Notebook adalah lingkungan interaktif yang memungkinkan pengembang untuk menulis kode sekaligus menambahkan catatan dan dokumentasi di sekitar kode, yang sangat membantu untuk proyek eksperimental atau berbasis penelitian.
+
+[](https://youtu.be/7E-jC8FLA2E "ML untuk pemula - Siapkan Jupyter Notebook untuk mulai membangun model regresi")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang latihan ini.
+
+### Latihan - bekerja dengan notebook
+
+Di folder ini, Anda akan menemukan file _notebook.ipynb_.
+
+1. Buka _notebook.ipynb_ di Visual Studio Code.
+
+ Server Jupyter akan dimulai dengan Python 3+. Anda akan menemukan area di notebook yang dapat `dijalankan`, yaitu potongan kode. Anda dapat menjalankan blok kode dengan memilih ikon yang terlihat seperti tombol putar.
+
+2. Pilih ikon `md` dan tambahkan sedikit markdown, serta teks berikut **# Selamat datang di notebook Anda**.
+
+ Selanjutnya, tambahkan beberapa kode Python.
+
+3. Ketik **print('hello notebook')** di blok kode.
+4. Pilih panah untuk menjalankan kode.
+
+ Anda akan melihat pernyataan yang dicetak:
+
+ ```output
+ hello notebook
+ ```
+
+
+
+Anda dapat menyisipkan kode Anda dengan komentar untuk mendokumentasikan notebook secara mandiri.
+
+✅ Pikirkan sejenak tentang betapa berbedanya lingkungan kerja pengembang web dibandingkan dengan ilmuwan data.
+
+## Memulai dengan Scikit-learn
+
+Sekarang Python telah diatur di lingkungan lokal Anda, dan Anda merasa nyaman dengan Jupyter notebook, mari kita sama-sama merasa nyaman dengan Scikit-learn (diucapkan `sci` seperti dalam `science`). Scikit-learn menyediakan [API yang luas](https://scikit-learn.org/stable/modules/classes.html#api-ref) untuk membantu Anda melakukan tugas ML.
+
+Menurut [situs web mereka](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn adalah pustaka pembelajaran mesin sumber terbuka yang mendukung pembelajaran terawasi dan tidak terawasi. Pustaka ini juga menyediakan berbagai alat untuk fitting model, praproses data, pemilihan model, evaluasi, dan banyak utilitas lainnya."
+
+Dalam kursus ini, Anda akan menggunakan Scikit-learn dan alat lainnya untuk membangun model pembelajaran mesin untuk melakukan apa yang kita sebut tugas 'pembelajaran mesin tradisional'. Kami sengaja menghindari jaringan saraf dan pembelajaran mendalam, karena topik tersebut lebih baik dibahas dalam kurikulum 'AI untuk Pemula' kami yang akan datang.
+
+Scikit-learn membuatnya mudah untuk membangun model dan mengevaluasinya untuk digunakan. Pustaka ini terutama berfokus pada penggunaan data numerik dan berisi beberapa dataset siap pakai untuk digunakan sebagai alat pembelajaran. Pustaka ini juga mencakup model yang sudah dibuat sebelumnya untuk dicoba oleh siswa. Mari kita eksplorasi proses memuat data yang sudah dikemas dan menggunakan estimator bawaan untuk model ML pertama dengan Scikit-learn menggunakan data dasar.
+
+## Latihan - notebook Scikit-learn pertama Anda
+
+> Tutorial ini terinspirasi oleh [contoh regresi linier](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) di situs web Scikit-learn.
+
+[](https://youtu.be/2xkXL5EUpS0 "ML untuk pemula - Proyek Regresi Linier Pertama Anda dalam Python")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang latihan ini.
+
+Di file _notebook.ipynb_ yang terkait dengan pelajaran ini, hapus semua sel dengan menekan ikon 'tempat sampah'.
+
+Di bagian ini, Anda akan bekerja dengan dataset kecil tentang diabetes yang sudah ada di Scikit-learn untuk tujuan pembelajaran. Bayangkan Anda ingin menguji pengobatan untuk pasien diabetes. Model Pembelajaran Mesin mungkin membantu Anda menentukan pasien mana yang akan merespons pengobatan dengan lebih baik, berdasarkan kombinasi variabel. Bahkan model regresi yang sangat dasar, ketika divisualisasikan, mungkin menunjukkan informasi tentang variabel yang dapat membantu Anda mengatur uji klinis teoritis Anda.
+
+✅ Ada banyak jenis metode regresi, dan pilihan metode tergantung pada jawaban yang Anda cari. Jika Anda ingin memprediksi tinggi badan yang mungkin untuk seseorang berdasarkan usia tertentu, Anda akan menggunakan regresi linier, karena Anda mencari **nilai numerik**. Jika Anda tertarik untuk mengetahui apakah jenis masakan tertentu harus dianggap vegan atau tidak, Anda mencari **penugasan kategori**, sehingga Anda akan menggunakan regresi logistik. Anda akan mempelajari lebih lanjut tentang regresi logistik nanti. Pikirkan sejenak tentang beberapa pertanyaan yang dapat Anda ajukan dari data, dan metode mana yang lebih sesuai.
+
+Mari kita mulai tugas ini.
+
+### Impor pustaka
+
+Untuk tugas ini, kita akan mengimpor beberapa pustaka:
+
+- **matplotlib**. Ini adalah [alat grafik](https://matplotlib.org/) yang berguna dan akan kita gunakan untuk membuat plot garis.
+- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) adalah pustaka yang berguna untuk menangani data numerik dalam Python.
+- **sklearn**. Ini adalah pustaka [Scikit-learn](https://scikit-learn.org/stable/user_guide.html).
+
+Impor beberapa pustaka untuk membantu tugas Anda.
+
+1. Tambahkan impor dengan mengetik kode berikut:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import numpy as np
+ from sklearn import datasets, linear_model, model_selection
+ ```
+
+ Di atas, Anda mengimpor `matplotlib`, `numpy`, dan Anda mengimpor `datasets`, `linear_model`, dan `model_selection` dari `sklearn`. `model_selection` digunakan untuk membagi data menjadi set pelatihan dan pengujian.
+
+### Dataset diabetes
+
+Dataset [diabetes](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) bawaan mencakup 442 sampel data tentang diabetes, dengan 10 variabel fitur, beberapa di antaranya meliputi:
+
+- age: usia dalam tahun
+- bmi: indeks massa tubuh
+- bp: tekanan darah rata-rata
+- s1 tc: T-Cells (jenis sel darah putih)
+
+✅ Dataset ini mencakup konsep 'jenis kelamin' sebagai variabel fitur yang penting untuk penelitian tentang diabetes. Banyak dataset medis mencakup jenis klasifikasi biner seperti ini. Pikirkan sejenak tentang bagaimana kategorisasi seperti ini mungkin mengecualikan bagian tertentu dari populasi dari pengobatan.
+
+Sekarang, muat data X dan y.
+
+> 🎓 Ingat, ini adalah pembelajaran terawasi, dan kita membutuhkan target 'y' yang bernama.
+
+Di sel kode baru, muat dataset diabetes dengan memanggil `load_diabetes()`. Input `return_X_y=True` menandakan bahwa `X` akan menjadi matriks data, dan `y` akan menjadi target regresi.
+
+1. Tambahkan beberapa perintah print untuk menunjukkan bentuk matriks data dan elemen pertamanya:
+
+ ```python
+ X, y = datasets.load_diabetes(return_X_y=True)
+ print(X.shape)
+ print(X[0])
+ ```
+
+ Apa yang Anda dapatkan sebagai respons adalah tuple. Anda menetapkan dua nilai pertama dari tuple ke `X` dan `y` masing-masing. Pelajari lebih lanjut [tentang tuple](https://wikipedia.org/wiki/Tuple).
+
+ Anda dapat melihat bahwa data ini memiliki 442 item yang berbentuk array dengan 10 elemen:
+
+ ```text
+ (442, 10)
+ [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076
+ -0.04340085 -0.00259226 0.01990842 -0.01764613]
+ ```
+
+ ✅ Pikirkan sejenak tentang hubungan antara data dan target regresi. Regresi linier memprediksi hubungan antara fitur X dan variabel target y. Bisakah Anda menemukan [target](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) untuk dataset diabetes dalam dokumentasi? Apa yang ditunjukkan oleh dataset ini, mengingat targetnya?
+
+2. Selanjutnya, pilih bagian dari dataset ini untuk dipetakan dengan memilih kolom ke-3 dari dataset. Anda dapat melakukannya dengan menggunakan operator `:` untuk memilih semua baris, lalu memilih kolom ke-3 menggunakan indeks (2). Anda juga dapat mengubah bentuk data menjadi array 2D - seperti yang diperlukan untuk pemetaan - dengan menggunakan `reshape(n_rows, n_columns)`. Jika salah satu parameter adalah -1, dimensi yang sesuai dihitung secara otomatis.
+
+ ```python
+ X = X[:, 2]
+ X = X.reshape((-1,1))
+ ```
+
+ ✅ Kapan saja, cetak data untuk memeriksa bentuknya.
+
+3. Sekarang setelah Anda memiliki data yang siap untuk dipetakan, Anda dapat melihat apakah mesin dapat membantu menentukan pembagian logis antara angka-angka dalam dataset ini. Untuk melakukan ini, Anda perlu membagi data (X) dan target (y) menjadi set pengujian dan pelatihan. Scikit-learn memiliki cara yang sederhana untuk melakukan ini; Anda dapat membagi data pengujian Anda pada titik tertentu.
+
+ ```python
+ X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
+ ```
+
+4. Sekarang Anda siap untuk melatih model Anda! Muat model regresi linier dan latih dengan set pelatihan X dan y Anda menggunakan `model.fit()`:
+
+ ```python
+ model = linear_model.LinearRegression()
+ model.fit(X_train, y_train)
+ ```
+
+ ✅ `model.fit()` adalah fungsi yang akan sering Anda lihat di banyak pustaka ML seperti TensorFlow.
+
+5. Kemudian, buat prediksi menggunakan data pengujian, dengan menggunakan fungsi `predict()`. Ini akan digunakan untuk menggambar garis antara kelompok data.
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+6. Sekarang saatnya untuk menunjukkan data dalam plot. Matplotlib adalah alat yang sangat berguna untuk tugas ini. Buat scatterplot dari semua data pengujian X dan y, dan gunakan prediksi untuk menggambar garis di tempat yang paling sesuai, di antara pengelompokan data model.
+
+ ```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()
+ ```
+
+ 
+✅ Pikirkan sebentar tentang apa yang sedang terjadi di sini. Sebuah garis lurus melewati banyak titik data kecil, tetapi apa sebenarnya yang sedang dilakukan? Bisakah Anda melihat bagaimana Anda seharusnya dapat menggunakan garis ini untuk memprediksi di mana titik data baru yang belum terlihat seharusnya berada dalam hubungannya dengan sumbu y pada plot? Cobalah untuk menjelaskan penggunaan praktis dari model ini.
+
+Selamat, Anda telah membangun model regresi linear pertama Anda, membuat prediksi dengannya, dan menampilkannya dalam sebuah plot!
+
+---
+## 🚀Tantangan
+
+Plot variabel yang berbeda dari dataset ini. Petunjuk: edit baris ini: `X = X[:,2]`. Berdasarkan target dataset ini, apa yang dapat Anda temukan tentang perkembangan diabetes sebagai penyakit?
+
+## [Kuis setelah kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Dalam tutorial ini, Anda bekerja dengan regresi linear sederhana, bukan regresi univariat atau regresi multivariat. Bacalah sedikit tentang perbedaan antara metode-metode ini, atau lihat [video ini](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef).
+
+Pelajari lebih lanjut tentang konsep regresi dan pikirkan tentang jenis pertanyaan apa yang dapat dijawab dengan teknik ini. Ikuti [tutorial ini](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) untuk memperdalam pemahaman Anda.
+
+## Tugas
+
+[Dataset yang berbeda](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/1-Tools/assignment.md b/translations/id/2-Regression/1-Tools/assignment.md
new file mode 100644
index 00000000..b3544176
--- /dev/null
+++ b/translations/id/2-Regression/1-Tools/assignment.md
@@ -0,0 +1,27 @@
+
+# Regresi dengan Scikit-learn
+
+## Instruksi
+
+Lihatlah [dataset Linnerud](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) di Scikit-learn. Dataset ini memiliki beberapa [target](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset): 'Dataset ini terdiri dari tiga variabel latihan (data) dan tiga variabel fisiologis (target) yang dikumpulkan dari dua puluh pria paruh baya di sebuah klub kebugaran'.
+
+Dengan kata-kata Anda sendiri, jelaskan bagaimana cara membuat model Regresi yang dapat memplot hubungan antara ukuran pinggang dan jumlah sit-up yang dilakukan. Lakukan hal yang sama untuk poin data lainnya dalam dataset ini.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- |
+| Kirim paragraf deskriptif | Paragraf yang ditulis dengan baik | Beberapa kalimat dikirimkan | Tidak ada deskripsi yang diberikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/1-Tools/solution/Julia/README.md b/translations/id/2-Regression/1-Tools/solution/Julia/README.md
new file mode 100644
index 00000000..16d0bfea
--- /dev/null
+++ b/translations/id/2-Regression/1-Tools/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/2-Data/README.md b/translations/id/2-Regression/2-Data/README.md
new file mode 100644
index 00000000..ee58546d
--- /dev/null
+++ b/translations/id/2-Regression/2-Data/README.md
@@ -0,0 +1,226 @@
+
+# Membangun Model Regresi Menggunakan Scikit-learn: Persiapkan dan Visualisasikan Data
+
+
+
+Infografis oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/2-Data/solution/R/lesson_2.html)
+
+## Pendahuluan
+
+Setelah Anda memiliki alat yang diperlukan untuk mulai membangun model pembelajaran mesin dengan Scikit-learn, Anda siap untuk mulai mengajukan pertanyaan terhadap data Anda. Saat bekerja dengan data dan menerapkan solusi ML, sangat penting untuk memahami cara mengajukan pertanyaan yang tepat agar dapat memanfaatkan potensi dataset Anda dengan benar.
+
+Dalam pelajaran ini, Anda akan belajar:
+
+- Cara mempersiapkan data Anda untuk membangun model.
+- Cara menggunakan Matplotlib untuk visualisasi data.
+
+## Mengajukan Pertanyaan yang Tepat pada Data Anda
+
+Pertanyaan yang ingin Anda jawab akan menentukan jenis algoritma ML yang akan Anda gunakan. Kualitas jawaban yang Anda dapatkan sangat bergantung pada sifat data Anda.
+
+Lihatlah [data](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) yang disediakan untuk pelajaran ini. Anda dapat membuka file .csv ini di VS Code. Sekilas, Anda akan segera melihat bahwa ada data kosong dan campuran antara string dan data numerik. Ada juga kolom aneh bernama 'Package' di mana datanya adalah campuran antara 'sacks', 'bins', dan nilai lainnya. Data ini, sebenarnya, cukup berantakan.
+
+[](https://youtu.be/5qGjczWTrDQ "ML untuk Pemula - Cara Menganalisis dan Membersihkan Dataset")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang persiapan data untuk pelajaran ini.
+
+Faktanya, sangat jarang mendapatkan dataset yang sepenuhnya siap digunakan untuk membuat model ML langsung. Dalam pelajaran ini, Anda akan belajar cara mempersiapkan dataset mentah menggunakan pustaka Python standar. Anda juga akan mempelajari berbagai teknik untuk memvisualisasikan data.
+
+## Studi Kasus: 'Pasar Labu'
+
+Dalam folder ini, Anda akan menemukan file .csv di folder root `data` bernama [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) yang mencakup 1757 baris data tentang pasar labu, yang dikelompokkan berdasarkan kota. Ini adalah data mentah yang diekstrak dari [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) yang didistribusikan oleh Departemen Pertanian Amerika Serikat.
+
+### Mempersiapkan Data
+
+Data ini berada di domain publik. Data ini dapat diunduh dalam banyak file terpisah, per kota, dari situs web USDA. Untuk menghindari terlalu banyak file terpisah, kami telah menggabungkan semua data kota ke dalam satu spreadsheet, sehingga kami telah _mempersiapkan_ data sedikit. Selanjutnya, mari kita lihat lebih dekat data tersebut.
+
+### Data Labu - Kesimpulan Awal
+
+Apa yang Anda perhatikan tentang data ini? Anda sudah melihat bahwa ada campuran string, angka, data kosong, dan nilai aneh yang perlu Anda pahami.
+
+Pertanyaan apa yang dapat Anda ajukan pada data ini menggunakan teknik Regresi? Bagaimana dengan "Memprediksi harga labu yang dijual selama bulan tertentu". Melihat kembali data tersebut, ada beberapa perubahan yang perlu Anda lakukan untuk membuat struktur data yang diperlukan untuk tugas ini.
+
+## Latihan - Analisis Data Labu
+
+Mari gunakan [Pandas](https://pandas.pydata.org/), (nama ini berasal dari `Python Data Analysis`) alat yang sangat berguna untuk membentuk data, untuk menganalisis dan mempersiapkan data labu ini.
+
+### Pertama, Periksa Tanggal yang Hilang
+
+Anda pertama-tama perlu mengambil langkah-langkah untuk memeriksa tanggal yang hilang:
+
+1. Konversikan tanggal ke format bulan (ini adalah tanggal AS, jadi formatnya adalah `MM/DD/YYYY`).
+2. Ekstrak bulan ke kolom baru.
+
+Buka file _notebook.ipynb_ di Visual Studio Code dan impor spreadsheet ke dalam dataframe Pandas baru.
+
+1. Gunakan fungsi `head()` untuk melihat lima baris pertama.
+
+ ```python
+ import pandas as pd
+ pumpkins = pd.read_csv('../data/US-pumpkins.csv')
+ pumpkins.head()
+ ```
+
+ ✅ Fungsi apa yang akan Anda gunakan untuk melihat lima baris terakhir?
+
+1. Periksa apakah ada data yang hilang dalam dataframe saat ini:
+
+ ```python
+ pumpkins.isnull().sum()
+ ```
+
+ Ada data yang hilang, tetapi mungkin tidak akan menjadi masalah untuk tugas ini.
+
+1. Untuk membuat dataframe Anda lebih mudah digunakan, pilih hanya kolom yang Anda butuhkan, menggunakan fungsi `loc` yang mengekstrak dari dataframe asli sekelompok baris (diberikan sebagai parameter pertama) dan kolom (diberikan sebagai parameter kedua). Ekspresi `:` dalam kasus ini berarti "semua baris".
+
+ ```python
+ columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
+ pumpkins = pumpkins.loc[:, columns_to_select]
+ ```
+
+### Kedua, Tentukan Harga Rata-rata Labu
+
+Pikirkan tentang cara menentukan harga rata-rata labu dalam bulan tertentu. Kolom apa yang akan Anda pilih untuk tugas ini? Petunjuk: Anda akan membutuhkan 3 kolom.
+
+Solusi: ambil rata-rata dari kolom `Low Price` dan `High Price` untuk mengisi kolom Harga baru, dan konversikan kolom Tanggal untuk hanya menampilkan bulan. Untungnya, menurut pemeriksaan di atas, tidak ada data yang hilang untuk tanggal atau harga.
+
+1. Untuk menghitung rata-rata, tambahkan kode berikut:
+
+ ```python
+ price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
+
+ month = pd.DatetimeIndex(pumpkins['Date']).month
+
+ ```
+
+ ✅ Silakan cetak data apa pun yang ingin Anda periksa menggunakan `print(month)`.
+
+2. Sekarang, salin data yang telah dikonversi ke dataframe Pandas baru:
+
+ ```python
+ new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
+ ```
+
+ Mencetak dataframe Anda akan menunjukkan dataset yang bersih dan rapi yang dapat Anda gunakan untuk membangun model regresi baru Anda.
+
+### Tapi Tunggu! Ada Sesuatu yang Aneh di Sini
+
+Jika Anda melihat kolom `Package`, labu dijual dalam banyak konfigurasi yang berbeda. Beberapa dijual dalam ukuran '1 1/9 bushel', beberapa dalam ukuran '1/2 bushel', beberapa per labu, beberapa per pon, dan beberapa dalam kotak besar dengan lebar yang bervariasi.
+
+> Labu tampaknya sangat sulit untuk ditimbang secara konsisten
+
+Menggali data asli, menarik bahwa apa pun dengan `Unit of Sale` yang sama dengan 'EACH' atau 'PER BIN' juga memiliki tipe `Package` per inci, per bin, atau 'each'. Labu tampaknya sangat sulit untuk ditimbang secara konsisten, jadi mari kita memfilter mereka dengan memilih hanya labu dengan string 'bushel' di kolom `Package`.
+
+1. Tambahkan filter di bagian atas file, di bawah impor .csv awal:
+
+ ```python
+ pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
+ ```
+
+ Jika Anda mencetak data sekarang, Anda dapat melihat bahwa Anda hanya mendapatkan sekitar 415 baris data yang berisi labu berdasarkan bushel.
+
+### Tapi Tunggu! Ada Satu Hal Lagi yang Harus Dilakukan
+
+Apakah Anda memperhatikan bahwa jumlah bushel bervariasi per baris? Anda perlu menormalkan harga sehingga Anda menunjukkan harga per bushel, jadi lakukan beberapa perhitungan untuk standarisasi.
+
+1. Tambahkan baris ini setelah blok yang membuat 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)
+ ```
+
+✅ Menurut [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), berat bushel tergantung pada jenis hasil panen, karena ini adalah pengukuran volume. "Satu bushel tomat, misalnya, seharusnya memiliki berat 56 pon... Daun dan sayuran mengambil lebih banyak ruang dengan berat lebih sedikit, sehingga satu bushel bayam hanya memiliki berat 20 pon." Semuanya cukup rumit! Mari kita tidak repot-repot membuat konversi bushel-ke-pon, dan sebagai gantinya harga berdasarkan bushel. Semua studi tentang bushel labu ini, bagaimanapun, menunjukkan betapa pentingnya memahami sifat data Anda!
+
+Sekarang, Anda dapat menganalisis harga per unit berdasarkan pengukuran bushel mereka. Jika Anda mencetak data sekali lagi, Anda dapat melihat bagaimana data tersebut telah distandarisasi.
+
+✅ Apakah Anda memperhatikan bahwa labu yang dijual berdasarkan setengah bushel sangat mahal? Bisakah Anda mencari tahu alasannya? Petunjuk: labu kecil jauh lebih mahal daripada yang besar, mungkin karena ada lebih banyak labu kecil per bushel, mengingat ruang kosong yang tidak terpakai yang diambil oleh satu labu besar untuk pai.
+
+## Strategi Visualisasi
+
+Bagian dari peran ilmuwan data adalah menunjukkan kualitas dan sifat data yang mereka kerjakan. Untuk melakukan ini, mereka sering membuat visualisasi yang menarik, seperti plot, grafik, dan diagram, yang menunjukkan berbagai aspek data. Dengan cara ini, mereka dapat secara visual menunjukkan hubungan dan celah yang sulit ditemukan.
+
+[](https://youtu.be/SbUkxH6IJo0 "ML untuk Pemula - Cara Memvisualisasikan Data dengan Matplotlib")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang memvisualisasikan data untuk pelajaran ini.
+
+Visualisasi juga dapat membantu menentukan teknik pembelajaran mesin yang paling sesuai untuk data. Sebuah scatterplot yang tampaknya mengikuti garis, misalnya, menunjukkan bahwa data tersebut adalah kandidat yang baik untuk latihan regresi linier.
+
+Salah satu pustaka visualisasi data yang bekerja dengan baik di Jupyter notebook adalah [Matplotlib](https://matplotlib.org/) (yang juga Anda lihat dalam pelajaran sebelumnya).
+
+> Dapatkan lebih banyak pengalaman dengan visualisasi data dalam [tutorial ini](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott).
+
+## Latihan - Bereksperimen dengan Matplotlib
+
+Cobalah membuat beberapa plot dasar untuk menampilkan dataframe baru yang baru saja Anda buat. Apa yang akan ditampilkan oleh plot garis dasar?
+
+1. Impor Matplotlib di bagian atas file, di bawah impor Pandas:
+
+ ```python
+ import matplotlib.pyplot as plt
+ ```
+
+1. Jalankan ulang seluruh notebook untuk menyegarkan.
+1. Di bagian bawah notebook, tambahkan sel untuk memplot data sebagai kotak:
+
+ ```python
+ price = new_pumpkins.Price
+ month = new_pumpkins.Month
+ plt.scatter(price, month)
+ plt.show()
+ ```
+
+ 
+
+ Apakah ini plot yang berguna? Apakah ada sesuatu yang mengejutkan Anda?
+
+ Ini tidak terlalu berguna karena hanya menampilkan data Anda sebagai sebaran titik dalam bulan tertentu.
+
+### Buatlah Berguna
+
+Untuk mendapatkan grafik yang menampilkan data yang berguna, Anda biasanya perlu mengelompokkan data dengan cara tertentu. Mari coba membuat plot di mana sumbu y menunjukkan bulan dan data menunjukkan distribusi data.
+
+1. Tambahkan sel untuk membuat grafik batang yang dikelompokkan:
+
+ ```python
+ new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
+ plt.ylabel("Pumpkin Price")
+ ```
+
+ 
+
+ Ini adalah visualisasi data yang lebih berguna! Tampaknya menunjukkan bahwa harga tertinggi untuk labu terjadi pada bulan September dan Oktober. Apakah itu sesuai dengan ekspektasi Anda? Mengapa atau mengapa tidak?
+
+---
+
+## 🚀Tantangan
+
+Jelajahi berbagai jenis visualisasi yang ditawarkan oleh Matplotlib. Jenis mana yang paling sesuai untuk masalah regresi?
+
+## [Kuis Pasca-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Lihatlah berbagai cara untuk memvisualisasikan data. Buat daftar berbagai pustaka yang tersedia dan catat mana yang terbaik untuk jenis tugas tertentu, misalnya visualisasi 2D vs. visualisasi 3D. Apa yang Anda temukan?
+
+## Tugas
+
+[Menjelajahi visualisasi](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/2-Data/assignment.md b/translations/id/2-Regression/2-Data/assignment.md
new file mode 100644
index 00000000..ff72db44
--- /dev/null
+++ b/translations/id/2-Regression/2-Data/assignment.md
@@ -0,0 +1,23 @@
+
+# Menjelajahi Visualisasi
+
+Ada beberapa pustaka berbeda yang tersedia untuk visualisasi data. Buat beberapa visualisasi menggunakan data Pumpkin dalam pelajaran ini dengan matplotlib dan seaborn di notebook contoh. Pustaka mana yang lebih mudah digunakan?
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ------- | -------- | ----------------- |
+| | Sebuah notebook diserahkan dengan dua eksplorasi/visualisasi | Sebuah notebook diserahkan dengan satu eksplorasi/visualisasi | Sebuah notebook tidak diserahkan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/2-Data/solution/Julia/README.md b/translations/id/2-Regression/2-Data/solution/Julia/README.md
new file mode 100644
index 00000000..d4cfec25
--- /dev/null
+++ b/translations/id/2-Regression/2-Data/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/3-Linear/README.md b/translations/id/2-Regression/3-Linear/README.md
new file mode 100644
index 00000000..08af3741
--- /dev/null
+++ b/translations/id/2-Regression/3-Linear/README.md
@@ -0,0 +1,381 @@
+
+# Membangun Model Regresi Menggunakan Scikit-learn: Empat Cara Regresi
+
+
+> Infografik oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### Pengantar
+
+Sejauh ini, Anda telah mempelajari apa itu regresi dengan data sampel yang diambil dari dataset harga labu yang akan kita gunakan sepanjang pelajaran ini. Anda juga telah memvisualisasikannya menggunakan Matplotlib.
+
+Sekarang Anda siap untuk mendalami regresi dalam pembelajaran mesin. Sementara visualisasi memungkinkan Anda memahami data, kekuatan sebenarnya dari Pembelajaran Mesin berasal dari _melatih model_. Model dilatih pada data historis untuk secara otomatis menangkap ketergantungan data, dan memungkinkan Anda memprediksi hasil untuk data baru yang belum pernah dilihat oleh model sebelumnya.
+
+Dalam pelajaran ini, Anda akan mempelajari lebih lanjut tentang dua jenis regresi: _regresi linear dasar_ dan _regresi polinomial_, bersama dengan beberapa matematika yang mendasari teknik-teknik ini. Model-model tersebut akan memungkinkan kita memprediksi harga labu berdasarkan berbagai data input.
+
+[](https://youtu.be/CRxFT8oTDMg "ML untuk pemula - Memahami Regresi Linear")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang regresi linear.
+
+> Sepanjang kurikulum ini, kami mengasumsikan pengetahuan matematika yang minimal, dan berusaha membuatnya dapat diakses oleh siswa dari bidang lain, jadi perhatikan catatan, 🧮 penjelasan, diagram, dan alat pembelajaran lainnya untuk membantu pemahaman.
+
+### Prasyarat
+
+Pada titik ini, Anda seharusnya sudah familiar dengan struktur data labu yang sedang kita analisis. Anda dapat menemukannya sudah dimuat dan dibersihkan di file _notebook.ipynb_ pelajaran ini. Dalam file tersebut, harga labu ditampilkan per bushel dalam kerangka data baru. Pastikan Anda dapat menjalankan notebook ini di kernel Visual Studio Code.
+
+### Persiapan
+
+Sebagai pengingat, Anda memuat data ini untuk mengajukan pertanyaan tentangnya.
+
+- Kapan waktu terbaik untuk membeli labu?
+- Berapa harga yang bisa saya harapkan untuk satu kotak labu mini?
+- Haruskah saya membelinya dalam keranjang setengah bushel atau dalam kotak bushel 1 1/9?
+Mari kita terus menggali data ini.
+
+Dalam pelajaran sebelumnya, Anda membuat kerangka data Pandas dan mengisinya dengan sebagian dari dataset asli, menstandarkan harga berdasarkan bushel. Namun, dengan melakukan itu, Anda hanya dapat mengumpulkan sekitar 400 titik data dan hanya untuk bulan-bulan musim gugur.
+
+Lihat data yang telah dimuat sebelumnya di notebook yang menyertai pelajaran ini. Data telah dimuat sebelumnya dan plot sebar awal telah dibuat untuk menunjukkan data bulan. Mungkin kita bisa mendapatkan sedikit lebih banyak detail tentang sifat data dengan membersihkannya lebih lanjut.
+
+## Garis Regresi Linear
+
+Seperti yang Anda pelajari di Pelajaran 1, tujuan dari latihan regresi linear adalah untuk dapat membuat garis untuk:
+
+- **Menunjukkan hubungan variabel**. Menunjukkan hubungan antara variabel
+- **Membuat prediksi**. Membuat prediksi yang akurat tentang di mana titik data baru akan berada dalam hubungan dengan garis tersebut.
+
+Biasanya, **Regresi Kuadrat Terkecil** digunakan untuk menggambar jenis garis ini. Istilah 'kuadrat terkecil' berarti bahwa semua titik data di sekitar garis regresi dikuadratkan dan kemudian dijumlahkan. Idealnya, jumlah akhir itu sekecil mungkin, karena kita menginginkan jumlah kesalahan yang rendah, atau `kuadrat terkecil`.
+
+Kami melakukan ini karena kami ingin memodelkan garis yang memiliki jarak kumulatif terkecil dari semua titik data kami. Kami juga mengkuadratkan istilah sebelum menjumlahkannya karena kami lebih peduli dengan besarnya daripada arahnya.
+
+> **🧮 Tunjukkan matematikanya**
+>
+> Garis ini, yang disebut _garis terbaik_, dapat diekspresikan dengan [persamaan](https://en.wikipedia.org/wiki/Simple_linear_regression):
+>
+> ```
+> Y = a + bX
+> ```
+>
+> `X` adalah 'variabel penjelas'. `Y` adalah 'variabel dependen'. Kemiringan garis adalah `b` dan `a` adalah titik potong sumbu y, yang mengacu pada nilai `Y` ketika `X = 0`.
+>
+>
+>
+> Pertama, hitung kemiringan `b`. Infografik oleh [Jen Looper](https://twitter.com/jenlooper)
+>
+> Dengan kata lain, dan merujuk pada pertanyaan asli data labu kita: "memprediksi harga labu per bushel berdasarkan bulan", `X` akan merujuk pada harga dan `Y` akan merujuk pada bulan penjualan.
+>
+>
+>
+> Hitung nilai Y. Jika Anda membayar sekitar $4, itu pasti bulan April! Infografik oleh [Jen Looper](https://twitter.com/jenlooper)
+>
+> Matematika yang menghitung garis harus menunjukkan kemiringan garis, yang juga bergantung pada titik potong, atau di mana `Y` berada ketika `X = 0`.
+>
+> Anda dapat mengamati metode perhitungan untuk nilai-nilai ini di situs web [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Juga kunjungi [Kalkulator Kuadrat Terkecil](https://www.mathsisfun.com/data/least-squares-calculator.html) untuk melihat bagaimana nilai angka memengaruhi garis.
+
+## Korelasi
+
+Satu istilah lagi yang perlu dipahami adalah **Koefisien Korelasi** antara variabel X dan Y yang diberikan. Menggunakan plot sebar, Anda dapat dengan cepat memvisualisasikan koefisien ini. Plot dengan titik data yang tersebar dalam garis rapi memiliki korelasi tinggi, tetapi plot dengan titik data yang tersebar di mana-mana antara X dan Y memiliki korelasi rendah.
+
+Model regresi linear yang baik adalah model yang memiliki Koefisien Korelasi tinggi (lebih dekat ke 1 daripada 0) menggunakan metode Regresi Kuadrat Terkecil dengan garis regresi.
+
+✅ Jalankan notebook yang menyertai pelajaran ini dan lihat plot sebar Bulan ke Harga. Apakah data yang menghubungkan Bulan ke Harga untuk penjualan labu tampaknya memiliki korelasi tinggi atau rendah, menurut interpretasi visual Anda terhadap plot sebar? Apakah itu berubah jika Anda menggunakan ukuran yang lebih rinci daripada `Bulan`, misalnya *hari dalam setahun* (yaitu jumlah hari sejak awal tahun)?
+
+Dalam kode di bawah ini, kita akan mengasumsikan bahwa kita telah membersihkan data, dan memperoleh kerangka data yang disebut `new_pumpkins`, mirip dengan berikut ini:
+
+ID | Bulan | HariDalamTahun | Jenis | Kota | Paket | Harga Rendah | Harga Tinggi | Harga
+---|-------|----------------|-------|------|-------|--------------|--------------|------
+70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+
+> Kode untuk membersihkan data tersedia di [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Kami telah melakukan langkah-langkah pembersihan yang sama seperti pada pelajaran sebelumnya, dan telah menghitung kolom `HariDalamTahun` menggunakan ekspresi berikut:
+
+```python
+day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
+```
+
+Sekarang setelah Anda memahami matematika di balik regresi linear, mari kita buat model Regresi untuk melihat apakah kita dapat memprediksi paket labu mana yang akan memiliki harga labu terbaik. Seseorang yang membeli labu untuk kebun labu liburan mungkin menginginkan informasi ini untuk dapat mengoptimalkan pembelian paket labu untuk kebun tersebut.
+
+## Mencari Korelasi
+
+[](https://youtu.be/uoRq-lW2eQo "ML untuk pemula - Mencari Korelasi: Kunci Regresi Linear")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang korelasi.
+
+Dari pelajaran sebelumnya, Anda mungkin telah melihat bahwa harga rata-rata untuk berbagai bulan terlihat seperti ini:
+
+
+
+Ini menunjukkan bahwa seharusnya ada beberapa korelasi, dan kita dapat mencoba melatih model regresi linear untuk memprediksi hubungan antara `Bulan` dan `Harga`, atau antara `HariDalamTahun` dan `Harga`. Berikut adalah plot sebar yang menunjukkan hubungan yang terakhir:
+
+
+
+Mari kita lihat apakah ada korelasi menggunakan fungsi `corr`:
+
+```python
+print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
+print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
+```
+
+Tampaknya korelasi cukup kecil, -0.15 berdasarkan `Bulan` dan -0.17 berdasarkan `HariDalamTahun`, tetapi mungkin ada hubungan penting lainnya. Tampaknya ada kelompok harga yang berbeda yang sesuai dengan berbagai jenis labu. Untuk mengonfirmasi hipotesis ini, mari kita plot setiap kategori labu menggunakan warna yang berbeda. Dengan meneruskan parameter `ax` ke fungsi plot sebar, kita dapat memplot semua titik pada grafik yang sama:
+
+```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)
+```
+
+
+
+Penyelidikan kami menunjukkan bahwa jenis labu memiliki pengaruh lebih besar pada harga keseluruhan daripada tanggal penjualan sebenarnya. Kita dapat melihat ini dengan grafik batang:
+
+```python
+new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
+```
+
+
+
+Mari kita fokus untuk sementara hanya pada satu jenis labu, yaitu 'pie type', dan lihat apa pengaruh tanggal terhadap harga:
+
+```python
+pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
+pie_pumpkins.plot.scatter('DayOfYear','Price')
+```
+
+
+Jika kita sekarang menghitung korelasi antara `Harga` dan `HariDalamTahun` menggunakan fungsi `corr`, kita akan mendapatkan sesuatu seperti `-0.27` - yang berarti bahwa melatih model prediktif masuk akal.
+
+> Sebelum melatih model regresi linear, penting untuk memastikan bahwa data kita bersih. Regresi linear tidak bekerja dengan baik dengan nilai yang hilang, sehingga masuk akal untuk menghapus semua sel kosong:
+
+```python
+pie_pumpkins.dropna(inplace=True)
+pie_pumpkins.info()
+```
+
+Pendekatan lain adalah mengisi nilai kosong tersebut dengan nilai rata-rata dari kolom yang sesuai.
+
+## Regresi Linear Sederhana
+
+[](https://youtu.be/e4c_UP2fSjg "ML untuk pemula - Regresi Linear dan Polinomial menggunakan Scikit-learn")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang regresi linear dan polinomial.
+
+Untuk melatih model Regresi Linear kita, kita akan menggunakan pustaka **Scikit-learn**.
+
+```python
+from sklearn.linear_model import LinearRegression
+from sklearn.metrics import mean_squared_error
+from sklearn.model_selection import train_test_split
+```
+
+Kita mulai dengan memisahkan nilai input (fitur) dan output yang diharapkan (label) ke dalam array numpy terpisah:
+
+```python
+X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
+y = pie_pumpkins['Price']
+```
+
+> Perhatikan bahwa kita harus melakukan `reshape` pada data input agar paket Regresi Linear dapat memahaminya dengan benar. Regresi Linear mengharapkan array 2D sebagai input, di mana setiap baris array sesuai dengan vektor fitur input. Dalam kasus kita, karena kita hanya memiliki satu input - kita membutuhkan array dengan bentuk N×1, di mana N adalah ukuran dataset.
+
+Kemudian, kita perlu membagi data menjadi dataset pelatihan dan pengujian, sehingga kita dapat memvalidasi model kita setelah pelatihan:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+```
+
+Akhirnya, melatih model Regresi Linear yang sebenarnya hanya membutuhkan dua baris kode. Kita mendefinisikan objek `LinearRegression`, dan menyesuaikannya dengan data kita menggunakan metode `fit`:
+
+```python
+lin_reg = LinearRegression()
+lin_reg.fit(X_train,y_train)
+```
+
+Objek `LinearRegression` setelah `fit`-ting berisi semua koefisien regresi, yang dapat diakses menggunakan properti `.coef_`. Dalam kasus kita, hanya ada satu koefisien, yang seharusnya sekitar `-0.017`. Ini berarti bahwa harga tampaknya turun sedikit seiring waktu, tetapi tidak terlalu banyak, sekitar 2 sen per hari. Kita juga dapat mengakses titik perpotongan regresi dengan sumbu Y menggunakan `lin_reg.intercept_` - ini akan sekitar `21` dalam kasus kita, menunjukkan harga di awal tahun.
+
+Untuk melihat seberapa akurat model kita, kita dapat memprediksi harga pada dataset pengujian, dan kemudian mengukur seberapa dekat prediksi kita dengan nilai yang diharapkan. Ini dapat dilakukan menggunakan metrik mean square error (MSE), yang merupakan rata-rata dari semua perbedaan kuadrat antara nilai yang diharapkan dan nilai yang diprediksi.
+
+```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}%)')
+```
+Kesalahan kita tampaknya berada di sekitar 2 poin, yaitu ~17%. Tidak terlalu bagus. Indikator lain dari kualitas model adalah **koefisien determinasi**, yang dapat diperoleh seperti ini:
+
+```python
+score = lin_reg.score(X_train,y_train)
+print('Model determination: ', score)
+```
+Jika nilainya 0, itu berarti model tidak mempertimbangkan data input, dan bertindak sebagai *prediktor linear terburuk*, yang hanya merupakan nilai rata-rata dari hasil. Nilai 1 berarti kita dapat memprediksi semua output yang diharapkan dengan sempurna. Dalam kasus kita, koefisiennya sekitar 0.06, yang cukup rendah.
+
+Kita juga dapat memplot data uji bersama dengan garis regresi untuk melihat lebih jelas bagaimana regresi bekerja dalam kasus kita:
+
+```python
+plt.scatter(X_test,y_test)
+plt.plot(X_test,pred)
+```
+
+
+
+
+## Regresi Polinomial
+
+Jenis lain dari Regresi Linear adalah Regresi Polinomial. Meskipun terkadang ada hubungan linear antara variabel - semakin besar volume labu, semakin tinggi harganya - terkadang hubungan ini tidak dapat dipetakan sebagai bidang atau garis lurus.
+
+✅ Berikut adalah [beberapa contoh lainnya](https://online.stat.psu.edu/stat501/lesson/9/9.8) dari data yang dapat menggunakan Regresi Polinomial.
+
+Lihat kembali hubungan antara Tanggal dan Harga. Apakah scatterplot ini tampaknya harus dianalisis dengan garis lurus? Bukankah harga bisa berfluktuasi? Dalam kasus ini, Anda dapat mencoba regresi polinomial.
+
+✅ Polinomial adalah ekspresi matematika yang mungkin terdiri dari satu atau lebih variabel dan koefisien.
+
+Regresi polinomial menciptakan garis melengkung untuk lebih cocok dengan data non-linear. Dalam kasus kita, jika kita menyertakan variabel `DayOfYear` kuadrat ke dalam data input, kita harus dapat menyesuaikan data kita dengan kurva parabola, yang akan memiliki titik minimum pada waktu tertentu dalam setahun.
+
+Scikit-learn menyertakan [API pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) yang berguna untuk menggabungkan berbagai langkah pemrosesan data. **Pipeline** adalah rantai **estimasi**. Dalam kasus kita, kita akan membuat pipeline yang pertama-tama menambahkan fitur polinomial ke model kita, lalu melatih regresi:
+
+```python
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.pipeline import make_pipeline
+
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+
+pipeline.fit(X_train,y_train)
+```
+
+Menggunakan `PolynomialFeatures(2)` berarti kita akan menyertakan semua polinomial derajat kedua dari data input. Dalam kasus kita, ini hanya berarti `DayOfYear`2, tetapi dengan dua variabel input X dan Y, ini akan menambahkan X2, XY, dan Y2. Kita juga dapat menggunakan polinomial derajat lebih tinggi jika diinginkan.
+
+Pipeline dapat digunakan dengan cara yang sama seperti objek `LinearRegression` asli, yaitu kita dapat `fit` pipeline, lalu menggunakan `predict` untuk mendapatkan hasil prediksi. Berikut adalah grafik yang menunjukkan data uji dan kurva aproksimasi:
+
+
+
+Dengan menggunakan Regresi Polinomial, kita dapat memperoleh MSE yang sedikit lebih rendah dan determinasi yang lebih tinggi, tetapi tidak signifikan. Kita perlu mempertimbangkan fitur lainnya!
+
+> Anda dapat melihat bahwa harga labu terendah diamati di sekitar Halloween. Bagaimana Anda menjelaskan ini?
+
+🎃 Selamat, Anda baru saja membuat model yang dapat membantu memprediksi harga labu untuk pai. Anda mungkin dapat mengulangi prosedur yang sama untuk semua jenis labu, tetapi itu akan membosankan. Sekarang mari kita pelajari cara mempertimbangkan variasi labu dalam model kita!
+
+## Fitur Kategorikal
+
+Dalam dunia ideal, kita ingin dapat memprediksi harga untuk berbagai jenis labu menggunakan model yang sama. Namun, kolom `Variety` agak berbeda dari kolom seperti `Month`, karena berisi nilai non-numerik. Kolom seperti ini disebut **kategorikal**.
+
+[](https://youtu.be/DYGliioIAE0 "ML untuk pemula - Prediksi Fitur Kategorikal dengan Regresi Linear")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang penggunaan fitur kategorikal.
+
+Di sini Anda dapat melihat bagaimana harga rata-rata bergantung pada variasi:
+
+
+
+Untuk mempertimbangkan variasi, pertama-tama kita perlu mengonversinya ke bentuk numerik, atau **encode**. Ada beberapa cara untuk melakukannya:
+
+* **Numeric encoding** sederhana akan membuat tabel variasi yang berbeda, lalu mengganti nama variasi dengan indeks dalam tabel tersebut. Ini bukan ide terbaik untuk regresi linear, karena regresi linear mengambil nilai numerik aktual dari indeks dan menambahkannya ke hasil, mengalikan dengan beberapa koefisien. Dalam kasus kita, hubungan antara nomor indeks dan harga jelas tidak linear, bahkan jika kita memastikan bahwa indeks diurutkan dengan cara tertentu.
+* **One-hot encoding** akan mengganti kolom `Variety` dengan 4 kolom berbeda, satu untuk setiap variasi. Setiap kolom akan berisi `1` jika baris yang sesuai adalah variasi tertentu, dan `0` jika tidak. Ini berarti akan ada empat koefisien dalam regresi linear, satu untuk setiap variasi labu, yang bertanggung jawab atas "harga awal" (atau lebih tepatnya "harga tambahan") untuk variasi tertentu.
+
+Kode di bawah ini menunjukkan bagaimana kita dapat melakukan one-hot encoding pada variasi:
+
+```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
+
+Untuk melatih regresi linear menggunakan variasi yang telah di-one-hot encode sebagai input, kita hanya perlu menginisialisasi data `X` dan `y` dengan benar:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety'])
+y = new_pumpkins['Price']
+```
+
+Sisa kode sama seperti yang kita gunakan di atas untuk melatih Regresi Linear. Jika Anda mencobanya, Anda akan melihat bahwa mean squared error hampir sama, tetapi kita mendapatkan koefisien determinasi yang jauh lebih tinggi (~77%). Untuk mendapatkan prediksi yang lebih akurat, kita dapat mempertimbangkan lebih banyak fitur kategorikal, serta fitur numerik seperti `Month` atau `DayOfYear`. Untuk mendapatkan satu array besar fitur, kita dapat menggunakan `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']
+```
+
+Di sini kita juga mempertimbangkan `City` dan jenis `Package`, yang memberikan kita MSE 2.84 (10%), dan determinasi 0.94!
+
+## Menggabungkan Semuanya
+
+Untuk membuat model terbaik, kita dapat menggunakan data gabungan (one-hot encoded kategorikal + numerik) dari contoh di atas bersama dengan Regresi Polinomial. Berikut adalah kode lengkap untuk kenyamanan Anda:
+
+```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)
+```
+
+Ini seharusnya memberikan kita koefisien determinasi terbaik hampir 97%, dan MSE=2.23 (~8% kesalahan prediksi).
+
+| Model | MSE | Determinasi |
+|-------|-----|-------------|
+| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
+| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
+| `Variety` Linear | 5.24 (19.7%) | 0.77 |
+| Semua fitur Linear | 2.84 (10.5%) | 0.94 |
+| Semua fitur Polynomial | 2.23 (8.25%) | 0.97 |
+
+🏆 Kerja bagus! Anda telah membuat empat model Regresi dalam satu pelajaran, dan meningkatkan kualitas model hingga 97%. Dalam bagian terakhir tentang Regresi, Anda akan belajar tentang Regresi Logistik untuk menentukan kategori.
+
+---
+## 🚀Tantangan
+
+Uji beberapa variabel berbeda dalam notebook ini untuk melihat bagaimana korelasi berhubungan dengan akurasi model.
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Dalam pelajaran ini kita belajar tentang Regresi Linear. Ada jenis Regresi penting lainnya. Bacalah tentang teknik Stepwise, Ridge, Lasso, dan Elasticnet. Kursus yang bagus untuk mempelajari lebih lanjut adalah [Kursus Pembelajaran Statistik Stanford](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
+
+## Tugas
+
+[Bangun Model](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/3-Linear/assignment.md b/translations/id/2-Regression/3-Linear/assignment.md
new file mode 100644
index 00000000..811070fd
--- /dev/null
+++ b/translations/id/2-Regression/3-Linear/assignment.md
@@ -0,0 +1,25 @@
+
+# Membuat Model Regresi
+
+## Instruksi
+
+Dalam pelajaran ini, Anda telah diperlihatkan cara membangun model menggunakan Regresi Linear dan Regresi Polinomial. Dengan menggunakan pengetahuan ini, temukan dataset atau gunakan salah satu set bawaan Scikit-learn untuk membangun model baru. Jelaskan di notebook Anda mengapa Anda memilih teknik tersebut, dan tunjukkan akurasi model Anda. Jika model tidak akurat, jelaskan alasannya.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Perbaikan |
+| -------- | ----------------------------------------------------------- | ------------------------- | ----------------------------- |
+| | menyajikan notebook lengkap dengan solusi yang terdokumentasi dengan baik | solusi tidak lengkap | solusi memiliki kekurangan atau bug |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/3-Linear/solution/Julia/README.md b/translations/id/2-Regression/3-Linear/solution/Julia/README.md
new file mode 100644
index 00000000..eb1154c8
--- /dev/null
+++ b/translations/id/2-Regression/3-Linear/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/4-Logistic/README.md b/translations/id/2-Regression/4-Logistic/README.md
new file mode 100644
index 00000000..987b7f3f
--- /dev/null
+++ b/translations/id/2-Regression/4-Logistic/README.md
@@ -0,0 +1,406 @@
+
+# Regresi Logistik untuk Memprediksi Kategori
+
+
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html)
+
+## Pendahuluan
+
+Dalam pelajaran terakhir tentang Regresi ini, salah satu teknik ML _klasik_ dasar, kita akan mempelajari Regresi Logistik. Anda dapat menggunakan teknik ini untuk menemukan pola guna memprediksi kategori biner. Apakah permen ini cokelat atau bukan? Apakah penyakit ini menular atau tidak? Apakah pelanggan ini akan memilih produk ini atau tidak?
+
+Dalam pelajaran ini, Anda akan mempelajari:
+
+- Perpustakaan baru untuk visualisasi data
+- Teknik untuk regresi logistik
+
+✅ Perdalam pemahaman Anda tentang bekerja dengan jenis regresi ini di [modul pembelajaran ini](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott)
+
+## Prasyarat
+
+Setelah bekerja dengan data labu, kita sekarang cukup familiar untuk menyadari bahwa ada satu kategori biner yang dapat kita gunakan: `Color`.
+
+Mari kita bangun model regresi logistik untuk memprediksi, berdasarkan beberapa variabel, _warna apa yang kemungkinan besar dimiliki oleh labu tertentu_ (oranye 🎃 atau putih 👻).
+
+> Mengapa kita membahas klasifikasi biner dalam pelajaran tentang regresi? Hanya untuk kenyamanan linguistik, karena regresi logistik sebenarnya adalah [metode klasifikasi](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), meskipun berbasis linear. Pelajari cara lain untuk mengklasifikasikan data di kelompok pelajaran berikutnya.
+
+## Tentukan Pertanyaan
+
+Untuk tujuan kita, kita akan mengekspresikan ini sebagai biner: 'Putih' atau 'Bukan Putih'. Ada juga kategori 'striped' dalam dataset kita, tetapi jumlahnya sedikit, jadi kita tidak akan menggunakannya. Kategori ini juga akan hilang setelah kita menghapus nilai null dari dataset.
+
+> 🎃 Fakta menyenangkan, kita kadang-kadang menyebut labu putih sebagai labu 'hantu'. Mereka tidak mudah diukir, jadi tidak sepopuler labu oranye, tetapi mereka terlihat keren! Jadi kita juga bisa merumuskan ulang pertanyaan kita sebagai: 'Hantu' atau 'Bukan Hantu'. 👻
+
+## Tentang Regresi Logistik
+
+Regresi logistik berbeda dari regresi linear, yang telah Anda pelajari sebelumnya, dalam beberapa cara penting.
+
+[](https://youtu.be/KpeCT6nEpBY "ML untuk pemula - Memahami Regresi Logistik untuk Klasifikasi Pembelajaran Mesin")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang regresi logistik.
+
+### Klasifikasi Biner
+
+Regresi logistik tidak menawarkan fitur yang sama seperti regresi linear. Regresi logistik memberikan prediksi tentang kategori biner ("putih atau bukan putih"), sedangkan regresi linear mampu memprediksi nilai kontinu, misalnya berdasarkan asal labu dan waktu panen, _berapa harga labu akan naik_.
+
+
+> Infografik oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+### Klasifikasi Lainnya
+
+Ada jenis regresi logistik lainnya, termasuk multinomial dan ordinal:
+
+- **Multinomial**, yang melibatkan lebih dari satu kategori - "Oranye, Putih, dan Striped".
+- **Ordinal**, yang melibatkan kategori yang terurut, berguna jika kita ingin mengurutkan hasil secara logis, seperti labu kita yang diurutkan berdasarkan sejumlah ukuran tertentu (mini, sm, med, lg, xl, xxl).
+
+
+
+### Variabel TIDAK Harus Berkorelasi
+
+Ingat bagaimana regresi linear bekerja lebih baik dengan variabel yang lebih berkorelasi? Regresi logistik adalah kebalikannya - variabel tidak harus sejajar. Ini cocok untuk data ini yang memiliki korelasi yang agak lemah.
+
+### Anda Membutuhkan Banyak Data yang Bersih
+
+Regresi logistik akan memberikan hasil yang lebih akurat jika Anda menggunakan lebih banyak data; dataset kecil kita tidak optimal untuk tugas ini, jadi ingatlah hal itu.
+
+[](https://youtu.be/B2X4H9vcXTs "ML untuk pemula - Analisis dan Persiapan Data untuk Regresi Logistik")
+
+✅ Pikirkan jenis data yang cocok untuk regresi logistik
+
+## Latihan - rapikan data
+
+Pertama, bersihkan data sedikit, hapus nilai null, dan pilih hanya beberapa kolom:
+
+1. Tambahkan kode berikut:
+
+ ```python
+
+ columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
+ pumpkins = full_pumpkins.loc[:, columns_to_select]
+
+ pumpkins.dropna(inplace=True)
+ ```
+
+ Anda selalu dapat melihat sekilas dataframe baru Anda:
+
+ ```python
+ pumpkins.info
+ ```
+
+### Visualisasi - plot kategorikal
+
+Sekarang Anda telah memuat [notebook awal](../../../../2-Regression/4-Logistic/notebook.ipynb) dengan data labu sekali lagi dan membersihkannya sehingga hanya menyisakan dataset yang berisi beberapa variabel, termasuk `Color`. Mari kita visualisasikan dataframe di notebook menggunakan pustaka yang berbeda: [Seaborn](https://seaborn.pydata.org/index.html), yang dibangun di atas Matplotlib yang kita gunakan sebelumnya.
+
+Seaborn menawarkan beberapa cara menarik untuk memvisualisasikan data Anda. Misalnya, Anda dapat membandingkan distribusi data untuk setiap `Variety` dan `Color` dalam plot kategorikal.
+
+1. Buat plot seperti itu dengan menggunakan fungsi `catplot`, menggunakan data labu kita `pumpkins`, dan menentukan pemetaan warna untuk setiap kategori labu (oranye atau putih):
+
+ ```python
+ import seaborn as sns
+
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+
+ sns.catplot(
+ data=pumpkins, y="Variety", hue="Color", kind="count",
+ palette=palette,
+ )
+ ```
+
+ 
+
+ Dengan mengamati data, Anda dapat melihat bagaimana data Color berhubungan dengan Variety.
+
+ ✅ Berdasarkan plot kategorikal ini, eksplorasi menarik apa yang dapat Anda bayangkan?
+
+### Pra-pemrosesan Data: Pengkodean Fitur dan Label
+
+Dataset labu kita berisi nilai string untuk semua kolomnya. Bekerja dengan data kategorikal intuitif bagi manusia tetapi tidak bagi mesin. Algoritma pembelajaran mesin bekerja dengan baik dengan angka. Itulah mengapa pengkodean adalah langkah yang sangat penting dalam fase pra-pemrosesan data, karena memungkinkan kita mengubah data kategorikal menjadi data numerik, tanpa kehilangan informasi apa pun. Pengkodean yang baik menghasilkan model yang baik.
+
+Untuk pengkodean fitur, ada dua jenis pengkode utama:
+
+1. Pengkode ordinal: cocok untuk variabel ordinal, yaitu variabel kategorikal di mana datanya mengikuti urutan logis, seperti kolom `Item Size` dalam dataset kita. Pengkode ini membuat pemetaan sehingga setiap kategori diwakili oleh angka, yang merupakan urutan kategori dalam kolom.
+
+ ```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. Pengkode kategorikal: cocok untuk variabel nominal, yaitu variabel kategorikal di mana datanya tidak mengikuti urutan logis, seperti semua fitur selain `Item Size` dalam dataset kita. Ini adalah pengkodean one-hot, yang berarti bahwa setiap kategori diwakili oleh kolom biner: variabel yang dikodekan sama dengan 1 jika labu termasuk dalam Variety tersebut dan 0 jika tidak.
+
+ ```python
+ from sklearn.preprocessing import OneHotEncoder
+
+ categorical_features = ['City Name', 'Package', 'Variety', 'Origin']
+ categorical_encoder = OneHotEncoder(sparse_output=False)
+ ```
+Kemudian, `ColumnTransformer` digunakan untuk menggabungkan beberapa pengkode ke dalam satu langkah dan menerapkannya ke kolom yang sesuai.
+
+```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)
+```
+Di sisi lain, untuk mengkodekan label, kita menggunakan kelas `LabelEncoder` dari scikit-learn, yang merupakan kelas utilitas untuk membantu menormalkan label sehingga hanya berisi nilai antara 0 dan n_classes-1 (di sini, 0 dan 1).
+
+```python
+ from sklearn.preprocessing import LabelEncoder
+
+ label_encoder = LabelEncoder()
+ encoded_label = label_encoder.fit_transform(pumpkins['Color'])
+```
+Setelah kita mengkodekan fitur dan label, kita dapat menggabungkannya ke dalam dataframe baru `encoded_pumpkins`.
+
+```python
+ encoded_pumpkins = encoded_features.assign(Color=encoded_label)
+```
+✅ Apa keuntungan menggunakan pengkode ordinal untuk kolom `Item Size`?
+
+### Analisis Hubungan Antar Variabel
+
+Sekarang kita telah memproses data kita, kita dapat menganalisis hubungan antara fitur dan label untuk mendapatkan gambaran seberapa baik model akan dapat memprediksi label berdasarkan fitur.
+Cara terbaik untuk melakukan analisis semacam ini adalah dengan memplot data. Kita akan menggunakan kembali fungsi `catplot` dari Seaborn, untuk memvisualisasikan hubungan antara `Item Size`, `Variety`, dan `Color` dalam plot kategorikal. Untuk memplot data dengan lebih baik, kita akan menggunakan kolom `Item Size` yang telah dikodekan dan kolom `Variety` yang belum dikodekan.
+
+```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}")
+```
+
+
+### Gunakan Plot Swarm
+
+Karena Color adalah kategori biner (Putih atau Tidak), kategori ini membutuhkan '[pendekatan khusus](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) untuk visualisasi'. Ada cara lain untuk memvisualisasikan hubungan kategori ini dengan variabel lainnya.
+
+Anda dapat memvisualisasikan variabel secara berdampingan dengan plot Seaborn.
+
+1. Cobalah plot 'swarm' untuk menunjukkan distribusi nilai:
+
+ ```python
+ palette = {
+ 0: 'orange',
+ 1: 'wheat'
+ }
+ sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette)
+ ```
+
+ 
+
+**Perhatikan**: kode di atas mungkin menghasilkan peringatan, karena seaborn gagal merepresentasikan sejumlah besar titik data ke dalam plot swarm. Solusi yang mungkin adalah mengurangi ukuran penanda, dengan menggunakan parameter 'size'. Namun, perlu diingat bahwa ini memengaruhi keterbacaan plot.
+
+> **🧮 Tunjukkan Matematikanya**
+>
+> Regresi logistik bergantung pada konsep 'maximum likelihood' menggunakan [fungsi sigmoid](https://wikipedia.org/wiki/Sigmoid_function). Fungsi 'Sigmoid' pada plot terlihat seperti bentuk 'S'. Fungsi ini mengambil nilai dan memetakannya ke antara 0 dan 1. Kurvanya juga disebut 'kurva logistik'. Rumusnya terlihat seperti ini:
+>
+> 
+>
+> di mana titik tengah sigmoid berada di titik 0 x, L adalah nilai maksimum kurva, dan k adalah kemiringan kurva. Jika hasil fungsi lebih dari 0.5, label yang dimaksud akan diberi kelas '1' dari pilihan biner. Jika tidak, akan diklasifikasikan sebagai '0'.
+
+## Bangun Model Anda
+
+Membangun model untuk menemukan klasifikasi biner ini ternyata cukup sederhana di Scikit-learn.
+
+[](https://youtu.be/MmZS2otPrQ8 "ML untuk pemula - Regresi Logistik untuk klasifikasi data")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang membangun model regresi linear
+
+1. Pilih variabel yang ingin Anda gunakan dalam model klasifikasi Anda dan bagi set pelatihan dan pengujian dengan memanggil `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. Sekarang Anda dapat melatih model Anda, dengan memanggil `fit()` dengan data pelatihan Anda, dan mencetak hasilnya:
+
+ ```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))
+ ```
+
+ Lihatlah skor model Anda. Tidak buruk, mengingat Anda hanya memiliki sekitar 1000 baris 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
+ ```
+
+## Pemahaman Lebih Baik melalui Matriks Kebingungan
+
+Meskipun Anda dapat mendapatkan laporan skor [istilah](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) dengan mencetak item di atas, Anda mungkin dapat memahami model Anda lebih mudah dengan menggunakan [matriks kebingungan](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) untuk membantu kita memahami bagaimana model bekerja.
+
+> 🎓 '[Matriks kebingungan](https://wikipedia.org/wiki/Confusion_matrix)' (atau 'matriks kesalahan') adalah tabel yang mengekspresikan positif dan negatif sejati vs. salah model Anda, sehingga mengukur akurasi prediksi.
+
+1. Untuk menggunakan matriks kebingungan, panggil `confusion_matrix()`:
+
+ ```python
+ from sklearn.metrics import confusion_matrix
+ confusion_matrix(y_test, predictions)
+ ```
+
+ Lihatlah matriks kebingungan model Anda:
+
+ ```output
+ array([[162, 4],
+ [ 11, 22]])
+ ```
+
+Di Scikit-learn, baris (axis 0) adalah label aktual dan kolom (axis 1) adalah label yang diprediksi.
+
+| | 0 | 1 |
+| :---: | :---: | :---: |
+| 0 | TN | FP |
+| 1 | FN | TP |
+
+Apa yang terjadi di sini? Misalnya model kita diminta untuk mengklasifikasikan labu antara dua kategori biner, kategori 'putih' dan kategori 'bukan putih'.
+
+- Jika model Anda memprediksi labu sebagai bukan putih dan sebenarnya termasuk kategori 'bukan putih', kita menyebutnya negatif sejati, ditunjukkan oleh angka kiri atas.
+- Jika model Anda memprediksi labu sebagai putih dan sebenarnya termasuk kategori 'bukan putih', kita menyebutnya negatif palsu, ditunjukkan oleh angka kiri bawah.
+- Jika model Anda memprediksi labu sebagai bukan putih dan sebenarnya termasuk kategori 'putih', kita menyebutnya positif palsu, ditunjukkan oleh angka kanan atas.
+- Jika model Anda memprediksi labu sebagai putih dan sebenarnya termasuk kategori 'putih', kita menyebutnya positif sejati, ditunjukkan oleh angka kanan bawah.
+
+Seperti yang mungkin Anda duga, lebih baik memiliki jumlah positif sejati dan negatif sejati yang lebih besar serta jumlah positif palsu dan negatif palsu yang lebih kecil, yang menunjukkan bahwa model bekerja lebih baik.
+Bagaimana matriks kebingungan berhubungan dengan presisi dan recall? Ingat, laporan klasifikasi yang dicetak di atas menunjukkan presisi (0.85) dan recall (0.67).
+
+Presisi = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461
+
+Recall = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666
+
+✅ Q: Berdasarkan matriks kebingungan, bagaimana performa model? A: Tidak buruk; ada sejumlah besar true negatives tetapi juga beberapa false negatives.
+
+Mari kita tinjau kembali istilah-istilah yang telah kita lihat sebelumnya dengan bantuan pemetaan TP/TN dan FP/FN dari matriks kebingungan:
+
+🎓 Presisi: TP/(TP + FP) Fraksi dari instance yang relevan di antara instance yang diambil (misalnya, label mana yang diberi label dengan baik)
+
+🎓 Recall: TP/(TP + FN) Fraksi dari instance yang relevan yang diambil, baik diberi label dengan baik atau tidak
+
+🎓 f1-score: (2 * presisi * recall)/(presisi + recall) Rata-rata tertimbang dari presisi dan recall, dengan nilai terbaik adalah 1 dan terburuk adalah 0
+
+🎓 Support: Jumlah kemunculan setiap label yang diambil
+
+🎓 Akurasi: (TP + TN)/(TP + TN + FP + FN) Persentase label yang diprediksi dengan akurat untuk sebuah sampel.
+
+🎓 Macro Avg: Perhitungan rata-rata metrik yang tidak berbobot untuk setiap label, tanpa memperhatikan ketidakseimbangan label.
+
+🎓 Weighted Avg: Perhitungan rata-rata metrik untuk setiap label, dengan memperhatikan ketidakseimbangan label dengan memberi bobot berdasarkan support (jumlah instance yang benar untuk setiap label).
+
+✅ Bisakah Anda memikirkan metrik mana yang harus diperhatikan jika Anda ingin model Anda mengurangi jumlah false negatives?
+
+## Visualisasi kurva ROC dari model ini
+
+[](https://youtu.be/GApO575jTA0 "ML untuk pemula - Menganalisis Performa Logistic Regression dengan Kurva ROC")
+
+> 🎥 Klik gambar di atas untuk video singkat tentang kurva ROC
+
+Mari kita lakukan satu visualisasi lagi untuk melihat apa yang disebut 'kurva 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()
+```
+
+Menggunakan Matplotlib, plot [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) atau ROC dari model. Kurva ROC sering digunakan untuk mendapatkan gambaran keluaran dari sebuah classifier dalam hal true positives vs. false positives. "Kurva ROC biasanya menampilkan true positive rate pada sumbu Y, dan false positive rate pada sumbu X." Oleh karena itu, kemiringan kurva dan ruang antara garis tengah dan kurva menjadi penting: Anda menginginkan kurva yang cepat naik dan melewati garis. Dalam kasus kita, ada false positives di awal, dan kemudian garis naik dan melewati dengan baik:
+
+
+
+Akhirnya, gunakan [`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) dari Scikit-learn untuk menghitung 'Area Under the Curve' (AUC) yang sebenarnya:
+
+```python
+auc = roc_auc_score(y_test,y_scores[:,1])
+print(auc)
+```
+Hasilnya adalah `0.9749908725812341`. Mengingat bahwa AUC berkisar dari 0 hingga 1, Anda menginginkan skor yang besar, karena model yang 100% benar dalam prediksinya akan memiliki AUC sebesar 1; dalam kasus ini, modelnya _cukup baik_.
+
+Dalam pelajaran klasifikasi di masa depan, Anda akan belajar bagaimana mengiterasi untuk meningkatkan skor model Anda. Tetapi untuk saat ini, selamat! Anda telah menyelesaikan pelajaran regresi ini!
+
+---
+## 🚀Tantangan
+
+Masih banyak yang bisa dipelajari tentang logistic regression! Tetapi cara terbaik untuk belajar adalah dengan bereksperimen. Temukan dataset yang cocok untuk analisis jenis ini dan bangun model dengannya. Apa yang Anda pelajari? tip: coba [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) untuk dataset yang menarik.
+
+## [Kuis setelah kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Baca beberapa halaman pertama dari [makalah ini dari Stanford](https://web.stanford.edu/~jurafsky/slp3/5.pdf) tentang beberapa penggunaan praktis logistic regression. Pikirkan tentang tugas-tugas yang lebih cocok untuk salah satu jenis regresi yang telah kita pelajari sejauh ini. Apa yang akan bekerja paling baik?
+
+## Tugas
+
+[Ulangi regresi ini](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/4-Logistic/assignment.md b/translations/id/2-Regression/4-Logistic/assignment.md
new file mode 100644
index 00000000..2f3e342d
--- /dev/null
+++ b/translations/id/2-Regression/4-Logistic/assignment.md
@@ -0,0 +1,25 @@
+
+# Mencoba Ulang Beberapa Regresi
+
+## Instruksi
+
+Dalam pelajaran, Anda menggunakan sebagian data labu. Sekarang, kembali ke data asli dan coba gunakan semuanya, yang telah dibersihkan dan distandarisasi, untuk membangun model Logistic Regression.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ----------------------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
+| | Notebook disajikan dengan model yang dijelaskan dengan baik dan berkinerja baik | Notebook disajikan dengan model yang berkinerja minimal | Notebook disajikan dengan model yang berkinerja buruk atau tidak ada |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/4-Logistic/solution/Julia/README.md b/translations/id/2-Regression/4-Logistic/solution/Julia/README.md
new file mode 100644
index 00000000..2cfbb092
--- /dev/null
+++ b/translations/id/2-Regression/4-Logistic/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/2-Regression/README.md b/translations/id/2-Regression/README.md
new file mode 100644
index 00000000..7b7e5ebb
--- /dev/null
+++ b/translations/id/2-Regression/README.md
@@ -0,0 +1,54 @@
+
+# Model regresi untuk pembelajaran mesin
+## Topik regional: Model regresi untuk harga labu di Amerika Utara 🎃
+
+Di Amerika Utara, labu sering diukir menjadi wajah menyeramkan untuk Halloween. Mari kita pelajari lebih lanjut tentang sayuran yang menarik ini!
+
+
+> Foto oleh Beth Teutschmann di Unsplash
+
+## Apa yang akan Anda pelajari
+
+[](https://youtu.be/5QnJtDad4iQ "Video pengantar regresi - Klik untuk menonton!")
+> 🎥 Klik gambar di atas untuk video pengantar singkat tentang pelajaran ini
+
+Pelajaran dalam bagian ini mencakup jenis regresi dalam konteks pembelajaran mesin. Model regresi dapat membantu menentukan _hubungan_ antara variabel. Jenis model ini dapat memprediksi nilai seperti panjang, suhu, atau usia, sehingga mengungkapkan hubungan antara variabel saat menganalisis titik data.
+
+Dalam rangkaian pelajaran ini, Anda akan mempelajari perbedaan antara regresi linear dan regresi logistik, serta kapan Anda sebaiknya memilih salah satu di antaranya.
+
+[](https://youtu.be/XA3OaoW86R8 "ML untuk pemula - Pengantar model regresi untuk pembelajaran mesin")
+
+> 🎥 Klik gambar di atas untuk video singkat yang memperkenalkan model regresi.
+
+Dalam kelompok pelajaran ini, Anda akan mempersiapkan diri untuk memulai tugas pembelajaran mesin, termasuk mengonfigurasi Visual Studio Code untuk mengelola notebook, lingkungan umum bagi ilmuwan data. Anda akan mengenal Scikit-learn, sebuah pustaka untuk pembelajaran mesin, dan Anda akan membangun model pertama Anda, dengan fokus pada model regresi dalam bab ini.
+
+> Ada alat low-code yang berguna yang dapat membantu Anda mempelajari cara bekerja dengan model regresi. Coba [Azure ML untuk tugas ini](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+### Pelajaran
+
+1. [Alat yang digunakan](1-Tools/README.md)
+2. [Mengelola data](2-Data/README.md)
+3. [Regresi linear dan polinomial](3-Linear/README.md)
+4. [Regresi logistik](4-Logistic/README.md)
+
+---
+### Kredit
+
+"ML dengan regresi" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper)
+
+♥️ Kontributor kuis termasuk: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) dan [Ornella Altunyan](https://twitter.com/ornelladotcom)
+
+Dataset labu disarankan oleh [proyek ini di Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) dan datanya bersumber dari [Laporan Standar Pasar Terminal Tanaman Khusus](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) yang didistribusikan oleh Departemen Pertanian Amerika Serikat. Kami telah menambahkan beberapa poin terkait warna berdasarkan varietas untuk menormalkan distribusi. Data ini berada dalam domain publik.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/3-Web-App/1-Web-App/README.md b/translations/id/3-Web-App/1-Web-App/README.md
new file mode 100644
index 00000000..860e4bce
--- /dev/null
+++ b/translations/id/3-Web-App/1-Web-App/README.md
@@ -0,0 +1,359 @@
+
+# Membangun Aplikasi Web untuk Menggunakan Model ML
+
+Dalam pelajaran ini, Anda akan melatih model ML pada kumpulan data yang luar biasa: _Penampakan UFO selama abad terakhir_, yang bersumber dari database NUFORC.
+
+Anda akan belajar:
+
+- Cara 'pickle' model yang telah dilatih
+- Cara menggunakan model tersebut dalam aplikasi Flask
+
+Kita akan melanjutkan penggunaan notebook untuk membersihkan data dan melatih model, tetapi Anda dapat melangkah lebih jauh dengan mengeksplorasi penggunaan model 'di dunia nyata', yaitu dalam aplikasi web.
+
+Untuk melakukan ini, Anda perlu membangun aplikasi web menggunakan Flask.
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Membangun aplikasi
+
+Ada beberapa cara untuk membangun aplikasi web yang dapat menggunakan model machine learning. Arsitektur web Anda mungkin memengaruhi cara model Anda dilatih. Bayangkan Anda bekerja di sebuah perusahaan di mana tim data science telah melatih model yang ingin Anda gunakan dalam aplikasi.
+
+### Pertimbangan
+
+Ada banyak pertanyaan yang perlu Anda tanyakan:
+
+- **Apakah ini aplikasi web atau aplikasi seluler?** Jika Anda membangun aplikasi seluler atau perlu menggunakan model dalam konteks IoT, Anda dapat menggunakan [TensorFlow Lite](https://www.tensorflow.org/lite/) dan menggunakan model tersebut dalam aplikasi Android atau iOS.
+- **Di mana model akan ditempatkan?** Di cloud atau secara lokal?
+- **Dukungan offline.** Apakah aplikasi harus berfungsi secara offline?
+- **Teknologi apa yang digunakan untuk melatih model?** Teknologi yang dipilih dapat memengaruhi alat yang perlu Anda gunakan.
+ - **Menggunakan TensorFlow.** Jika Anda melatih model menggunakan TensorFlow, misalnya, ekosistem tersebut menyediakan kemampuan untuk mengonversi model TensorFlow untuk digunakan dalam aplikasi web dengan menggunakan [TensorFlow.js](https://www.tensorflow.org/js/).
+ - **Menggunakan PyTorch.** Jika Anda membangun model menggunakan pustaka seperti [PyTorch](https://pytorch.org/), Anda memiliki opsi untuk mengekspornya dalam format [ONNX](https://onnx.ai/) (Open Neural Network Exchange) untuk digunakan dalam aplikasi web JavaScript yang dapat menggunakan [Onnx Runtime](https://www.onnxruntime.ai/). Opsi ini akan dieksplorasi dalam pelajaran mendatang untuk model yang dilatih dengan Scikit-learn.
+ - **Menggunakan Lobe.ai atau Azure Custom Vision.** Jika Anda menggunakan sistem ML SaaS (Software as a Service) seperti [Lobe.ai](https://lobe.ai/) atau [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) untuk melatih model, jenis perangkat lunak ini menyediakan cara untuk mengekspor model untuk berbagai platform, termasuk membangun API khusus yang dapat diakses di cloud oleh aplikasi online Anda.
+
+Anda juga memiliki kesempatan untuk membangun seluruh aplikasi web Flask yang dapat melatih model itu sendiri di browser web. Ini juga dapat dilakukan menggunakan TensorFlow.js dalam konteks JavaScript.
+
+Untuk tujuan kita, karena kita telah bekerja dengan notebook berbasis Python, mari kita eksplorasi langkah-langkah yang perlu Anda ambil untuk mengekspor model yang telah dilatih dari notebook tersebut ke format yang dapat dibaca oleh aplikasi web yang dibangun dengan Python.
+
+## Alat
+
+Untuk tugas ini, Anda memerlukan dua alat: Flask dan Pickle, keduanya berjalan di Python.
+
+✅ Apa itu [Flask](https://palletsprojects.com/p/flask/)? Didefinisikan sebagai 'micro-framework' oleh pembuatnya, Flask menyediakan fitur dasar kerangka kerja web menggunakan Python dan mesin templating untuk membangun halaman web. Lihat [modul pembelajaran ini](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) untuk berlatih membangun dengan Flask.
+
+✅ Apa itu [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 adalah modul Python yang melakukan serialisasi dan de-serialisasi struktur objek Python. Ketika Anda 'pickle' model, Anda melakukan serialisasi atau meratakan strukturnya untuk digunakan di web. Hati-hati: pickle tidak secara intrinsik aman, jadi berhati-hatilah jika diminta untuk 'un-pickle' file. File yang telah di-pickle memiliki akhiran `.pkl`.
+
+## Latihan - membersihkan data Anda
+
+Dalam pelajaran ini Anda akan menggunakan data dari 80.000 penampakan UFO, yang dikumpulkan oleh [NUFORC](https://nuforc.org) (The National UFO Reporting Center). Data ini memiliki beberapa deskripsi menarik tentang penampakan UFO, misalnya:
+
+- **Deskripsi panjang.** "Seorang pria muncul dari sinar cahaya yang bersinar di lapangan rumput pada malam hari dan dia berlari menuju tempat parkir Texas Instruments".
+- **Deskripsi pendek.** "lampu-lampu itu mengejar kami".
+
+Spreadsheet [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) mencakup kolom tentang `city`, `state`, dan `country` tempat penampakan terjadi, `shape` objek, serta `latitude` dan `longitude`.
+
+Dalam [notebook](../../../../3-Web-App/1-Web-App/notebook.ipynb) kosong yang disertakan dalam pelajaran ini:
+
+1. import `pandas`, `matplotlib`, dan `numpy` seperti yang Anda lakukan dalam pelajaran sebelumnya dan import spreadsheet ufos. Anda dapat melihat contoh kumpulan data:
+
+ ```python
+ import pandas as pd
+ import numpy as np
+
+ ufos = pd.read_csv('./data/ufos.csv')
+ ufos.head()
+ ```
+
+1. Konversikan data ufos ke dataframe kecil dengan judul baru. Periksa nilai unik di bidang `Country`.
+
+ ```python
+ ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})
+
+ ufos.Country.unique()
+ ```
+
+1. Sekarang, Anda dapat mengurangi jumlah data yang perlu kita tangani dengan menghapus nilai null dan hanya mengimpor penampakan antara 1-60 detik:
+
+ ```python
+ ufos.dropna(inplace=True)
+
+ ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)]
+
+ ufos.info()
+ ```
+
+1. Import pustaka `LabelEncoder` dari Scikit-learn untuk mengonversi nilai teks untuk negara menjadi angka:
+
+ ✅ LabelEncoder mengkodekan data secara alfabetis
+
+ ```python
+ from sklearn.preprocessing import LabelEncoder
+
+ ufos['Country'] = LabelEncoder().fit_transform(ufos['Country'])
+
+ ufos.head()
+ ```
+
+ Data Anda seharusnya terlihat seperti ini:
+
+ ```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
+ ```
+
+## Latihan - membangun model Anda
+
+Sekarang Anda dapat bersiap untuk melatih model dengan membagi data menjadi kelompok pelatihan dan pengujian.
+
+1. Pilih tiga fitur yang ingin Anda latih sebagai vektor X Anda, dan vektor y akan menjadi `Country`. Anda ingin dapat memasukkan `Seconds`, `Latitude`, dan `Longitude` dan mendapatkan id negara untuk dikembalikan.
+
+ ```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. Latih model Anda menggunakan regresi logistik:
+
+ ```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))
+ ```
+
+Akurasi cukup baik **(sekitar 95%)**, tidak mengherankan, karena `Country` dan `Latitude/Longitude` berkorelasi.
+
+Model yang Anda buat tidak terlalu revolusioner karena Anda seharusnya dapat menyimpulkan `Country` dari `Latitude` dan `Longitude`, tetapi ini adalah latihan yang baik untuk mencoba melatih dari data mentah yang telah Anda bersihkan, ekspor, dan kemudian menggunakan model ini dalam aplikasi web.
+
+## Latihan - 'pickle' model Anda
+
+Sekarang, saatnya untuk _pickle_ model Anda! Anda dapat melakukannya dalam beberapa baris kode. Setelah di-_pickle_, muat model yang telah di-pickle dan uji terhadap array data sampel yang berisi nilai untuk detik, latitude, dan longitude,
+
+```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 mengembalikan **'3'**, yang merupakan kode negara untuk Inggris. Luar biasa! 👽
+
+## Latihan - membangun aplikasi Flask
+
+Sekarang Anda dapat membangun aplikasi Flask untuk memanggil model Anda dan mengembalikan hasil serupa, tetapi dengan cara yang lebih menarik secara visual.
+
+1. Mulailah dengan membuat folder bernama **web-app** di sebelah file _notebook.ipynb_ tempat file _ufo-model.pkl_ Anda berada.
+
+1. Di dalam folder tersebut buat tiga folder lagi: **static**, dengan folder **css** di dalamnya, dan **templates**. Anda sekarang harus memiliki file dan direktori berikut:
+
+ ```output
+ web-app/
+ static/
+ css/
+ templates/
+ notebook.ipynb
+ ufo-model.pkl
+ ```
+
+ ✅ Lihat folder solusi untuk melihat aplikasi yang sudah selesai
+
+1. File pertama yang dibuat di folder _web-app_ adalah file **requirements.txt**. Seperti _package.json_ dalam aplikasi JavaScript, file ini mencantumkan dependensi yang diperlukan oleh aplikasi. Dalam **requirements.txt** tambahkan baris:
+
+ ```text
+ scikit-learn
+ pandas
+ numpy
+ flask
+ ```
+
+1. Sekarang, jalankan file ini dengan menavigasi ke _web-app_:
+
+ ```bash
+ cd web-app
+ ```
+
+1. Di terminal Anda ketik `pip install`, untuk menginstal pustaka yang tercantum dalam _requirements.txt_:
+
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+1. Sekarang, Anda siap membuat tiga file lagi untuk menyelesaikan aplikasi:
+
+ 1. Buat **app.py** di root.
+ 2. Buat **index.html** di direktori _templates_.
+ 3. Buat **styles.css** di direktori _static/css_.
+
+1. Bangun file _styles.css_ dengan beberapa gaya:
+
+ ```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. Selanjutnya, bangun file _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 }}
+
+
+
+
+
+
+
+ ```
+
+ Perhatikan templating dalam file ini. Perhatikan sintaks 'mustache' di sekitar variabel yang akan disediakan oleh aplikasi, seperti teks prediksi: `{{}}`. Ada juga formulir yang mengirimkan prediksi ke rute `/predict`.
+
+ Akhirnya, Anda siap membangun file python yang menggerakkan konsumsi model dan tampilan prediksi:
+
+1. Dalam `app.py` tambahkan:
+
+ ```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: saat Anda menambahkan [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) saat menjalankan aplikasi web menggunakan Flask, setiap perubahan yang Anda buat pada aplikasi Anda akan langsung tercermin tanpa perlu memulai ulang server. Hati-hati! Jangan aktifkan mode ini dalam aplikasi produksi.
+
+Jika Anda menjalankan `python app.py` atau `python3 app.py` - server web Anda akan mulai berjalan secara lokal, dan Anda dapat mengisi formulir singkat untuk mendapatkan jawaban atas pertanyaan Anda tentang di mana UFO telah terlihat!
+
+Sebelum melakukannya, lihat bagian-bagian dari `app.py`:
+
+1. Pertama, dependensi dimuat dan aplikasi dimulai.
+1. Kemudian, model diimpor.
+1. Kemudian, index.html dirender di rute utama.
+
+Di rute `/predict`, beberapa hal terjadi saat formulir dikirimkan:
+
+1. Variabel formulir dikumpulkan dan dikonversi ke array numpy. Mereka kemudian dikirim ke model dan prediksi dikembalikan.
+2. Negara-negara yang ingin ditampilkan dirender ulang sebagai teks yang dapat dibaca dari kode negara yang diprediksi, dan nilai tersebut dikirim kembali ke index.html untuk dirender dalam template.
+
+Menggunakan model dengan cara ini, dengan Flask dan model yang di-pickle, cukup sederhana. Hal tersulit adalah memahami bentuk data yang harus dikirim ke model untuk mendapatkan prediksi. Itu semua tergantung pada bagaimana model dilatih. Model ini memiliki tiga titik data yang harus dimasukkan untuk mendapatkan prediksi.
+
+Dalam pengaturan profesional, Anda dapat melihat betapa pentingnya komunikasi yang baik antara orang-orang yang melatih model dan mereka yang menggunakannya dalam aplikasi web atau seluler. Dalam kasus kita, hanya ada satu orang, yaitu Anda!
+
+---
+
+## 🚀 Tantangan
+
+Alih-alih bekerja di notebook dan mengimpor model ke aplikasi Flask, Anda dapat melatih model langsung di dalam aplikasi Flask! Cobalah mengonversi kode Python Anda di notebook, mungkin setelah data Anda dibersihkan, untuk melatih model dari dalam aplikasi pada rute yang disebut `train`. Apa kelebihan dan kekurangan dari metode ini?
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Ada banyak cara untuk membangun aplikasi web yang menggunakan model ML. Buat daftar cara Anda dapat menggunakan JavaScript atau Python untuk membangun aplikasi web yang memanfaatkan machine learning. Pertimbangkan arsitektur: apakah model harus tetap berada di aplikasi atau hidup di cloud? Jika yang terakhir, bagaimana Anda mengaksesnya? Gambarlah model arsitektur untuk solusi web ML yang diterapkan.
+
+## Tugas
+
+[Coba model yang berbeda](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/3-Web-App/1-Web-App/assignment.md b/translations/id/3-Web-App/1-Web-App/assignment.md
new file mode 100644
index 00000000..58aca745
--- /dev/null
+++ b/translations/id/3-Web-App/1-Web-App/assignment.md
@@ -0,0 +1,25 @@
+
+# Coba model yang berbeda
+
+## Instruksi
+
+Setelah Anda membuat satu aplikasi web menggunakan model Regresi yang telah dilatih, gunakan salah satu model dari pelajaran Regresi sebelumnya untuk membuat ulang aplikasi web ini. Anda dapat mempertahankan gaya atau mendesainnya secara berbeda untuk mencerminkan data labu. Pastikan untuk mengubah input agar sesuai dengan metode pelatihan model Anda.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Perbaikan |
+| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------- |
+| | Aplikasi web berjalan seperti yang diharapkan dan telah diterapkan di cloud | Aplikasi web memiliki kekurangan atau menunjukkan hasil yang tidak terduga | Aplikasi web tidak berfungsi dengan baik |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/3-Web-App/README.md b/translations/id/3-Web-App/README.md
new file mode 100644
index 00000000..016a66e2
--- /dev/null
+++ b/translations/id/3-Web-App/README.md
@@ -0,0 +1,35 @@
+
+# Bangun Aplikasi Web untuk Menggunakan Model ML Anda
+
+Dalam bagian kurikulum ini, Anda akan diperkenalkan pada topik ML terapan: bagaimana cara menyimpan model Scikit-learn Anda sebagai file yang dapat digunakan untuk membuat prediksi dalam aplikasi web. Setelah model disimpan, Anda akan belajar cara menggunakannya dalam aplikasi web yang dibangun dengan Flask. Anda akan terlebih dahulu membuat model menggunakan beberapa data tentang penampakan UFO! Kemudian, Anda akan membangun aplikasi web yang memungkinkan Anda memasukkan jumlah detik bersama nilai lintang dan bujur untuk memprediksi negara mana yang melaporkan melihat UFO.
+
+
+
+Foto oleh Michael Herren di Unsplash
+
+## Pelajaran
+
+1. [Bangun Aplikasi Web](1-Web-App/README.md)
+
+## Kredit
+
+"Bangun Aplikasi Web" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper).
+
+♥️ Kuis ditulis oleh Rohan Raj.
+
+Dataset bersumber dari [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings).
+
+Arsitektur aplikasi web sebagian disarankan oleh [artikel ini](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) dan [repo ini](https://github.com/abhinavsagar/machine-learning-deployment) oleh Abhinav Sagar.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/1-Introduction/README.md b/translations/id/4-Classification/1-Introduction/README.md
new file mode 100644
index 00000000..fbd799a2
--- /dev/null
+++ b/translations/id/4-Classification/1-Introduction/README.md
@@ -0,0 +1,313 @@
+
+# Pengantar Klasifikasi
+
+Dalam empat pelajaran ini, Anda akan menjelajahi salah satu fokus utama dari pembelajaran mesin klasik - _klasifikasi_. Kita akan menggunakan berbagai algoritma klasifikasi dengan dataset tentang semua masakan luar biasa dari Asia dan India. Semoga Anda lapar!
+
+
+
+> Rayakan masakan pan-Asia dalam pelajaran ini! Gambar oleh [Jen Looper](https://twitter.com/jenlooper)
+
+Klasifikasi adalah bentuk [pembelajaran terawasi](https://wikipedia.org/wiki/Supervised_learning) yang memiliki banyak kesamaan dengan teknik regresi. Jika pembelajaran mesin berfokus pada memprediksi nilai atau nama sesuatu menggunakan dataset, maka klasifikasi umumnya terbagi menjadi dua kelompok: _klasifikasi biner_ dan _klasifikasi multikelas_.
+
+[](https://youtu.be/eg8DJYwdMyg "Pengantar klasifikasi")
+
+> 🎥 Klik gambar di atas untuk video: John Guttag dari MIT memperkenalkan klasifikasi
+
+Ingat:
+
+- **Regresi linear** membantu Anda memprediksi hubungan antara variabel dan membuat prediksi akurat tentang di mana titik data baru akan berada dalam hubungan dengan garis tersebut. Misalnya, Anda dapat memprediksi _berapa harga labu pada bulan September vs. Desember_.
+- **Regresi logistik** membantu Anda menemukan "kategori biner": pada titik harga ini, _apakah labu ini berwarna oranye atau tidak-oranye_?
+
+Klasifikasi menggunakan berbagai algoritma untuk menentukan cara lain dalam menentukan label atau kelas suatu titik data. Mari kita bekerja dengan data masakan ini untuk melihat apakah, dengan mengamati sekelompok bahan, kita dapat menentukan asal masakannya.
+
+## [Kuis pra-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../4-Classification/1-Introduction/solution/R/lesson_10.html)
+
+### Pengantar
+
+Klasifikasi adalah salah satu aktivitas mendasar bagi peneliti pembelajaran mesin dan ilmuwan data. Dari klasifikasi dasar nilai biner ("apakah email ini spam atau tidak?"), hingga klasifikasi dan segmentasi gambar yang kompleks menggunakan penglihatan komputer, selalu berguna untuk dapat mengelompokkan data ke dalam kelas dan mengajukan pertanyaan tentangnya.
+
+Untuk menyatakan proses ini dengan cara yang lebih ilmiah, metode klasifikasi Anda menciptakan model prediktif yang memungkinkan Anda memetakan hubungan antara variabel input ke variabel output.
+
+
+
+> Masalah biner vs. multikelas untuk algoritma klasifikasi. Infografis oleh [Jen Looper](https://twitter.com/jenlooper)
+
+Sebelum memulai proses membersihkan data, memvisualisasikannya, dan mempersiapkannya untuk tugas ML kita, mari kita pelajari sedikit tentang berbagai cara pembelajaran mesin dapat digunakan untuk mengklasifikasikan data.
+
+Berasal dari [statistik](https://wikipedia.org/wiki/Statistical_classification), klasifikasi menggunakan pembelajaran mesin klasik menggunakan fitur seperti `smoker`, `weight`, dan `age` untuk menentukan _kemungkinan mengembangkan penyakit X_. Sebagai teknik pembelajaran terawasi yang mirip dengan latihan regresi yang Anda lakukan sebelumnya, data Anda diberi label dan algoritma ML menggunakan label tersebut untuk mengklasifikasikan dan memprediksi kelas (atau 'fitur') dari dataset dan menetapkannya ke grup atau hasil.
+
+✅ Luangkan waktu sejenak untuk membayangkan dataset tentang masakan. Apa yang dapat dijawab oleh model multikelas? Apa yang dapat dijawab oleh model biner? Bagaimana jika Anda ingin menentukan apakah suatu masakan kemungkinan menggunakan fenugreek? Bagaimana jika Anda ingin melihat apakah, dengan bahan-bahan seperti bintang adas, artichoke, kembang kol, dan lobak, Anda dapat membuat hidangan khas India?
+
+[](https://youtu.be/GuTeDbaNoEU "Keranjang misteri yang gila")
+
+> 🎥 Klik gambar di atas untuk video. Premis utama dari acara 'Chopped' adalah 'keranjang misteri' di mana koki harus membuat hidangan dari pilihan bahan acak. Tentunya model ML akan sangat membantu!
+
+## Halo 'classifier'
+
+Pertanyaan yang ingin kita ajukan dari dataset masakan ini sebenarnya adalah pertanyaan **multikelas**, karena kita memiliki beberapa kemungkinan masakan nasional untuk dikerjakan. Dengan sekelompok bahan, ke kelas mana data ini akan cocok?
+
+Scikit-learn menawarkan beberapa algoritma berbeda untuk digunakan dalam mengklasifikasikan data, tergantung pada jenis masalah yang ingin Anda selesaikan. Dalam dua pelajaran berikutnya, Anda akan mempelajari beberapa algoritma ini.
+
+## Latihan - bersihkan dan seimbangkan data Anda
+
+Tugas pertama yang harus dilakukan, sebelum memulai proyek ini, adalah membersihkan dan **menyeimbangkan** data Anda untuk mendapatkan hasil yang lebih baik. Mulailah dengan file kosong _notebook.ipynb_ di root folder ini.
+
+Hal pertama yang perlu diinstal adalah [imblearn](https://imbalanced-learn.org/stable/). Ini adalah paket Scikit-learn yang memungkinkan Anda menyeimbangkan data dengan lebih baik (Anda akan mempelajari lebih lanjut tentang tugas ini sebentar lagi).
+
+1. Untuk menginstal `imblearn`, jalankan `pip install`, seperti ini:
+
+ ```python
+ pip install imblearn
+ ```
+
+1. Impor paket yang Anda perlukan untuk mengimpor data dan memvisualisasikannya, juga impor `SMOTE` dari `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
+ ```
+
+ Sekarang Anda siap untuk mengimpor data berikutnya.
+
+1. Tugas berikutnya adalah mengimpor data:
+
+ ```python
+ df = pd.read_csv('../data/cuisines.csv')
+ ```
+
+ Menggunakan `read_csv()` akan membaca konten file csv _cusines.csv_ dan menempatkannya dalam variabel `df`.
+
+1. Periksa bentuk data:
+
+ ```python
+ df.head()
+ ```
+
+ Lima baris pertama terlihat seperti ini:
+
+ ```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. Dapatkan informasi tentang data ini dengan memanggil `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Output Anda menyerupai:
+
+ ```output
+
+ RangeIndex: 2448 entries, 0 to 2447
+ Columns: 385 entries, Unnamed: 0 to zucchini
+ dtypes: int64(384), object(1)
+ memory usage: 7.2+ MB
+ ```
+
+## Latihan - mempelajari tentang masakan
+
+Sekarang pekerjaan mulai menjadi lebih menarik. Mari kita temukan distribusi data, per masakan.
+
+1. Plot data sebagai batang dengan memanggil `barh()`:
+
+ ```python
+ df.cuisine.value_counts().plot.barh()
+ ```
+
+ 
+
+ Ada sejumlah masakan yang terbatas, tetapi distribusi data tidak merata. Anda dapat memperbaikinya! Sebelum melakukannya, jelajahi sedikit lebih jauh.
+
+1. Cari tahu berapa banyak data yang tersedia per masakan dan cetak:
+
+ ```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}')
+ ```
+
+ Outputnya terlihat seperti ini:
+
+ ```output
+ thai df: (289, 385)
+ japanese df: (320, 385)
+ chinese df: (442, 385)
+ indian df: (598, 385)
+ korean df: (799, 385)
+ ```
+
+## Menemukan bahan-bahan
+
+Sekarang Anda dapat menggali lebih dalam ke data dan mempelajari apa saja bahan-bahan khas per masakan. Anda harus membersihkan data berulang yang menciptakan kebingungan antara masakan, jadi mari kita pelajari tentang masalah ini.
+
+1. Buat fungsi `create_ingredient()` dalam Python untuk membuat dataframe bahan. Fungsi ini akan mulai dengan menghapus kolom yang tidak membantu dan menyortir bahan berdasarkan jumlahnya:
+
+ ```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
+ ```
+
+ Sekarang Anda dapat menggunakan fungsi tersebut untuk mendapatkan gambaran tentang sepuluh bahan paling populer berdasarkan masakan.
+
+1. Panggil `create_ingredient()` dan plot dengan memanggil `barh()`:
+
+ ```python
+ thai_ingredient_df = create_ingredient_df(thai_df)
+ thai_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Lakukan hal yang sama untuk data Jepang:
+
+ ```python
+ japanese_ingredient_df = create_ingredient_df(japanese_df)
+ japanese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Sekarang untuk bahan-bahan Cina:
+
+ ```python
+ chinese_ingredient_df = create_ingredient_df(chinese_df)
+ chinese_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Plot bahan-bahan India:
+
+ ```python
+ indian_ingredient_df = create_ingredient_df(indian_df)
+ indian_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Akhirnya, plot bahan-bahan Korea:
+
+ ```python
+ korean_ingredient_df = create_ingredient_df(korean_df)
+ korean_ingredient_df.head(10).plot.barh()
+ ```
+
+ 
+
+1. Sekarang, hapus bahan-bahan yang paling umum yang menciptakan kebingungan antara masakan yang berbeda, dengan memanggil `drop()`:
+
+ Semua orang menyukai nasi, bawang putih, dan jahe!
+
+ ```python
+ feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1)
+ labels_df = df.cuisine #.unique()
+ feature_df.head()
+ ```
+
+## Seimbangkan dataset
+
+Setelah Anda membersihkan data, gunakan [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Teknik Oversampling Minoritas Sintetis" - untuk menyeimbangkannya.
+
+1. Panggil `fit_resample()`, strategi ini menghasilkan sampel baru melalui interpolasi.
+
+ ```python
+ oversample = SMOTE()
+ transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)
+ ```
+
+ Dengan menyeimbangkan data Anda, Anda akan mendapatkan hasil yang lebih baik saat mengklasifikasikannya. Pikirkan tentang klasifikasi biner. Jika sebagian besar data Anda adalah satu kelas, model ML akan lebih sering memprediksi kelas tersebut, hanya karena ada lebih banyak data untuk itu. Menyeimbangkan data mengambil data yang miring dan membantu menghilangkan ketidakseimbangan ini.
+
+1. Sekarang Anda dapat memeriksa jumlah label per bahan:
+
+ ```python
+ print(f'new label count: {transformed_label_df.value_counts()}')
+ print(f'old label count: {df.cuisine.value_counts()}')
+ ```
+
+ Output Anda terlihat seperti ini:
+
+ ```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 ini sudah bersih, seimbang, dan sangat lezat!
+
+1. Langkah terakhir adalah menyimpan data yang telah seimbang, termasuk label dan fitur, ke dalam dataframe baru yang dapat diekspor ke file:
+
+ ```python
+ transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer')
+ ```
+
+1. Anda dapat melihat data sekali lagi menggunakan `transformed_df.head()` dan `transformed_df.info()`. Simpan salinan data ini untuk digunakan dalam pelajaran mendatang:
+
+ ```python
+ transformed_df.head()
+ transformed_df.info()
+ transformed_df.to_csv("../data/cleaned_cuisines.csv")
+ ```
+
+ CSV baru ini sekarang dapat ditemukan di folder data root.
+
+---
+
+## 🚀Tantangan
+
+Kurikulum ini berisi beberapa dataset yang menarik. Telusuri folder `data` dan lihat apakah ada yang berisi dataset yang cocok untuk klasifikasi biner atau multikelas? Pertanyaan apa yang akan Anda ajukan dari dataset ini?
+
+## [Kuis pasca-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Jelajahi API SMOTE. Untuk kasus penggunaan apa SMOTE paling cocok digunakan? Masalah apa yang dapat diselesaikannya?
+
+## Tugas
+
+[Telusuri metode klasifikasi](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/1-Introduction/assignment.md b/translations/id/4-Classification/1-Introduction/assignment.md
new file mode 100644
index 00000000..f3d47b8e
--- /dev/null
+++ b/translations/id/4-Classification/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Jelajahi Metode Klasifikasi
+
+## Instruksi
+
+Dalam [dokumentasi Scikit-learn](https://scikit-learn.org/stable/supervised_learning.html) terdapat daftar panjang cara untuk mengklasifikasikan data. Lakukan pencarian kecil dalam dokumen tersebut: tujuan Anda adalah mencari metode klasifikasi dan mencocokkannya dengan dataset dalam kurikulum ini, pertanyaan yang dapat Anda ajukan tentangnya, dan teknik klasifikasi. Buat spreadsheet atau tabel dalam file .doc dan jelaskan bagaimana dataset akan bekerja dengan algoritma klasifikasi.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| | sebuah dokumen disajikan yang mengulas 5 algoritma beserta teknik klasifikasi. Ulasan tersebut dijelaskan dengan baik dan terperinci. | sebuah dokumen disajikan yang mengulas 3 algoritma beserta teknik klasifikasi. Ulasan tersebut dijelaskan dengan baik dan terperinci. | sebuah dokumen disajikan yang mengulas kurang dari tiga algoritma beserta teknik klasifikasi dan ulasannya tidak dijelaskan dengan baik atau terperinci. |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/1-Introduction/solution/Julia/README.md b/translations/id/4-Classification/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..f741af18
--- /dev/null
+++ b/translations/id/4-Classification/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/2-Classifiers-1/README.md b/translations/id/4-Classification/2-Classifiers-1/README.md
new file mode 100644
index 00000000..b899c4a2
--- /dev/null
+++ b/translations/id/4-Classification/2-Classifiers-1/README.md
@@ -0,0 +1,253 @@
+
+# Pengelompokan Masakan 1
+
+Dalam pelajaran ini, Anda akan menggunakan dataset yang telah Anda simpan dari pelajaran sebelumnya, yang berisi data seimbang dan bersih tentang berbagai jenis masakan.
+
+Anda akan menggunakan dataset ini dengan berbagai pengelompokan untuk _memprediksi jenis masakan nasional berdasarkan kelompok bahan_. Sambil melakukannya, Anda akan mempelajari lebih lanjut tentang beberapa cara algoritma dapat digunakan untuk tugas klasifikasi.
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+# Persiapan
+
+Dengan asumsi Anda telah menyelesaikan [Pelajaran 1](../1-Introduction/README.md), pastikan file _cleaned_cuisines.csv_ ada di folder root `/data` untuk empat pelajaran ini.
+
+## Latihan - memprediksi jenis masakan nasional
+
+1. Bekerja di folder _notebook.ipynb_ pelajaran ini, impor file tersebut bersama dengan pustaka Pandas:
+
+ ```python
+ import pandas as pd
+ cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv")
+ cuisines_df.head()
+ ```
+
+ Data terlihat seperti ini:
+
+| | 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. Sekarang, impor beberapa pustaka lagi:
+
+ ```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. Pisahkan koordinat X dan y ke dalam dua dataframe untuk pelatihan. `cuisine` dapat menjadi dataframe label:
+
+ ```python
+ cuisines_label_df = cuisines_df['cuisine']
+ cuisines_label_df.head()
+ ```
+
+ Data akan terlihat seperti ini:
+
+ ```output
+ 0 indian
+ 1 indian
+ 2 indian
+ 3 indian
+ 4 indian
+ Name: cuisine, dtype: object
+ ```
+
+1. Hapus kolom `Unnamed: 0` dan kolom `cuisine` dengan memanggil `drop()`. Simpan data lainnya sebagai fitur yang dapat dilatih:
+
+ ```python
+ cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
+ cuisines_feature_df.head()
+ ```
+
+ Fitur Anda akan terlihat seperti ini:
+
+| | 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 |
+
+Sekarang Anda siap untuk melatih model Anda!
+
+## Memilih pengelompokan
+
+Setelah data Anda bersih dan siap untuk pelatihan, Anda harus memutuskan algoritma mana yang akan digunakan untuk tugas ini.
+
+Scikit-learn mengelompokkan klasifikasi di bawah Pembelajaran Terawasi, dan dalam kategori tersebut Anda akan menemukan banyak cara untuk mengelompokkan. [Ragamnya](https://scikit-learn.org/stable/supervised_learning.html) cukup membingungkan pada pandangan pertama. Metode berikut semuanya mencakup teknik klasifikasi:
+
+- Model Linear
+- Support Vector Machines
+- Stochastic Gradient Descent
+- Nearest Neighbors
+- Gaussian Processes
+- Decision Trees
+- Metode Ensemble (Voting Classifier)
+- Algoritma Multikelas dan multioutput (klasifikasi multikelas dan multilabel, klasifikasi multikelas-multioutput)
+
+> Anda juga dapat menggunakan [jaringan saraf untuk mengelompokkan data](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), tetapi itu di luar cakupan pelajaran ini.
+
+### Pengelompokan mana yang harus dipilih?
+
+Jadi, pengelompokan mana yang harus Anda pilih? Sering kali, mencoba beberapa dan mencari hasil yang baik adalah cara untuk menguji. Scikit-learn menawarkan [perbandingan berdampingan](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) pada dataset yang dibuat, membandingkan KNeighbors, SVC dua cara, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB, dan QuadraticDiscriminationAnalysis, menunjukkan hasil yang divisualisasikan:
+
+
+> Grafik dihasilkan dari dokumentasi Scikit-learn
+
+> AutoML menyelesaikan masalah ini dengan menjalankan perbandingan ini di cloud, memungkinkan Anda memilih algoritma terbaik untuk data Anda. Coba [di sini](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
+
+### Pendekatan yang lebih baik
+
+Pendekatan yang lebih baik daripada menebak secara acak adalah mengikuti ide-ide pada [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) yang dapat diunduh ini. Di sini, kita menemukan bahwa, untuk masalah multikelas kita, kita memiliki beberapa pilihan:
+
+
+> Bagian dari Algorithm Cheat Sheet Microsoft, merinci opsi klasifikasi multikelas
+
+✅ Unduh cheat sheet ini, cetak, dan tempel di dinding Anda!
+
+### Penalaran
+
+Mari kita lihat apakah kita dapat menalar melalui pendekatan yang berbeda mengingat kendala yang kita miliki:
+
+- **Jaringan saraf terlalu berat**. Mengingat dataset kita yang bersih tetapi minimal, dan fakta bahwa kita menjalankan pelatihan secara lokal melalui notebook, jaringan saraf terlalu berat untuk tugas ini.
+- **Tidak menggunakan pengelompokan dua kelas**. Kita tidak menggunakan pengelompokan dua kelas, jadi itu mengesampingkan one-vs-all.
+- **Decision tree atau logistic regression bisa digunakan**. Decision tree mungkin cocok, atau logistic regression untuk data multikelas.
+- **Multiclass Boosted Decision Trees menyelesaikan masalah yang berbeda**. Multiclass boosted decision tree paling cocok untuk tugas nonparametrik, misalnya tugas yang dirancang untuk membangun peringkat, sehingga tidak berguna untuk kita.
+
+### Menggunakan Scikit-learn
+
+Kita akan menggunakan Scikit-learn untuk menganalisis data kita. Namun, ada banyak cara untuk menggunakan logistic regression di Scikit-learn. Lihat [parameter yang dapat diteruskan](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Pada dasarnya ada dua parameter penting - `multi_class` dan `solver` - yang perlu kita tentukan, saat kita meminta Scikit-learn untuk melakukan logistic regression. Nilai `multi_class` menerapkan perilaku tertentu. Nilai solver adalah algoritma yang akan digunakan. Tidak semua solver dapat dipasangkan dengan semua nilai `multi_class`.
+
+Menurut dokumentasi, dalam kasus multikelas, algoritma pelatihan:
+
+- **Menggunakan skema one-vs-rest (OvR)**, jika opsi `multi_class` diatur ke `ovr`
+- **Menggunakan cross-entropy loss**, jika opsi `multi_class` diatur ke `multinomial`. (Saat ini opsi `multinomial` hanya didukung oleh solver ‘lbfgs’, ‘sag’, ‘saga’, dan ‘newton-cg’.)"
+
+> 🎓 'Skema' di sini bisa berupa 'ovr' (one-vs-rest) atau 'multinomial'. Karena logistic regression sebenarnya dirancang untuk mendukung klasifikasi biner, skema ini memungkinkan algoritma tersebut menangani tugas klasifikasi multikelas dengan lebih baik. [sumber](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
+
+> 🎓 'Solver' didefinisikan sebagai "algoritma yang digunakan dalam masalah optimasi". [sumber](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
+
+Scikit-learn menawarkan tabel ini untuk menjelaskan bagaimana solver menangani tantangan yang berbeda yang disajikan oleh berbagai jenis struktur data:
+
+
+
+## Latihan - membagi data
+
+Kita dapat fokus pada logistic regression untuk percobaan pelatihan pertama kita karena Anda baru saja mempelajari tentang hal ini dalam pelajaran sebelumnya.
+Pisahkan data Anda menjadi kelompok pelatihan dan pengujian dengan memanggil `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)
+```
+
+## Latihan - menerapkan logistic regression
+
+Karena Anda menggunakan kasus multikelas, Anda perlu memilih _skema_ yang akan digunakan dan _solver_ yang akan diatur. Gunakan LogisticRegression dengan pengaturan multikelas dan solver **liblinear** untuk melatih.
+
+1. Buat logistic regression dengan multi_class diatur ke `ovr` dan solver diatur ke `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))
+ ```
+
+ ✅ Coba solver lain seperti `lbfgs`, yang sering diatur sebagai default
+Gunakan fungsi Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) untuk meratakan data Anda jika diperlukan.
+Akurasi model ini cukup baik, yaitu di atas **80%**!
+
+1. Anda dapat melihat model ini beraksi dengan menguji satu baris data (#50):
+
+ ```python
+ print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
+ print(f'cuisine: {y_test.iloc[50]}')
+ ```
+
+ Hasilnya dicetak:
+
+ ```output
+ ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
+ cuisine: indian
+ ```
+
+ ✅ Cobalah nomor baris yang berbeda dan periksa hasilnya.
+
+1. Lebih mendalam, Anda dapat memeriksa akurasi prediksi ini:
+
+ ```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()
+ ```
+
+ Hasilnya dicetak - masakan India adalah tebakan terbaiknya, dengan probabilitas yang baik:
+
+ | | 0 |
+ | -------: | -------: |
+ | indian | 0.715851 |
+ | chinese | 0.229475 |
+ | japanese | 0.029763 |
+ | korean | 0.017277 |
+ | thai | 0.007634 |
+
+ ✅ Bisakah Anda menjelaskan mengapa model ini cukup yakin bahwa ini adalah masakan India?
+
+1. Dapatkan lebih banyak detail dengan mencetak laporan klasifikasi, seperti yang Anda lakukan dalam pelajaran regresi:
+
+ ```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 |
+
+## 🚀Tantangan
+
+Dalam pelajaran ini, Anda menggunakan data yang telah dibersihkan untuk membangun model pembelajaran mesin yang dapat memprediksi jenis masakan berdasarkan serangkaian bahan. Luangkan waktu untuk membaca berbagai opsi yang disediakan Scikit-learn untuk mengklasifikasikan data. Pelajari lebih dalam konsep 'solver' untuk memahami apa yang terjadi di balik layar.
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Pelajari lebih dalam tentang matematika di balik regresi logistik dalam [pelajaran ini](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
+## Tugas
+
+[Pelajari tentang solver](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/2-Classifiers-1/assignment.md b/translations/id/4-Classification/2-Classifiers-1/assignment.md
new file mode 100644
index 00000000..96579cc6
--- /dev/null
+++ b/translations/id/4-Classification/2-Classifiers-1/assignment.md
@@ -0,0 +1,24 @@
+
+# Pelajari Pemecah Masalah
+## Instruksi
+
+Dalam pelajaran ini, Anda mempelajari berbagai pemecah masalah yang menggabungkan algoritma dengan proses pembelajaran mesin untuk menciptakan model yang akurat. Tinjau pemecah masalah yang tercantum dalam pelajaran dan pilih dua. Dengan kata-kata Anda sendiri, bandingkan dan bedakan kedua pemecah masalah tersebut. Masalah seperti apa yang mereka selesaikan? Bagaimana mereka bekerja dengan berbagai struktur data? Mengapa Anda memilih satu dibandingkan yang lain?
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- |
+| | File .doc disajikan dengan dua paragraf, masing-masing membahas satu pemecah masalah, dan membandingkannya secara mendalam. | File .doc disajikan dengan hanya satu paragraf | Tugas tidak lengkap |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/2-Classifiers-1/solution/Julia/README.md b/translations/id/4-Classification/2-Classifiers-1/solution/Julia/README.md
new file mode 100644
index 00000000..213c0696
--- /dev/null
+++ b/translations/id/4-Classification/2-Classifiers-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/3-Classifiers-2/README.md b/translations/id/4-Classification/3-Classifiers-2/README.md
new file mode 100644
index 00000000..917b4fc5
--- /dev/null
+++ b/translations/id/4-Classification/3-Classifiers-2/README.md
@@ -0,0 +1,249 @@
+
+# Pengklasifikasi Masakan 2
+
+Dalam pelajaran klasifikasi kedua ini, Anda akan mengeksplorasi lebih banyak cara untuk mengklasifikasikan data numerik. Anda juga akan mempelajari dampak dari memilih satu pengklasifikasi dibandingkan yang lain.
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+### Prasyarat
+
+Kami mengasumsikan bahwa Anda telah menyelesaikan pelajaran sebelumnya dan memiliki dataset yang telah dibersihkan di folder `data` Anda dengan nama _cleaned_cuisines.csv_ di root folder 4 pelajaran ini.
+
+### Persiapan
+
+Kami telah memuat file _notebook.ipynb_ Anda dengan dataset yang telah dibersihkan dan telah membaginya menjadi dataframe X dan y, siap untuk proses pembangunan model.
+
+## Peta klasifikasi
+
+Sebelumnya, Anda telah mempelajari berbagai opsi yang tersedia untuk mengklasifikasikan data menggunakan lembar contekan dari Microsoft. Scikit-learn menawarkan lembar contekan serupa, tetapi lebih rinci, yang dapat membantu mempersempit pilihan estimator Anda (istilah lain untuk pengklasifikasi):
+
+
+> Tip: [kunjungi peta ini secara online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) dan klik jalurnya untuk membaca dokumentasi.
+
+### Rencana
+
+Peta ini sangat membantu setelah Anda memiliki pemahaman yang jelas tentang data Anda, karena Anda dapat 'berjalan' di sepanjang jalurnya untuk membuat keputusan:
+
+- Kami memiliki >50 sampel
+- Kami ingin memprediksi sebuah kategori
+- Kami memiliki data yang diberi label
+- Kami memiliki kurang dari 100K sampel
+- ✨ Kami dapat memilih Linear SVC
+- Jika itu tidak berhasil, karena kami memiliki data numerik
+ - Kami dapat mencoba ✨ KNeighbors Classifier
+ - Jika itu tidak berhasil, coba ✨ SVC dan ✨ Ensemble Classifiers
+
+Ini adalah jalur yang sangat membantu untuk diikuti.
+
+## Latihan - membagi data
+
+Mengikuti jalur ini, kita harus mulai dengan mengimpor beberapa pustaka yang diperlukan.
+
+1. Impor pustaka yang diperlukan:
+
+ ```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. Bagi data pelatihan dan pengujian Anda:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
+ ```
+
+## Pengklasifikasi Linear SVC
+
+Support-Vector Clustering (SVC) adalah bagian dari keluarga teknik ML Support-Vector Machines (pelajari lebih lanjut tentang ini di bawah). Dalam metode ini, Anda dapat memilih 'kernel' untuk menentukan cara mengelompokkan label. Parameter 'C' mengacu pada 'regularisasi' yang mengatur pengaruh parameter. Kernel dapat berupa [beberapa jenis](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); di sini kami mengaturnya ke 'linear' untuk memastikan bahwa kami menggunakan Linear SVC. Probabilitas secara default diatur ke 'false'; di sini kami mengaturnya ke 'true' untuk mendapatkan estimasi probabilitas. Kami mengatur random state ke '0' untuk mengacak data agar mendapatkan probabilitas.
+
+### Latihan - menerapkan Linear SVC
+
+Mulailah dengan membuat array pengklasifikasi. Anda akan menambahkan secara bertahap ke array ini saat kami menguji.
+
+1. Mulailah dengan Linear SVC:
+
+ ```python
+ C = 10
+ # Create different classifiers.
+ classifiers = {
+ 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
+ }
+ ```
+
+2. Latih model Anda menggunakan Linear SVC dan cetak laporan:
+
+ ```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))
+ ```
+
+ Hasilnya cukup baik:
+
+ ```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
+ ```
+
+## Pengklasifikasi K-Neighbors
+
+K-Neighbors adalah bagian dari keluarga metode ML "neighbors", yang dapat digunakan untuk pembelajaran terawasi dan tidak terawasi. Dalam metode ini, sejumlah titik yang telah ditentukan dibuat dan data dikumpulkan di sekitar titik-titik ini sehingga label yang digeneralisasi dapat diprediksi untuk data tersebut.
+
+### Latihan - menerapkan pengklasifikasi K-Neighbors
+
+Pengklasifikasi sebelumnya cukup baik dan bekerja dengan baik pada data, tetapi mungkin kita bisa mendapatkan akurasi yang lebih baik. Coba pengklasifikasi K-Neighbors.
+
+1. Tambahkan baris ke array pengklasifikasi Anda (tambahkan koma setelah item Linear SVC):
+
+ ```python
+ 'KNN classifier': KNeighborsClassifier(C),
+ ```
+
+ Hasilnya sedikit lebih buruk:
+
+ ```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
+ ```
+
+ ✅ Pelajari tentang [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
+
+## Pengklasifikasi Support Vector
+
+Pengklasifikasi Support-Vector adalah bagian dari keluarga [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) metode ML yang digunakan untuk tugas klasifikasi dan regresi. SVM "memetakan contoh pelatihan ke titik-titik di ruang" untuk memaksimalkan jarak antara dua kategori. Data berikutnya dipetakan ke ruang ini sehingga kategorinya dapat diprediksi.
+
+### Latihan - menerapkan pengklasifikasi Support Vector
+
+Mari coba mendapatkan akurasi yang sedikit lebih baik dengan pengklasifikasi Support Vector.
+
+1. Tambahkan koma setelah item K-Neighbors, lalu tambahkan baris ini:
+
+ ```python
+ 'SVC': SVC(),
+ ```
+
+ Hasilnya cukup baik!
+
+ ```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
+ ```
+
+ ✅ Pelajari tentang [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
+
+## Pengklasifikasi Ensemble
+
+Mari ikuti jalur hingga akhir, meskipun pengujian sebelumnya cukup baik. Mari coba beberapa 'Pengklasifikasi Ensemble', khususnya Random Forest dan AdaBoost:
+
+```python
+ 'RFST': RandomForestClassifier(n_estimators=100),
+ 'ADA': AdaBoostClassifier(n_estimators=100)
+```
+
+Hasilnya sangat baik, terutama untuk 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
+```
+
+✅ Pelajari tentang [Pengklasifikasi Ensemble](https://scikit-learn.org/stable/modules/ensemble.html)
+
+Metode Machine Learning ini "menggabungkan prediksi dari beberapa estimator dasar" untuk meningkatkan kualitas model. Dalam contoh kami, kami menggunakan Random Trees dan AdaBoost.
+
+- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metode rata-rata, membangun 'hutan' dari 'pohon keputusan' yang diinfuskan dengan elemen acak untuk menghindari overfitting. Parameter n_estimators diatur ke jumlah pohon.
+
+- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) menyesuaikan pengklasifikasi ke dataset dan kemudian menyesuaikan salinan pengklasifikasi tersebut ke dataset yang sama. Metode ini berfokus pada bobot item yang diklasifikasikan secara salah dan menyesuaikan fit untuk pengklasifikasi berikutnya untuk memperbaiki.
+
+---
+
+## 🚀Tantangan
+
+Setiap teknik ini memiliki sejumlah besar parameter yang dapat Anda sesuaikan. Teliti parameter default masing-masing dan pikirkan apa arti penyesuaian parameter ini untuk kualitas model.
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Ada banyak istilah teknis dalam pelajaran ini, jadi luangkan waktu untuk meninjau [daftar ini](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) istilah yang berguna!
+
+## Tugas
+
+[Parameter play](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/3-Classifiers-2/assignment.md b/translations/id/4-Classification/3-Classifiers-2/assignment.md
new file mode 100644
index 00000000..676fc4c9
--- /dev/null
+++ b/translations/id/4-Classification/3-Classifiers-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Parameter Play
+
+## Instruksi
+
+Ada banyak parameter yang diatur secara default saat bekerja dengan classifier ini. Intellisense di VS Code dapat membantu Anda menggali lebih dalam. Gunakan salah satu Teknik Klasifikasi ML dalam pelajaran ini dan latih ulang model dengan mengubah berbagai nilai parameter. Buat notebook yang menjelaskan mengapa beberapa perubahan meningkatkan kualitas model sementara yang lain menurunkannya. Jelaskan secara rinci dalam jawaban Anda.
+
+## Rubrik
+
+| Kriteria | Luar Biasa | Memadai | Perlu Peningkatan |
+| -------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------- |
+| | Notebook disajikan dengan classifier yang sepenuhnya dibangun dan parameternya diubah serta perubahan dijelaskan dalam kotak teks | Notebook disajikan sebagian atau penjelasannya kurang baik | Notebook memiliki bug atau cacat |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/3-Classifiers-2/solution/Julia/README.md b/translations/id/4-Classification/3-Classifiers-2/solution/Julia/README.md
new file mode 100644
index 00000000..f3cee7cc
--- /dev/null
+++ b/translations/id/4-Classification/3-Classifiers-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/4-Applied/README.md b/translations/id/4-Classification/4-Applied/README.md
new file mode 100644
index 00000000..01c0be2b
--- /dev/null
+++ b/translations/id/4-Classification/4-Applied/README.md
@@ -0,0 +1,329 @@
+
+# Membangun Aplikasi Web Rekomendasi Masakan
+
+Dalam pelajaran ini, Anda akan membangun model klasifikasi menggunakan beberapa teknik yang telah Anda pelajari di pelajaran sebelumnya dan dengan dataset masakan lezat yang digunakan sepanjang seri ini. Selain itu, Anda akan membuat aplikasi web kecil untuk menggunakan model yang telah disimpan, memanfaatkan runtime web Onnx.
+
+Salah satu penggunaan praktis yang paling berguna dari pembelajaran mesin adalah membangun sistem rekomendasi, dan Anda dapat mengambil langkah pertama ke arah itu hari ini!
+
+[](https://youtu.be/17wdM9AHMfg "Applied ML")
+
+> 🎥 Klik gambar di atas untuk video: Jen Looper membangun aplikasi web menggunakan data masakan yang telah diklasifikasi
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+Dalam pelajaran ini Anda akan belajar:
+
+- Cara membangun model dan menyimpannya sebagai model Onnx
+- Cara menggunakan Netron untuk memeriksa model
+- Cara menggunakan model Anda dalam aplikasi web untuk inferensi
+
+## Bangun model Anda
+
+Membangun sistem pembelajaran mesin terapan adalah bagian penting dari memanfaatkan teknologi ini untuk sistem bisnis Anda. Anda dapat menggunakan model dalam aplikasi web Anda (dan dengan demikian menggunakannya dalam konteks offline jika diperlukan) dengan menggunakan Onnx.
+
+Dalam [pelajaran sebelumnya](../../3-Web-App/1-Web-App/README.md), Anda membangun model Regresi tentang penampakan UFO, "pickled" model tersebut, dan menggunakannya dalam aplikasi Flask. Meskipun arsitektur ini sangat berguna untuk diketahui, ini adalah aplikasi Python full-stack, dan kebutuhan Anda mungkin mencakup penggunaan aplikasi JavaScript.
+
+Dalam pelajaran ini, Anda dapat membangun sistem berbasis JavaScript sederhana untuk inferensi. Namun, pertama-tama Anda perlu melatih model dan mengonversinya untuk digunakan dengan Onnx.
+
+## Latihan - latih model klasifikasi
+
+Pertama, latih model klasifikasi menggunakan dataset masakan yang telah dibersihkan yang kita gunakan sebelumnya.
+
+1. Mulailah dengan mengimpor pustaka yang berguna:
+
+ ```python
+ !pip install skl2onnx
+ import pandas as pd
+ ```
+
+ Anda memerlukan '[skl2onnx](https://onnx.ai/sklearn-onnx/)' untuk membantu mengonversi model Scikit-learn Anda ke format Onnx.
+
+1. Kemudian, olah data Anda dengan cara yang sama seperti yang Anda lakukan di pelajaran sebelumnya, dengan membaca file CSV menggunakan `read_csv()`:
+
+ ```python
+ data = pd.read_csv('../data/cleaned_cuisines.csv')
+ data.head()
+ ```
+
+1. Hapus dua kolom pertama yang tidak diperlukan dan simpan data yang tersisa sebagai 'X':
+
+ ```python
+ X = data.iloc[:,2:]
+ X.head()
+ ```
+
+1. Simpan label sebagai 'y':
+
+ ```python
+ y = data[['cuisine']]
+ y.head()
+
+ ```
+
+### Mulai rutinitas pelatihan
+
+Kami akan menggunakan pustaka 'SVC' yang memiliki akurasi yang baik.
+
+1. Impor pustaka yang sesuai dari 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. Pisahkan set pelatihan dan pengujian:
+
+ ```python
+ X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
+ ```
+
+1. Bangun model Klasifikasi SVC seperti yang Anda lakukan di pelajaran sebelumnya:
+
+ ```python
+ model = SVC(kernel='linear', C=10, probability=True,random_state=0)
+ model.fit(X_train,y_train.values.ravel())
+ ```
+
+1. Sekarang, uji model Anda dengan memanggil `predict()`:
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+1. Cetak laporan klasifikasi untuk memeriksa kualitas model:
+
+ ```python
+ print(classification_report(y_test,y_pred))
+ ```
+
+ Seperti yang kita lihat sebelumnya, akurasinya baik:
+
+ ```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
+ ```
+
+### Konversi model Anda ke Onnx
+
+Pastikan untuk melakukan konversi dengan jumlah Tensor yang tepat. Dataset ini memiliki 380 bahan yang terdaftar, jadi Anda perlu mencatat jumlah tersebut dalam `FloatTensorType`:
+
+1. Konversi menggunakan jumlah tensor 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. Buat file onx dan simpan sebagai **model.onnx**:
+
+ ```python
+ onx = convert_sklearn(model, initial_types=initial_type, options=options)
+ with open("./model.onnx", "wb") as f:
+ f.write(onx.SerializeToString())
+ ```
+
+ > Catatan, Anda dapat memasukkan [opsi](https://onnx.ai/sklearn-onnx/parameterized.html) dalam skrip konversi Anda. Dalam kasus ini, kami memasukkan 'nocl' sebagai True dan 'zipmap' sebagai False. Karena ini adalah model klasifikasi, Anda memiliki opsi untuk menghapus ZipMap yang menghasilkan daftar kamus (tidak diperlukan). `nocl` mengacu pada informasi kelas yang disertakan dalam model. Kurangi ukuran model Anda dengan mengatur `nocl` ke 'True'.
+
+Menjalankan seluruh notebook sekarang akan membangun model Onnx dan menyimpannya ke folder ini.
+
+## Lihat model Anda
+
+Model Onnx tidak terlalu terlihat di Visual Studio Code, tetapi ada perangkat lunak gratis yang sangat baik yang banyak digunakan oleh peneliti untuk memvisualisasikan model guna memastikan bahwa model tersebut dibangun dengan benar. Unduh [Netron](https://github.com/lutzroeder/Netron) dan buka file model.onnx Anda. Anda dapat melihat model sederhana Anda yang divisualisasikan, dengan 380 input dan classifier yang terdaftar:
+
+
+
+Netron adalah alat yang berguna untuk melihat model Anda.
+
+Sekarang Anda siap menggunakan model keren ini dalam aplikasi web. Mari kita bangun aplikasi yang akan berguna ketika Anda melihat ke dalam lemari es Anda dan mencoba mencari tahu kombinasi bahan sisa mana yang dapat Anda gunakan untuk memasak masakan tertentu, seperti yang ditentukan oleh model Anda.
+
+## Bangun aplikasi web rekomendasi
+
+Anda dapat menggunakan model Anda langsung dalam aplikasi web. Arsitektur ini juga memungkinkan Anda menjalankannya secara lokal dan bahkan offline jika diperlukan. Mulailah dengan membuat file `index.html` di folder yang sama tempat Anda menyimpan file `model.onnx`.
+
+1. Dalam file ini _index.html_, tambahkan markup berikut:
+
+ ```html
+
+
+
+ Cuisine Matcher
+
+
+ ...
+
+
+ ```
+
+1. Sekarang, bekerja di dalam tag `body`, tambahkan sedikit markup untuk menampilkan daftar kotak centang yang mencerminkan beberapa bahan:
+
+ ```html
+
Check your refrigerator. What can you create?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ```
+
+ Perhatikan bahwa setiap kotak centang diberi nilai. Ini mencerminkan indeks tempat bahan ditemukan sesuai dengan dataset. Apel, misalnya, dalam daftar alfabet ini, menempati kolom kelima, jadi nilainya adalah '4' karena kita mulai menghitung dari 0. Anda dapat berkonsultasi dengan [lembar kerja bahan](../../../../4-Classification/data/ingredient_indexes.csv) untuk menemukan indeks bahan tertentu.
+
+ Melanjutkan pekerjaan Anda di file index.html, tambahkan blok skrip tempat model dipanggil setelah penutupan akhir ``.
+
+1. Pertama, impor [Onnx Runtime](https://www.onnxruntime.ai/):
+
+ ```html
+
+ ```
+
+ > Onnx Runtime digunakan untuk memungkinkan menjalankan model Onnx Anda di berbagai platform perangkat keras, termasuk optimasi dan API untuk digunakan.
+
+1. Setelah Runtime tersedia, Anda dapat memanggilnya:
+
+ ```html
+
+ ```
+
+Dalam kode ini, ada beberapa hal yang terjadi:
+
+1. Anda membuat array dari 380 nilai yang mungkin (1 atau 0) untuk diatur dan dikirim ke model untuk inferensi, tergantung pada apakah kotak centang bahan dicentang.
+2. Anda membuat array kotak centang dan cara untuk menentukan apakah mereka dicentang dalam fungsi `init` yang dipanggil saat aplikasi dimulai. Ketika kotak centang dicentang, array `ingredients` diubah untuk mencerminkan bahan yang dipilih.
+3. Anda membuat fungsi `testCheckboxes` yang memeriksa apakah ada kotak centang yang dicentang.
+4. Anda menggunakan fungsi `startInference` saat tombol ditekan dan, jika ada kotak centang yang dicentang, Anda memulai inferensi.
+5. Rutinitas inferensi mencakup:
+ 1. Menyiapkan pemuatan asinkron model
+ 2. Membuat struktur Tensor untuk dikirim ke model
+ 3. Membuat 'feeds' yang mencerminkan input `float_input` yang Anda buat saat melatih model Anda (Anda dapat menggunakan Netron untuk memverifikasi nama tersebut)
+ 4. Mengirimkan 'feeds' ini ke model dan menunggu respons
+
+## Uji aplikasi Anda
+
+Buka sesi terminal di Visual Studio Code di folder tempat file index.html Anda berada. Pastikan Anda memiliki [http-server](https://www.npmjs.com/package/http-server) yang diinstal secara global, dan ketik `http-server` di prompt. Sebuah localhost akan terbuka dan Anda dapat melihat aplikasi web Anda. Periksa masakan apa yang direkomendasikan berdasarkan berbagai bahan:
+
+
+
+Selamat, Anda telah membuat aplikasi web 'rekomendasi' dengan beberapa bidang. Luangkan waktu untuk mengembangkan sistem ini!
+
+## 🚀Tantangan
+
+Aplikasi web Anda sangat minimal, jadi teruslah mengembangkannya menggunakan bahan dan indeksnya dari data [ingredient_indexes](../../../../4-Classification/data/ingredient_indexes.csv). Kombinasi rasa apa yang cocok untuk menciptakan hidangan nasional tertentu?
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Meskipun pelajaran ini hanya menyentuh kegunaan membuat sistem rekomendasi untuk bahan makanan, area aplikasi pembelajaran mesin ini sangat kaya dengan contoh. Bacalah lebih lanjut tentang bagaimana sistem ini dibangun:
+
+- 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/
+
+## Tugas
+
+[Bangun rekomendasi baru](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/4-Applied/assignment.md b/translations/id/4-Classification/4-Applied/assignment.md
new file mode 100644
index 00000000..9a884bb1
--- /dev/null
+++ b/translations/id/4-Classification/4-Applied/assignment.md
@@ -0,0 +1,25 @@
+
+# Membangun Sistem Rekomendasi
+
+## Instruksi
+
+Berdasarkan latihan-latihan dalam pelajaran ini, Anda sekarang tahu cara membangun aplikasi web berbasis JavaScript menggunakan Onnx Runtime dan model Onnx yang telah dikonversi. Cobalah untuk membuat sistem rekomendasi baru menggunakan data dari pelajaran ini atau sumber lain (harap berikan kredit). Anda bisa membuat rekomendasi hewan peliharaan berdasarkan berbagai atribut kepribadian, atau rekomendasi genre musik berdasarkan suasana hati seseorang. Jadilah kreatif!
+
+## Rubrik
+
+| Kriteria | Luar Biasa | Memadai | Perlu Peningkatan |
+| -------- | ---------------------------------------------------------------------- | ------------------------------------- | --------------------------------- |
+| | Aplikasi web dan notebook disajikan, keduanya terdokumentasi dengan baik dan berjalan | Salah satu dari keduanya hilang atau memiliki kekurangan | Keduanya hilang atau memiliki kekurangan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/4-Classification/README.md b/translations/id/4-Classification/README.md
new file mode 100644
index 00000000..d2065848
--- /dev/null
+++ b/translations/id/4-Classification/README.md
@@ -0,0 +1,41 @@
+
+# Memulai dengan klasifikasi
+
+## Topik regional: Masakan Asia dan India yang Lezat 🍜
+
+Di Asia dan India, tradisi kuliner sangat beragam dan sangat lezat! Mari kita lihat data tentang masakan regional untuk mencoba memahami bahan-bahannya.
+
+
+> Foto oleh Lisheng Chang di Unsplash
+
+## Apa yang akan Anda pelajari
+
+Di bagian ini, Anda akan melanjutkan studi sebelumnya tentang Regresi dan mempelajari tentang pengklasifikasi lain yang dapat Anda gunakan untuk lebih memahami data.
+
+> Ada alat low-code yang berguna yang dapat membantu Anda mempelajari cara bekerja dengan model klasifikasi. Coba [Azure ML untuk tugas ini](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Pelajaran
+
+1. [Pengantar klasifikasi](1-Introduction/README.md)
+2. [Pengklasifikasi lainnya](2-Classifiers-1/README.md)
+3. [Pengklasifikasi tambahan](3-Classifiers-2/README.md)
+4. [ML terapan: membangun aplikasi web](4-Applied/README.md)
+
+## Kredit
+
+"Memulai dengan klasifikasi" ditulis dengan ♥️ oleh [Cassie Breviu](https://www.twitter.com/cassiebreviu) dan [Jen Looper](https://www.twitter.com/jenlooper)
+
+Dataset masakan lezat bersumber dari [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines).
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/5-Clustering/1-Visualize/README.md b/translations/id/5-Clustering/1-Visualize/README.md
new file mode 100644
index 00000000..53bff9c2
--- /dev/null
+++ b/translations/id/5-Clustering/1-Visualize/README.md
@@ -0,0 +1,347 @@
+
+# Pengantar clustering
+
+Clustering adalah jenis [Pembelajaran Tanpa Pengawasan](https://wikipedia.org/wiki/Unsupervised_learning) yang mengasumsikan bahwa dataset tidak memiliki label atau inputnya tidak dipasangkan dengan output yang telah ditentukan sebelumnya. Clustering menggunakan berbagai algoritma untuk memilah data yang tidak berlabel dan memberikan pengelompokan berdasarkan pola yang ditemukan dalam data tersebut.
+
+[](https://youtu.be/ty2advRiWJM "No One Like You oleh PSquare")
+
+> 🎥 Klik gambar di atas untuk menonton video. Sambil mempelajari machine learning dengan clustering, nikmati beberapa lagu Dance Hall Nigeria - ini adalah lagu yang sangat populer dari tahun 2014 oleh PSquare.
+
+## [Kuis sebelum kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+### Pengantar
+
+[Clustering](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) sangat berguna untuk eksplorasi data. Mari kita lihat apakah clustering dapat membantu menemukan tren dan pola dalam cara audiens Nigeria mengonsumsi musik.
+
+✅ Luangkan waktu sejenak untuk memikirkan kegunaan clustering. Dalam kehidupan sehari-hari, clustering terjadi setiap kali Anda memiliki tumpukan cucian dan perlu memilah pakaian anggota keluarga 🧦👕👖🩲. Dalam data science, clustering terjadi saat mencoba menganalisis preferensi pengguna, atau menentukan karakteristik dari dataset yang tidak berlabel. Clustering, dalam beberapa hal, membantu memahami kekacauan, seperti laci kaus kaki.
+
+[](https://youtu.be/esmzYhuFnds "Pengantar Clustering")
+
+> 🎥 Klik gambar di atas untuk menonton video: John Guttag dari MIT memperkenalkan clustering.
+
+Dalam lingkungan profesional, clustering dapat digunakan untuk menentukan hal-hal seperti segmentasi pasar, misalnya menentukan kelompok usia mana yang membeli barang tertentu. Penggunaan lainnya adalah deteksi anomali, mungkin untuk mendeteksi penipuan dari dataset transaksi kartu kredit. Atau Anda mungkin menggunakan clustering untuk menentukan tumor dalam kumpulan pemindaian medis.
+
+✅ Luangkan waktu sejenak untuk memikirkan bagaimana Anda mungkin pernah menemui clustering 'di dunia nyata', dalam konteks perbankan, e-commerce, atau bisnis.
+
+> 🎓 Menariknya, analisis cluster berasal dari bidang Antropologi dan Psikologi pada tahun 1930-an. Bisakah Anda membayangkan bagaimana ini mungkin digunakan?
+
+Sebagai alternatif, Anda dapat menggunakannya untuk mengelompokkan hasil pencarian - misalnya berdasarkan tautan belanja, gambar, atau ulasan. Clustering berguna ketika Anda memiliki dataset besar yang ingin Anda kurangi dan analisis lebih mendalam, sehingga teknik ini dapat digunakan untuk mempelajari data sebelum model lain dibangun.
+
+✅ Setelah data Anda diorganisasi dalam cluster, Anda memberikan ID cluster, dan teknik ini dapat berguna untuk menjaga privasi dataset; Anda dapat merujuk pada titik data dengan ID cluster-nya, daripada dengan data yang lebih mengungkapkan. Bisakah Anda memikirkan alasan lain mengapa Anda merujuk pada ID cluster daripada elemen lain dari cluster untuk mengidentifikasinya?
+
+Perdalam pemahaman Anda tentang teknik clustering dalam [modul pembelajaran ini](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott).
+
+## Memulai dengan clustering
+
+[Scikit-learn menawarkan berbagai metode](https://scikit-learn.org/stable/modules/clustering.html) untuk melakukan clustering. Jenis yang Anda pilih akan bergantung pada kasus penggunaan Anda. Menurut dokumentasi, setiap metode memiliki berbagai manfaat. Berikut adalah tabel sederhana dari metode yang didukung oleh Scikit-learn dan kasus penggunaannya yang sesuai:
+
+| Nama metode | Kasus penggunaan |
+| :-------------------------- | :-------------------------------------------------------------------- |
+| K-Means | tujuan umum, induktif |
+| Affinity propagation | banyak, cluster tidak merata, induktif |
+| Mean-shift | banyak, cluster tidak merata, induktif |
+| Spectral clustering | sedikit, cluster merata, transduktif |
+| Ward hierarchical clustering| banyak, cluster terbatas, transduktif |
+| Agglomerative clustering | banyak, terbatas, jarak non-Euclidean, transduktif |
+| DBSCAN | geometri tidak datar, cluster tidak merata, transduktif |
+| OPTICS | geometri tidak datar, cluster tidak merata dengan kepadatan variabel, transduktif |
+| Gaussian mixtures | geometri datar, induktif |
+| BIRCH | dataset besar dengan outlier, induktif |
+
+> 🎓 Cara kita membuat cluster sangat berkaitan dengan cara kita mengelompokkan titik data ke dalam grup. Mari kita bahas beberapa istilah:
+>
+> 🎓 ['Transduktif' vs. 'Induktif'](https://wikipedia.org/wiki/Transduction_(machine_learning))
+>
+> Inferensi transduktif berasal dari kasus pelatihan yang diamati yang dipetakan ke kasus uji tertentu. Inferensi induktif berasal dari kasus pelatihan yang dipetakan ke aturan umum yang kemudian diterapkan pada kasus uji.
+>
+> Contoh: Bayangkan Anda memiliki dataset yang hanya sebagian berlabel. Beberapa hal adalah 'rekaman', beberapa 'CD', dan beberapa kosong. Tugas Anda adalah memberikan label untuk yang kosong. Jika Anda memilih pendekatan induktif, Anda akan melatih model untuk mencari 'rekaman' dan 'CD', dan menerapkan label tersebut pada data yang tidak berlabel. Pendekatan ini akan kesulitan mengklasifikasikan hal-hal yang sebenarnya adalah 'kaset'. Pendekatan transduktif, di sisi lain, menangani data yang tidak diketahui ini lebih efektif karena bekerja untuk mengelompokkan item serupa bersama-sama dan kemudian menerapkan label ke grup. Dalam kasus ini, cluster mungkin mencerminkan 'benda musik bulat' dan 'benda musik persegi'.
+>
+> 🎓 ['Geometri tidak datar' vs. 'datar'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
+>
+> Berasal dari terminologi matematika, geometri tidak datar vs. datar mengacu pada pengukuran jarak antara titik-titik dengan metode geometris 'datar' ([Euclidean](https://wikipedia.org/wiki/Euclidean_geometry)) atau 'tidak datar' (non-Euclidean).
+>
+>'Datar' dalam konteks ini mengacu pada geometri Euclidean (bagian dari geometri ini diajarkan sebagai geometri 'bidang'), dan tidak datar mengacu pada geometri non-Euclidean. Apa hubungannya geometri dengan machine learning? Nah, sebagai dua bidang yang berakar pada matematika, harus ada cara umum untuk mengukur jarak antara titik-titik dalam cluster, dan itu dapat dilakukan dengan cara 'datar' atau 'tidak datar', tergantung pada sifat data. [Jarak Euclidean](https://wikipedia.org/wiki/Euclidean_distance) diukur sebagai panjang segmen garis antara dua titik. [Jarak non-Euclidean](https://wikipedia.org/wiki/Non-Euclidean_geometry) diukur sepanjang kurva. Jika data Anda, saat divisualisasikan, tampaknya tidak ada di bidang, Anda mungkin perlu menggunakan algoritma khusus untuk menanganinya.
+>
+
+> Infografis oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+>
+> 🎓 ['Jarak'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
+>
+> Cluster didefinisikan oleh matriks jaraknya, misalnya jarak antara titik-titik. Jarak ini dapat diukur dengan beberapa cara. Cluster Euclidean didefinisikan oleh rata-rata nilai titik, dan memiliki 'centroid' atau titik pusat. Jarak diukur berdasarkan jarak ke centroid tersebut. Jarak non-Euclidean mengacu pada 'clustroid', titik yang paling dekat dengan titik lainnya. Clustroid pada gilirannya dapat didefinisikan dengan berbagai cara.
+>
+> 🎓 ['Terbatas'](https://wikipedia.org/wiki/Constrained_clustering)
+>
+> [Clustering Terbatas](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) memperkenalkan pembelajaran 'semi-terawasi' ke dalam metode tanpa pengawasan ini. Hubungan antara titik-titik ditandai sebagai 'tidak boleh terhubung' atau 'harus terhubung' sehingga beberapa aturan dipaksakan pada dataset.
+>
+>Contoh: Jika algoritma dibiarkan bebas pada kumpulan data yang tidak berlabel atau semi-berlabel, cluster yang dihasilkannya mungkin berkualitas buruk. Dalam contoh di atas, cluster mungkin mengelompokkan 'benda musik bulat' dan 'benda musik persegi' dan 'benda segitiga' dan 'kue'. Jika diberikan beberapa batasan, atau aturan untuk diikuti ("item harus terbuat dari plastik", "item harus dapat menghasilkan musik") ini dapat membantu 'membatasi' algoritma untuk membuat pilihan yang lebih baik.
+>
+> 🎓 'Kepadatan'
+>
+> Data yang 'berisik' dianggap 'padat'. Jarak antara titik-titik dalam setiap cluster-nya mungkin, setelah diperiksa, lebih atau kurang padat, atau 'ramai' dan dengan demikian data ini perlu dianalisis dengan metode clustering yang sesuai. [Artikel ini](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) menunjukkan perbedaan antara menggunakan algoritma K-Means clustering vs. HDBSCAN untuk mengeksplorasi dataset yang berisik dengan kepadatan cluster yang tidak merata.
+
+## Algoritma clustering
+
+Ada lebih dari 100 algoritma clustering, dan penggunaannya bergantung pada sifat data yang ada. Mari kita bahas beberapa yang utama:
+
+- **Clustering hierarkis**. Jika sebuah objek diklasifikasikan berdasarkan kedekatannya dengan objek terdekat, bukan dengan yang lebih jauh, cluster terbentuk berdasarkan jarak anggotanya ke dan dari objek lain. Agglomerative clustering dari Scikit-learn bersifat hierarkis.
+
+ 
+ > Infografis oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Clustering centroid**. Algoritma populer ini membutuhkan pilihan 'k', atau jumlah cluster yang akan dibentuk, setelah itu algoritma menentukan titik pusat cluster dan mengumpulkan data di sekitar titik tersebut. [K-means clustering](https://wikipedia.org/wiki/K-means_clustering) adalah versi clustering centroid yang populer. Pusat ditentukan oleh rata-rata terdekat, sehingga dinamakan demikian. Jarak kuadrat dari cluster diminimalkan.
+
+ 
+ > Infografis oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+- **Clustering berbasis distribusi**. Berdasarkan pemodelan statistik, clustering berbasis distribusi berpusat pada menentukan probabilitas bahwa suatu titik data termasuk dalam cluster, dan menetapkannya sesuai. Metode campuran Gaussian termasuk dalam jenis ini.
+
+- **Clustering berbasis kepadatan**. Titik data ditetapkan ke cluster berdasarkan kepadatannya, atau pengelompokannya di sekitar satu sama lain. Titik data yang jauh dari grup dianggap sebagai outlier atau noise. DBSCAN, Mean-shift, dan OPTICS termasuk dalam jenis clustering ini.
+
+- **Clustering berbasis grid**. Untuk dataset multi-dimensi, grid dibuat dan data dibagi di antara sel grid, sehingga membentuk cluster.
+
+## Latihan - cluster data Anda
+
+Clustering sebagai teknik sangat terbantu oleh visualisasi yang tepat, jadi mari kita mulai dengan memvisualisasikan data musik kita. Latihan ini akan membantu kita memutuskan metode clustering mana yang paling efektif digunakan untuk sifat data ini.
+
+1. Buka file [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) di folder ini.
+
+1. Impor paket `Seaborn` untuk visualisasi data yang baik.
+
+ ```python
+ !pip install seaborn
+ ```
+
+1. Tambahkan data lagu dari [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Muat dataframe dengan beberapa data tentang lagu-lagu tersebut. Bersiaplah untuk mengeksplorasi data ini dengan mengimpor pustaka dan mencetak data:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import pandas as pd
+
+ df = pd.read_csv("../data/nigerian-songs.csv")
+ df.head()
+ ```
+
+ Periksa beberapa baris pertama data:
+
+ | | 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. Dapatkan informasi tentang dataframe dengan memanggil `info()`:
+
+ ```python
+ df.info()
+ ```
+
+ Outputnya terlihat seperti ini:
+
+ ```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. Periksa ulang apakah ada nilai kosong dengan memanggil `isnull()` dan memastikan jumlahnya adalah 0:
+
+ ```python
+ df.isnull().sum()
+ ```
+
+ Terlihat baik:
+
+ ```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. Deskripsikan 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 |
+
+> 🤔 Jika kita bekerja dengan clustering, metode tanpa pengawasan yang tidak memerlukan data berlabel, mengapa kita menunjukkan data ini dengan label? Pada fase eksplorasi data, label berguna, tetapi tidak diperlukan agar algoritma clustering dapat bekerja. Anda juga bisa menghapus header kolom dan merujuk data berdasarkan nomor kolom.
+
+Lihat nilai umum dari data. Perhatikan bahwa popularitas bisa bernilai '0', yang menunjukkan lagu-lagu yang tidak memiliki peringkat. Mari kita hapus nilai-nilai tersebut sebentar lagi.
+
+1. Gunakan barplot untuk mengetahui genre yang paling populer:
+
+ ```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')
+ ```
+
+ 
+
+✅ Jika Anda ingin melihat lebih banyak nilai teratas, ubah `[:5]` menjadi nilai yang lebih besar, atau hapus untuk melihat semuanya.
+
+Catatan, ketika genre teratas dijelaskan sebagai 'Missing', itu berarti Spotify tidak mengklasifikasikannya, jadi mari kita hilangkan.
+
+1. Hilangkan data yang hilang dengan memfilternya:
+
+ ```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')
+ ```
+
+ Sekarang periksa ulang genre:
+
+ 
+
+1. Tiga genre teratas mendominasi dataset ini. Mari kita fokus pada `afro dancehall`, `afropop`, dan `nigerian pop`, serta memfilter dataset untuk menghapus apa pun dengan nilai popularitas 0 (yang berarti tidak diklasifikasikan dengan popularitas dalam dataset dan dapat dianggap sebagai noise untuk tujuan kita):
+
+ ```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. Lakukan tes cepat untuk melihat apakah data berkorelasi dengan cara yang sangat kuat:
+
+ ```python
+ corrmat = df.corr(numeric_only=True)
+ f, ax = plt.subplots(figsize=(12, 9))
+ sns.heatmap(corrmat, vmax=.8, square=True)
+ ```
+
+ 
+
+ Satu-satunya korelasi kuat adalah antara `energy` dan `loudness`, yang tidak terlalu mengejutkan, mengingat musik yang keras biasanya cukup energik. Selain itu, korelasi relatif lemah. Akan menarik untuk melihat apa yang dapat dilakukan algoritma clustering terhadap data ini.
+
+ > 🎓 Perhatikan bahwa korelasi tidak menyiratkan sebab-akibat! Kita memiliki bukti korelasi tetapi tidak memiliki bukti sebab-akibat. [Sebuah situs web yang menghibur](https://tylervigen.com/spurious-correlations) memiliki beberapa visual yang menekankan poin ini.
+
+Apakah ada konvergensi dalam dataset ini terkait popularitas lagu yang dirasakan dan danceability? Sebuah FacetGrid menunjukkan bahwa ada lingkaran konsentris yang sejajar, terlepas dari genre. Mungkinkah selera Nigeria berkumpul pada tingkat danceability tertentu untuk genre ini?
+
+✅ Coba titik data yang berbeda (energy, loudness, speechiness) dan lebih banyak atau genre musik yang berbeda. Apa yang dapat Anda temukan? Lihat tabel `df.describe()` untuk melihat penyebaran umum dari titik data.
+
+### Latihan - distribusi data
+
+Apakah ketiga genre ini berbeda secara signifikan dalam persepsi danceability mereka, berdasarkan popularitas?
+
+1. Periksa distribusi data dari tiga genre teratas kita untuk popularitas dan danceability di sepanjang sumbu x dan y tertentu.
+
+ ```python
+ sns.set_theme(style="ticks")
+
+ g = sns.jointplot(
+ data=df,
+ x="popularity", y="danceability", hue="artist_top_genre",
+ kind="kde",
+ )
+ ```
+
+ Anda dapat menemukan lingkaran konsentris di sekitar titik konvergensi umum, menunjukkan distribusi titik.
+
+ > 🎓 Perhatikan bahwa contoh ini menggunakan grafik KDE (Kernel Density Estimate) yang mewakili data menggunakan kurva kepadatan probabilitas kontinu. Ini memungkinkan kita untuk menafsirkan data saat bekerja dengan beberapa distribusi.
+
+ Secara umum, ketiga genre ini sejajar secara longgar dalam hal popularitas dan danceability. Menentukan cluster dalam data yang sejajar secara longgar ini akan menjadi tantangan:
+
+ 
+
+1. Buat scatter plot:
+
+ ```python
+ sns.FacetGrid(df, hue="artist_top_genre", height=5) \
+ .map(plt.scatter, "popularity", "danceability") \
+ .add_legend()
+ ```
+
+ Scatterplot dari sumbu yang sama menunjukkan pola konvergensi yang serupa
+
+ 
+
+Secara umum, untuk clustering, Anda dapat menggunakan scatterplot untuk menunjukkan cluster data, jadi menguasai jenis visualisasi ini sangat berguna. Dalam pelajaran berikutnya, kita akan menggunakan data yang telah difilter ini dan menggunakan clustering k-means untuk menemukan grup dalam data ini yang tampaknya tumpang tindih dengan cara yang menarik.
+
+---
+
+## 🚀Tantangan
+
+Sebagai persiapan untuk pelajaran berikutnya, buatlah diagram tentang berbagai algoritma clustering yang mungkin Anda temukan dan gunakan dalam lingkungan produksi. Masalah apa yang coba diatasi oleh clustering?
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Sebelum Anda menerapkan algoritma clustering, seperti yang telah kita pelajari, ada baiknya memahami sifat dataset Anda. Baca lebih lanjut tentang topik ini [di sini](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
+
+[Artikel yang bermanfaat ini](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) menjelaskan berbagai cara algoritma clustering berperilaku, mengingat bentuk data yang berbeda.
+
+## Tugas
+
+[Teliti visualisasi lain untuk clustering](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/5-Clustering/1-Visualize/assignment.md b/translations/id/5-Clustering/1-Visualize/assignment.md
new file mode 100644
index 00000000..7a6c3427
--- /dev/null
+++ b/translations/id/5-Clustering/1-Visualize/assignment.md
@@ -0,0 +1,25 @@
+
+# Penelitian visualisasi lain untuk clustering
+
+## Instruksi
+
+Dalam pelajaran ini, Anda telah mempelajari beberapa teknik visualisasi untuk memahami cara memplot data Anda sebagai persiapan untuk clustering. Scatterplot, khususnya, sangat berguna untuk menemukan kelompok objek. Teliti berbagai cara dan pustaka yang berbeda untuk membuat scatterplot dan dokumentasikan pekerjaan Anda dalam sebuah notebook. Anda dapat menggunakan data dari pelajaran ini, pelajaran lainnya, atau data yang Anda temukan sendiri (namun, harap cantumkan sumbernya di notebook Anda). Plot beberapa data menggunakan scatterplot dan jelaskan apa yang Anda temukan.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------- |
+| | Sebuah notebook disajikan dengan lima scatterplot yang terdokumentasi dengan baik | Sebuah notebook disajikan dengan kurang dari lima scatterplot dan dokumentasinya kurang baik | Sebuah notebook yang tidak lengkap disajikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/5-Clustering/1-Visualize/solution/Julia/README.md b/translations/id/5-Clustering/1-Visualize/solution/Julia/README.md
new file mode 100644
index 00000000..7a453c67
--- /dev/null
+++ b/translations/id/5-Clustering/1-Visualize/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/5-Clustering/2-K-Means/README.md b/translations/id/5-Clustering/2-K-Means/README.md
new file mode 100644
index 00000000..05807a74
--- /dev/null
+++ b/translations/id/5-Clustering/2-K-Means/README.md
@@ -0,0 +1,261 @@
+
+# K-Means clustering
+
+## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
+
+Dalam pelajaran ini, Anda akan belajar cara membuat klaster menggunakan Scikit-learn dan dataset musik Nigeria yang telah Anda impor sebelumnya. Kita akan membahas dasar-dasar K-Means untuk Klasterisasi. Ingatlah bahwa, seperti yang Anda pelajari di pelajaran sebelumnya, ada banyak cara untuk bekerja dengan klaster, dan metode yang Anda gunakan bergantung pada data Anda. Kita akan mencoba K-Means karena ini adalah teknik klasterisasi yang paling umum. Mari kita mulai!
+
+Istilah yang akan Anda pelajari:
+
+- Skor Silhouette
+- Metode Elbow
+- Inersia
+- Variansi
+
+## Pengantar
+
+[K-Means Clustering](https://wikipedia.org/wiki/K-means_clustering) adalah metode yang berasal dari domain pemrosesan sinyal. Metode ini digunakan untuk membagi dan mengelompokkan data ke dalam 'k' klaster menggunakan serangkaian observasi. Setiap observasi bekerja untuk mengelompokkan titik data tertentu ke 'mean' terdekatnya, atau titik pusat dari sebuah klaster.
+
+Klaster dapat divisualisasikan sebagai [diagram Voronoi](https://wikipedia.org/wiki/Voronoi_diagram), yang mencakup sebuah titik (atau 'seed') dan wilayah yang sesuai dengannya.
+
+
+
+> Infografik oleh [Jen Looper](https://twitter.com/jenlooper)
+
+Proses klasterisasi K-Means [dijalankan dalam tiga langkah](https://scikit-learn.org/stable/modules/clustering.html#k-means):
+
+1. Algoritma memilih sejumlah titik pusat (k) dengan mengambil sampel dari dataset. Setelah itu, algoritma akan berulang:
+ 1. Menugaskan setiap sampel ke centroid terdekat.
+ 2. Membuat centroid baru dengan mengambil nilai rata-rata dari semua sampel yang ditugaskan ke centroid sebelumnya.
+ 3. Kemudian, menghitung perbedaan antara centroid baru dan lama, dan mengulangi hingga centroid stabil.
+
+Salah satu kelemahan menggunakan K-Means adalah Anda perlu menentukan 'k', yaitu jumlah centroid. Untungnya, 'metode elbow' membantu memperkirakan nilai awal yang baik untuk 'k'. Anda akan mencobanya sebentar lagi.
+
+## Prasyarat
+
+Anda akan bekerja di file [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb) pelajaran ini yang mencakup impor data dan pembersihan awal yang Anda lakukan di pelajaran sebelumnya.
+
+## Latihan - persiapan
+
+Mulailah dengan melihat kembali data lagu.
+
+1. Buat boxplot dengan memanggil `boxplot()` untuk setiap kolom:
+
+ ```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 ini cukup berisik: dengan mengamati setiap kolom sebagai boxplot, Anda dapat melihat outlier.
+
+ 
+
+Anda bisa menelusuri dataset dan menghapus outlier ini, tetapi itu akan membuat data menjadi sangat minimal.
+
+1. Untuk saat ini, pilih kolom mana yang akan Anda gunakan untuk latihan klasterisasi. Pilih kolom dengan rentang yang serupa dan encode kolom `artist_top_genre` sebagai data numerik:
+
+ ```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. Sekarang Anda perlu memilih berapa banyak klaster yang akan ditargetkan. Anda tahu ada 3 genre lagu yang kita ambil dari dataset, jadi mari kita coba 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
+ ```
+
+Anda akan melihat array yang dicetak dengan klaster yang diprediksi (0, 1, atau 2) untuk setiap baris dalam dataframe.
+
+1. Gunakan array ini untuk menghitung 'skor silhouette':
+
+ ```python
+ from sklearn import metrics
+ score = metrics.silhouette_score(X, y_cluster_kmeans)
+ score
+ ```
+
+## Skor Silhouette
+
+Carilah skor silhouette yang mendekati 1. Skor ini bervariasi dari -1 hingga 1, dan jika skornya 1, klaster tersebut padat dan terpisah dengan baik dari klaster lainnya. Nilai mendekati 0 menunjukkan klaster yang saling tumpang tindih dengan sampel yang sangat dekat dengan batas keputusan klaster tetangga. [(Sumber)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
+
+Skor kita adalah **0.53**, jadi berada di tengah-tengah. Ini menunjukkan bahwa data kita tidak terlalu cocok untuk jenis klasterisasi ini, tetapi mari kita lanjutkan.
+
+### Latihan - membangun model
+
+1. Impor `KMeans` dan mulai proses klasterisasi.
+
+ ```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_)
+
+ ```
+
+ Ada beberapa bagian di sini yang perlu dijelaskan.
+
+ > 🎓 range: Ini adalah iterasi dari proses klasterisasi.
+
+ > 🎓 random_state: "Menentukan pengacakan angka untuk inisialisasi centroid." [Sumber](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
+
+ > 🎓 WCSS: "jumlah kuadrat dalam klaster" mengukur jarak rata-rata kuadrat dari semua titik dalam klaster ke centroid klaster. [Sumber](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
+
+ > 🎓 Inersia: Algoritma K-Means mencoba memilih centroid untuk meminimalkan 'inersia', "ukuran seberapa koheren klaster secara internal." [Sumber](https://scikit-learn.org/stable/modules/clustering.html). Nilai ini ditambahkan ke variabel wcss pada setiap iterasi.
+
+ > 🎓 k-means++: Dalam [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means), Anda dapat menggunakan optimasi 'k-means++', yang "menginisialisasi centroid agar (umumnya) berjauhan satu sama lain, menghasilkan hasil yang mungkin lebih baik daripada inisialisasi acak."
+
+### Metode Elbow
+
+Sebelumnya, Anda menyimpulkan bahwa karena Anda menargetkan 3 genre lagu, Anda harus memilih 3 klaster. Tetapi apakah itu benar?
+
+1. Gunakan 'metode elbow' untuk memastikan.
+
+ ```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()
+ ```
+
+ Gunakan variabel `wcss` yang Anda bangun di langkah sebelumnya untuk membuat grafik yang menunjukkan di mana 'tikungan' pada elbow berada, yang menunjukkan jumlah klaster yang optimal. Mungkin memang **3**!
+
+ 
+
+## Latihan - menampilkan klaster
+
+1. Coba prosesnya lagi, kali ini menetapkan tiga klaster, dan tampilkan klaster sebagai 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. Periksa akurasi model:
+
+ ```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)))
+ ```
+
+ Akurasi model ini tidak terlalu baik, dan bentuk klaster memberikan petunjuk mengapa.
+
+ 
+
+ Data ini terlalu tidak seimbang, terlalu sedikit berkorelasi, dan terdapat terlalu banyak variansi antara nilai kolom untuk dapat dikelompokkan dengan baik. Faktanya, klaster yang terbentuk mungkin sangat dipengaruhi atau bias oleh tiga kategori genre yang kita definisikan di atas. Itu adalah proses pembelajaran!
+
+ Dalam dokumentasi Scikit-learn, Anda dapat melihat bahwa model seperti ini, dengan klaster yang tidak terlalu terpisah dengan baik, memiliki masalah 'variansi':
+
+ 
+ > Infografik dari Scikit-learn
+
+## Variansi
+
+Variansi didefinisikan sebagai "rata-rata dari kuadrat perbedaan dari Mean" [(Sumber)](https://www.mathsisfun.com/data/standard-deviation.html). Dalam konteks masalah klasterisasi ini, variansi mengacu pada data di mana angka-angka dalam dataset cenderung menyimpang terlalu jauh dari mean.
+
+✅ Ini adalah momen yang tepat untuk memikirkan semua cara yang dapat Anda lakukan untuk memperbaiki masalah ini. Mengubah data sedikit lebih banyak? Menggunakan kolom yang berbeda? Menggunakan algoritma yang berbeda? Petunjuk: Cobalah [menskalakan data Anda](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) untuk menormalkannya dan menguji kolom lainnya.
+
+> Cobalah '[kalkulator variansi](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' untuk memahami konsep ini lebih lanjut.
+
+---
+
+## 🚀Tantangan
+
+Habiskan waktu dengan notebook ini, mengubah parameter. Bisakah Anda meningkatkan akurasi model dengan membersihkan data lebih banyak (misalnya, menghapus outlier)? Anda dapat menggunakan bobot untuk memberikan lebih banyak bobot pada sampel data tertentu. Apa lagi yang dapat Anda lakukan untuk membuat klaster yang lebih baik?
+
+Petunjuk: Cobalah menskalakan data Anda. Ada kode yang dikomentari di notebook yang menambahkan skala standar untuk membuat kolom data lebih mirip satu sama lain dalam hal rentang. Anda akan menemukan bahwa meskipun skor silhouette turun, 'tikungan' pada grafik elbow menjadi lebih halus. Hal ini terjadi karena membiarkan data tidak diskalakan memungkinkan data dengan variansi lebih kecil memiliki bobot lebih besar. Baca lebih lanjut tentang masalah ini [di sini](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/)
+
+## Tinjauan & Studi Mandiri
+
+Lihatlah Simulator K-Means [seperti ini](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). Anda dapat menggunakan alat ini untuk memvisualisasikan titik data sampel dan menentukan centroidnya. Anda dapat mengedit tingkat keacakan data, jumlah klaster, dan jumlah centroid. Apakah ini membantu Anda mendapatkan gambaran tentang bagaimana data dapat dikelompokkan?
+
+Selain itu, lihat [handout tentang K-Means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) dari Stanford.
+
+## Tugas
+
+[Cobalah metode klasterisasi yang berbeda](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/5-Clustering/2-K-Means/assignment.md b/translations/id/5-Clustering/2-K-Means/assignment.md
new file mode 100644
index 00000000..c33ab82d
--- /dev/null
+++ b/translations/id/5-Clustering/2-K-Means/assignment.md
@@ -0,0 +1,25 @@
+
+# Coba metode clustering yang berbeda
+
+## Instruksi
+
+Dalam pelajaran ini, Anda telah mempelajari tentang clustering K-Means. Kadang-kadang K-Means tidak cocok untuk data Anda. Buatlah notebook menggunakan data dari pelajaran ini atau dari sumber lain (cantumkan sumbernya) dan tunjukkan metode clustering yang berbeda TANPA menggunakan K-Means. Apa yang Anda pelajari?
+
+## Rubrik
+
+| Kriteria | Luar Biasa | Memadai | Perlu Peningkatan |
+| -------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------- |
+| | Notebook disajikan dengan model clustering yang terdokumentasi dengan baik | Notebook disajikan tanpa dokumentasi yang baik dan/atau tidak lengkap | Pekerjaan yang tidak lengkap diserahkan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/5-Clustering/2-K-Means/solution/Julia/README.md b/translations/id/5-Clustering/2-K-Means/solution/Julia/README.md
new file mode 100644
index 00000000..57a710b5
--- /dev/null
+++ b/translations/id/5-Clustering/2-K-Means/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/5-Clustering/README.md b/translations/id/5-Clustering/README.md
new file mode 100644
index 00000000..5016e58d
--- /dev/null
+++ b/translations/id/5-Clustering/README.md
@@ -0,0 +1,42 @@
+
+# Model Clustering untuk Pembelajaran Mesin
+
+Clustering adalah tugas pembelajaran mesin yang bertujuan untuk menemukan objek yang mirip satu sama lain dan mengelompokkannya ke dalam kelompok yang disebut cluster. Yang membedakan clustering dari pendekatan lain dalam pembelajaran mesin adalah bahwa prosesnya terjadi secara otomatis. Faktanya, bisa dikatakan bahwa ini adalah kebalikan dari pembelajaran terawasi.
+
+## Topik regional: model clustering untuk selera musik audiens Nigeria 🎧
+
+Audiens Nigeria yang beragam memiliki selera musik yang beragam pula. Dengan menggunakan data yang diambil dari Spotify (terinspirasi oleh [artikel ini](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)), mari kita lihat beberapa musik yang populer di Nigeria. Dataset ini mencakup data tentang skor 'danceability', 'acousticness', tingkat keras suara (loudness), 'speechiness', popularitas, dan energi dari berbagai lagu. Akan menarik untuk menemukan pola dalam data ini!
+
+
+
+> Foto oleh Marcela Laskoski di Unsplash
+
+Dalam rangkaian pelajaran ini, Anda akan menemukan cara baru untuk menganalisis data menggunakan teknik clustering. Clustering sangat berguna ketika dataset Anda tidak memiliki label. Jika dataset Anda memiliki label, maka teknik klasifikasi seperti yang telah Anda pelajari dalam pelajaran sebelumnya mungkin lebih berguna. Namun, dalam kasus di mana Anda ingin mengelompokkan data yang tidak berlabel, clustering adalah cara yang bagus untuk menemukan pola.
+
+> Ada alat low-code yang berguna untuk membantu Anda mempelajari cara bekerja dengan model clustering. Cobalah [Azure ML untuk tugas ini](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+
+## Pelajaran
+
+1. [Pengantar clustering](1-Visualize/README.md)
+2. [Clustering K-Means](2-K-Means/README.md)
+
+## Kredit
+
+Pelajaran ini ditulis dengan 🎶 oleh [Jen Looper](https://www.twitter.com/jenlooper) dengan ulasan yang bermanfaat dari [Rishit Dagli](https://rishit_dagli) dan [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan).
+
+Dataset [Lagu Nigeria](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) diambil dari Kaggle sebagai hasil scraping dari Spotify.
+
+Contoh K-Means yang berguna yang membantu dalam membuat pelajaran ini termasuk [eksplorasi iris](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), [notebook pengantar](https://www.kaggle.com/prashant111/k-means-clustering-with-python), dan [contoh hipotetis NGO](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering).
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/1-Introduction-to-NLP/README.md b/translations/id/6-NLP/1-Introduction-to-NLP/README.md
new file mode 100644
index 00000000..3d07410e
--- /dev/null
+++ b/translations/id/6-NLP/1-Introduction-to-NLP/README.md
@@ -0,0 +1,179 @@
+
+# Pengantar Pemrosesan Bahasa Alami
+
+Pelajaran ini mencakup sejarah singkat dan konsep penting dari *pemrosesan bahasa alami*, sebuah cabang dari *linguistik komputasional*.
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Pengantar
+
+NLP, sebagaimana biasa disebut, adalah salah satu bidang yang paling dikenal di mana pembelajaran mesin telah diterapkan dan digunakan dalam perangkat lunak produksi.
+
+✅ Bisakah Anda memikirkan perangkat lunak yang Anda gunakan setiap hari yang mungkin memiliki beberapa NLP di dalamnya? Bagaimana dengan program pengolah kata atau aplikasi seluler yang Anda gunakan secara teratur?
+
+Anda akan belajar tentang:
+
+- **Ide tentang bahasa**. Bagaimana bahasa berkembang dan apa saja area studi utama.
+- **Definisi dan konsep**. Anda juga akan mempelajari definisi dan konsep tentang bagaimana komputer memproses teks, termasuk parsing, tata bahasa, dan mengidentifikasi kata benda dan kata kerja. Ada beberapa tugas pemrograman dalam pelajaran ini, dan beberapa konsep penting diperkenalkan yang akan Anda pelajari untuk diprogram di pelajaran berikutnya.
+
+## Linguistik Komputasional
+
+Linguistik komputasional adalah bidang penelitian dan pengembangan selama beberapa dekade yang mempelajari bagaimana komputer dapat bekerja dengan, bahkan memahami, menerjemahkan, dan berkomunikasi dengan bahasa. Pemrosesan bahasa alami (NLP) adalah bidang terkait yang berfokus pada bagaimana komputer dapat memproses bahasa 'alami', atau bahasa manusia.
+
+### Contoh - dikte telepon
+
+Jika Anda pernah mendikte ke telepon Anda daripada mengetik atau bertanya kepada asisten virtual sebuah pertanyaan, ucapan Anda diubah menjadi bentuk teks dan kemudian diproses atau *diurai* dari bahasa yang Anda ucapkan. Kata kunci yang terdeteksi kemudian diproses ke dalam format yang dapat dipahami dan digunakan oleh telepon atau asisten.
+
+
+> Pemahaman linguistik yang sebenarnya itu sulit! Gambar oleh [Jen Looper](https://twitter.com/jenlooper)
+
+### Bagaimana teknologi ini bisa terjadi?
+
+Hal ini dimungkinkan karena seseorang menulis program komputer untuk melakukannya. Beberapa dekade yang lalu, beberapa penulis fiksi ilmiah memprediksi bahwa orang akan lebih sering berbicara dengan komputer mereka, dan komputer akan selalu memahami apa yang mereka maksud. Sayangnya, ternyata masalah ini lebih sulit daripada yang dibayangkan banyak orang, dan meskipun masalah ini jauh lebih dipahami saat ini, ada tantangan signifikan dalam mencapai pemrosesan bahasa alami yang 'sempurna' dalam hal memahami makna sebuah kalimat. Ini adalah masalah yang sangat sulit terutama dalam memahami humor atau mendeteksi emosi seperti sarkasme dalam sebuah kalimat.
+
+Pada titik ini, Anda mungkin mengingat pelajaran sekolah di mana guru membahas bagian-bagian tata bahasa dalam sebuah kalimat. Di beberapa negara, siswa diajarkan tata bahasa dan linguistik sebagai mata pelajaran khusus, tetapi di banyak negara, topik-topik ini dimasukkan sebagai bagian dari pembelajaran bahasa: baik bahasa pertama Anda di sekolah dasar (belajar membaca dan menulis) dan mungkin bahasa kedua di sekolah menengah. Jangan khawatir jika Anda bukan ahli dalam membedakan kata benda dari kata kerja atau kata keterangan dari kata sifat!
+
+Jika Anda kesulitan dengan perbedaan antara *present simple* dan *present progressive*, Anda tidak sendirian. Ini adalah hal yang menantang bagi banyak orang, bahkan penutur asli suatu bahasa. Kabar baiknya adalah bahwa komputer sangat baik dalam menerapkan aturan formal, dan Anda akan belajar menulis kode yang dapat *mengurai* sebuah kalimat sebaik manusia. Tantangan yang lebih besar yang akan Anda pelajari nanti adalah memahami *makna* dan *sentimen* dari sebuah kalimat.
+
+## Prasyarat
+
+Untuk pelajaran ini, prasyarat utama adalah kemampuan membaca dan memahami bahasa pelajaran ini. Tidak ada masalah matematika atau persamaan yang harus diselesaikan. Meskipun penulis asli menulis pelajaran ini dalam bahasa Inggris, pelajaran ini juga diterjemahkan ke dalam bahasa lain, sehingga Anda mungkin sedang membaca terjemahan. Ada contoh di mana sejumlah bahasa berbeda digunakan (untuk membandingkan aturan tata bahasa yang berbeda dari berbagai bahasa). Bahasa-bahasa ini *tidak* diterjemahkan, tetapi teks penjelasannya diterjemahkan, sehingga maknanya harus jelas.
+
+Untuk tugas pemrograman, Anda akan menggunakan Python dan contoh-contohnya menggunakan Python 3.8.
+
+Dalam bagian ini, Anda akan membutuhkan, dan menggunakan:
+
+- **Pemahaman Python 3**. Pemahaman bahasa pemrograman dalam Python 3, pelajaran ini menggunakan input, loop, pembacaan file, array.
+- **Visual Studio Code + ekstensi**. Kami akan menggunakan Visual Studio Code dan ekstensi Python-nya. Anda juga dapat menggunakan IDE Python pilihan Anda.
+- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) adalah pustaka pemrosesan teks yang disederhanakan untuk Python. Ikuti instruksi di situs TextBlob untuk menginstalnya di sistem Anda (instal juga korpora, seperti yang ditunjukkan di bawah):
+
+ ```bash
+ pip install -U textblob
+ python -m textblob.download_corpora
+ ```
+
+> 💡 Tip: Anda dapat menjalankan Python langsung di lingkungan VS Code. Periksa [dokumen](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) untuk informasi lebih lanjut.
+
+## Berbicara dengan Mesin
+
+Sejarah mencoba membuat komputer memahami bahasa manusia sudah berlangsung selama beberapa dekade, dan salah satu ilmuwan pertama yang mempertimbangkan pemrosesan bahasa alami adalah *Alan Turing*.
+
+### Tes 'Turing'
+
+Ketika Turing meneliti *kecerdasan buatan* pada tahun 1950-an, ia mempertimbangkan apakah tes percakapan dapat diberikan kepada manusia dan komputer (melalui korespondensi tertulis) di mana manusia dalam percakapan tersebut tidak yakin apakah mereka sedang berbicara dengan manusia lain atau komputer.
+
+Jika, setelah percakapan berlangsung cukup lama, manusia tidak dapat menentukan apakah jawaban berasal dari komputer atau tidak, maka dapatkah komputer dikatakan *berpikir*?
+
+### Inspirasi - 'permainan imitasi'
+
+Ide ini berasal dari permainan pesta yang disebut *Permainan Imitasi* di mana seorang interogator berada sendirian di sebuah ruangan dan ditugaskan untuk menentukan siapa dari dua orang (di ruangan lain) yang masing-masing adalah laki-laki dan perempuan. Interogator dapat mengirim catatan, dan harus mencoba memikirkan pertanyaan di mana jawaban tertulis mengungkapkan jenis kelamin orang misterius tersebut. Tentu saja, para pemain di ruangan lain mencoba menipu interogator dengan menjawab pertanyaan sedemikian rupa sehingga menyesatkan atau membingungkan interogator, sambil tetap memberikan kesan menjawab dengan jujur.
+
+### Mengembangkan Eliza
+
+Pada tahun 1960-an, seorang ilmuwan MIT bernama *Joseph Weizenbaum* mengembangkan [*Eliza*](https://wikipedia.org/wiki/ELIZA), seorang 'terapis' komputer yang akan mengajukan pertanyaan kepada manusia dan memberikan kesan memahami jawaban mereka. Namun, meskipun Eliza dapat mengurai sebuah kalimat dan mengidentifikasi konstruksi tata bahasa tertentu dan kata kunci untuk memberikan jawaban yang masuk akal, Eliza tidak dapat dikatakan *memahami* kalimat tersebut. Jika Eliza diberikan sebuah kalimat dengan format "**Saya merasa** sedih", ia mungkin akan menyusun ulang dan mengganti kata-kata dalam kalimat tersebut untuk membentuk respons "Sudah berapa lama **Anda merasa** sedih".
+
+Ini memberikan kesan bahwa Eliza memahami pernyataan tersebut dan mengajukan pertanyaan lanjutan, padahal sebenarnya ia hanya mengubah bentuk kata kerja dan menambahkan beberapa kata. Jika Eliza tidak dapat mengidentifikasi kata kunci yang memiliki respons, ia akan memberikan respons acak yang dapat berlaku untuk banyak pernyataan berbeda. Eliza dapat dengan mudah ditipu, misalnya jika pengguna menulis "**Anda adalah** sebuah sepeda", ia mungkin akan merespons dengan "Sudah berapa lama **saya menjadi** sebuah sepeda?", alih-alih respons yang lebih masuk akal.
+
+[](https://youtu.be/RMK9AphfLco "Berbicara dengan Eliza")
+
+> 🎥 Klik gambar di atas untuk video tentang program ELIZA asli
+
+> Catatan: Anda dapat membaca deskripsi asli tentang [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) yang diterbitkan pada tahun 1966 jika Anda memiliki akun ACM. Alternatifnya, baca tentang Eliza di [wikipedia](https://wikipedia.org/wiki/ELIZA)
+
+## Latihan - membuat bot percakapan dasar
+
+Bot percakapan, seperti Eliza, adalah program yang meminta input pengguna dan tampaknya memahami serta merespons dengan cerdas. Tidak seperti Eliza, bot kita tidak akan memiliki beberapa aturan yang memberikan kesan percakapan yang cerdas. Sebaliknya, bot kita hanya akan memiliki satu kemampuan, yaitu melanjutkan percakapan dengan respons acak yang mungkin cocok dalam percakapan sepele.
+
+### Rencana
+
+Langkah-langkah Anda saat membuat bot percakapan:
+
+1. Cetak instruksi yang memberi tahu pengguna cara berinteraksi dengan bot
+2. Mulai loop
+ 1. Terima input pengguna
+ 2. Jika pengguna meminta keluar, maka keluar
+ 3. Proses input pengguna dan tentukan respons (dalam hal ini, respons adalah pilihan acak dari daftar kemungkinan respons generik)
+ 4. Cetak respons
+3. Kembali ke langkah 2
+
+### Membuat bot
+
+Mari kita buat bot berikutnya. Kita akan mulai dengan mendefinisikan beberapa frasa.
+
+1. Buat bot ini sendiri dalam Python dengan respons acak berikut:
+
+ ```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?"]
+ ```
+
+ Berikut adalah beberapa output contoh untuk panduan Anda (input pengguna ada di baris yang dimulai dengan `>`):
+
+ ```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!
+ ```
+
+ Salah satu solusi yang mungkin untuk tugas ini ada [di sini](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py)
+
+ ✅ Berhenti dan pertimbangkan
+
+ 1. Apakah menurut Anda respons acak akan 'menipu' seseorang untuk berpikir bahwa bot benar-benar memahami mereka?
+ 2. Fitur apa yang dibutuhkan bot agar lebih efektif?
+ 3. Jika bot benar-benar dapat 'memahami' makna sebuah kalimat, apakah ia juga perlu 'mengingat' makna kalimat sebelumnya dalam percakapan?
+
+---
+
+## 🚀Tantangan
+
+Pilih salah satu elemen "berhenti dan pertimbangkan" di atas dan coba terapkan dalam kode atau tulis solusi di atas kertas menggunakan pseudocode.
+
+Dalam pelajaran berikutnya, Anda akan belajar tentang sejumlah pendekatan lain untuk mengurai bahasa alami dan pembelajaran mesin.
+
+## [Kuis Pasca-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Lihat referensi di bawah ini sebagai peluang bacaan lebih lanjut.
+
+### Referensi
+
+1. Schubert, Lenhart, "Linguistik Komputasional", *The Stanford Encyclopedia of Philosophy* (Edisi Musim Semi 2020), Edward N. Zalta (ed.), URL = .
+2. Princeton University "Tentang WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010.
+
+## Tugas
+
+[Cari bot](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/1-Introduction-to-NLP/assignment.md b/translations/id/6-NLP/1-Introduction-to-NLP/assignment.md
new file mode 100644
index 00000000..6216f09c
--- /dev/null
+++ b/translations/id/6-NLP/1-Introduction-to-NLP/assignment.md
@@ -0,0 +1,25 @@
+
+# Cari Bot
+
+## Instruksi
+
+Bot ada di mana-mana. Tugas Anda: temukan satu dan adopsi! Anda dapat menemukannya di situs web, aplikasi perbankan, dan di telepon, misalnya saat Anda menghubungi perusahaan layanan keuangan untuk meminta saran atau informasi akun. Analisis bot tersebut dan lihat apakah Anda bisa membuatnya bingung. Jika Anda berhasil membuat bot bingung, menurut Anda mengapa hal itu terjadi? Tulislah sebuah makalah singkat tentang pengalaman Anda.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Perbaikan |
+| -------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------ | --------------------- |
+| | Sebuah makalah satu halaman penuh ditulis, menjelaskan arsitektur bot yang diduga dan menguraikan pengalaman Anda dengannya | Makalah tidak lengkap atau kurang diteliti | Tidak ada makalah yang diserahkan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/2-Tasks/README.md b/translations/id/6-NLP/2-Tasks/README.md
new file mode 100644
index 00000000..fd556a95
--- /dev/null
+++ b/translations/id/6-NLP/2-Tasks/README.md
@@ -0,0 +1,228 @@
+
+# Tugas dan Teknik Pemrosesan Bahasa Alami yang Umum
+
+Untuk sebagian besar *pemrosesan bahasa alami*, teks yang akan diproses harus dipecah, diperiksa, dan hasilnya disimpan atau dibandingkan dengan aturan dan kumpulan data. Tugas-tugas ini memungkinkan programmer untuk mendapatkan _makna_ atau _niat_ atau hanya _frekuensi_ istilah dan kata dalam sebuah teks.
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+Mari kita pelajari teknik-teknik umum yang digunakan dalam pemrosesan teks. Dikombinasikan dengan pembelajaran mesin, teknik-teknik ini membantu Anda menganalisis sejumlah besar teks secara efisien. Namun, sebelum menerapkan ML pada tugas-tugas ini, mari kita pahami masalah yang dihadapi oleh spesialis NLP.
+
+## Tugas Umum dalam NLP
+
+Ada berbagai cara untuk menganalisis teks yang sedang Anda kerjakan. Ada tugas-tugas yang dapat Anda lakukan, dan melalui tugas-tugas ini Anda dapat memahami teks dan menarik kesimpulan. Biasanya, Anda melakukan tugas-tugas ini secara berurutan.
+
+### Tokenisasi
+
+Mungkin hal pertama yang harus dilakukan sebagian besar algoritma NLP adalah memecah teks menjadi token, atau kata-kata. Meskipun ini terdengar sederhana, memperhitungkan tanda baca dan pembatas kata serta kalimat dalam berbagai bahasa dapat membuatnya menjadi rumit. Anda mungkin perlu menggunakan berbagai metode untuk menentukan batasan.
+
+
+> Tokenisasi sebuah kalimat dari **Pride and Prejudice**. Infografis oleh [Jen Looper](https://twitter.com/jenlooper)
+
+### Embedding
+
+[Word embeddings](https://wikipedia.org/wiki/Word_embedding) adalah cara untuk mengonversi data teks Anda secara numerik. Embedding dilakukan sedemikian rupa sehingga kata-kata dengan makna serupa atau kata-kata yang sering digunakan bersama akan berkelompok.
+
+
+> "I have the highest respect for your nerves, they are my old friends." - Word embeddings untuk sebuah kalimat dari **Pride and Prejudice**. Infografis oleh [Jen Looper](https://twitter.com/jenlooper)
+
+✅ Coba [alat menarik ini](https://projector.tensorflow.org/) untuk bereksperimen dengan word embeddings. Klik pada satu kata untuk melihat kelompok kata-kata serupa: 'toy' berkelompok dengan 'disney', 'lego', 'playstation', dan 'console'.
+
+### Parsing & Tagging Bagian dari Ucapan
+
+Setiap kata yang telah di-tokenisasi dapat diberi tag sebagai bagian dari ucapan - seperti kata benda, kata kerja, atau kata sifat. Kalimat `the quick red fox jumped over the lazy brown dog` mungkin diberi tag POS sebagai fox = kata benda, jumped = kata kerja.
+
+
+
+> Parsing sebuah kalimat dari **Pride and Prejudice**. Infografis oleh [Jen Looper](https://twitter.com/jenlooper)
+
+Parsing adalah mengenali kata-kata yang saling terkait dalam sebuah kalimat - misalnya `the quick red fox jumped` adalah urutan kata sifat-kata benda-kata kerja yang terpisah dari urutan `lazy brown dog`.
+
+### Frekuensi Kata dan Frasa
+
+Prosedur yang berguna saat menganalisis teks dalam jumlah besar adalah membangun kamus dari setiap kata atau frasa yang menarik dan seberapa sering kata atau frasa tersebut muncul. Frasa `the quick red fox jumped over the lazy brown dog` memiliki frekuensi kata 2 untuk kata "the".
+
+Mari kita lihat contoh teks di mana kita menghitung frekuensi kata. Puisi Rudyard Kipling berjudul The Winners mengandung ayat berikut:
+
+```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.
+```
+
+Karena frekuensi frasa dapat bersifat tidak sensitif terhadap huruf besar atau sensitif terhadap huruf besar sesuai kebutuhan, frasa `a friend` memiliki frekuensi 2, `the` memiliki frekuensi 6, dan `travels` memiliki frekuensi 2.
+
+### N-grams
+
+Teks dapat dipecah menjadi urutan kata dengan panjang tertentu, satu kata (unigram), dua kata (bigram), tiga kata (trigram), atau sejumlah kata (n-grams).
+
+Misalnya, `the quick red fox jumped over the lazy brown dog` dengan skor n-gram 2 menghasilkan n-grams berikut:
+
+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
+
+Mungkin lebih mudah untuk memvisualisasikannya sebagai kotak geser di atas kalimat. Berikut ini adalah untuk n-grams dengan 3 kata, n-gram ditampilkan dalam huruf tebal di setiap kalimat:
+
+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**
+
+
+
+> Nilai N-gram 3: Infografis oleh [Jen Looper](https://twitter.com/jenlooper)
+
+### Ekstraksi Frasa Kata Benda
+
+Dalam sebagian besar kalimat, terdapat kata benda yang menjadi subjek atau objek kalimat. Dalam bahasa Inggris, kata benda sering kali dapat dikenali dengan adanya 'a', 'an', atau 'the' di depannya. Mengidentifikasi subjek atau objek kalimat dengan 'mengekstraksi frasa kata benda' adalah tugas umum dalam NLP saat mencoba memahami makna sebuah kalimat.
+
+✅ Dalam kalimat "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.", bisakah Anda mengidentifikasi frasa kata benda?
+
+Dalam kalimat `the quick red fox jumped over the lazy brown dog` terdapat 2 frasa kata benda: **quick red fox** dan **lazy brown dog**.
+
+### Analisis Sentimen
+
+Sebuah kalimat atau teks dapat dianalisis untuk sentimen, atau seberapa *positif* atau *negatif* teks tersebut. Sentimen diukur dalam *polaritas* dan *objektivitas/subjektivitas*. Polaritas diukur dari -1.0 hingga 1.0 (negatif hingga positif) dan 0.0 hingga 1.0 (paling objektif hingga paling subjektif).
+
+✅ Nanti Anda akan belajar bahwa ada berbagai cara untuk menentukan sentimen menggunakan pembelajaran mesin, tetapi salah satu caranya adalah dengan memiliki daftar kata dan frasa yang dikategorikan sebagai positif atau negatif oleh seorang ahli manusia dan menerapkan model tersebut pada teks untuk menghitung skor polaritas. Bisakah Anda melihat bagaimana cara ini bekerja dalam beberapa situasi dan kurang efektif dalam situasi lainnya?
+
+### Infleksi
+
+Infleksi memungkinkan Anda mengambil sebuah kata dan mendapatkan bentuk tunggal atau jamak dari kata tersebut.
+
+### Lematisasi
+
+*Lemma* adalah akar atau kata dasar untuk sekumpulan kata, misalnya *flew*, *flies*, *flying* memiliki lemma dari kata kerja *fly*.
+
+Ada juga basis data yang berguna untuk peneliti NLP, terutama:
+
+### WordNet
+
+[WordNet](https://wordnet.princeton.edu/) adalah basis data kata, sinonim, antonim, dan banyak detail lainnya untuk setiap kata dalam berbagai bahasa. Basis data ini sangat berguna saat mencoba membangun terjemahan, pemeriksa ejaan, atau alat bahasa apa pun.
+
+## Perpustakaan NLP
+
+Untungnya, Anda tidak perlu membangun semua teknik ini sendiri, karena ada pustaka Python yang sangat baik yang membuatnya jauh lebih mudah diakses oleh pengembang yang tidak mengkhususkan diri dalam pemrosesan bahasa alami atau pembelajaran mesin. Pelajaran berikutnya mencakup lebih banyak contoh pustaka ini, tetapi di sini Anda akan mempelajari beberapa contoh berguna untuk membantu Anda dengan tugas berikutnya.
+
+### Latihan - menggunakan pustaka `TextBlob`
+
+Mari kita gunakan pustaka bernama TextBlob karena pustaka ini memiliki API yang berguna untuk menangani jenis tugas ini. TextBlob "berdiri di atas bahu raksasa [NLTK](https://nltk.org) dan [pattern](https://github.com/clips/pattern), dan bekerja dengan baik dengan keduanya." Pustaka ini memiliki sejumlah besar ML yang tertanam dalam API-nya.
+
+> Catatan: Panduan [Quick Start](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) yang berguna tersedia untuk TextBlob dan direkomendasikan untuk pengembang Python berpengalaman.
+
+Saat mencoba mengidentifikasi *noun phrases*, TextBlob menawarkan beberapa opsi ekstraktor untuk menemukan frasa kata benda.
+
+1. Lihatlah `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
+ ```
+
+ > Apa yang terjadi di sini? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) adalah "Ekstraktor frasa kata benda yang menggunakan chunk parsing yang dilatih dengan korpus pelatihan ConLL-2000." ConLL-2000 mengacu pada Konferensi Pembelajaran Bahasa Alami Komputasional tahun 2000. Setiap tahun konferensi ini mengadakan lokakarya untuk menangani masalah NLP yang sulit, dan pada tahun 2000 masalahnya adalah chunking kata benda. Model dilatih pada Wall Street Journal, dengan "bagian 15-18 sebagai data pelatihan (211727 token) dan bagian 20 sebagai data uji (47377 token)". Anda dapat melihat prosedur yang digunakan [di sini](https://www.clips.uantwerpen.be/conll2000/chunking/) dan [hasilnya](https://ifarm.nl/erikt/research/np-chunking.html).
+
+### Tantangan - meningkatkan bot Anda dengan NLP
+
+Dalam pelajaran sebelumnya, Anda membuat bot Q&A yang sangat sederhana. Sekarang, Anda akan membuat Marvin sedikit lebih simpatik dengan menganalisis input Anda untuk sentimen dan mencetak respons yang sesuai dengan sentimen tersebut. Anda juga perlu mengidentifikasi `noun_phrase` dan menanyakan tentangnya.
+
+Langkah-langkah Anda saat membangun bot percakapan yang lebih baik:
+
+1. Cetak instruksi yang memberi tahu pengguna cara berinteraksi dengan bot
+2. Mulai loop
+ 1. Terima input pengguna
+ 2. Jika pengguna meminta keluar, maka keluar
+ 3. Proses input pengguna dan tentukan respons sentimen yang sesuai
+ 4. Jika frasa kata benda terdeteksi dalam sentimen, ubah menjadi bentuk jamak dan tanyakan lebih lanjut tentang topik tersebut
+ 5. Cetak respons
+3. Kembali ke langkah 2
+
+Berikut adalah cuplikan kode untuk menentukan sentimen menggunakan TextBlob. Perhatikan bahwa hanya ada empat *gradasi* respons sentimen (Anda dapat menambahkan lebih banyak jika Anda mau):
+
+```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. "
+```
+
+Berikut adalah beberapa output sampel untuk panduan Anda (input pengguna ada di baris yang dimulai dengan >):
+
+```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!
+```
+
+Salah satu solusi untuk tugas ini dapat ditemukan [di sini](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py)
+
+✅ Pemeriksaan Pengetahuan
+
+1. Apakah menurut Anda respons simpatik dapat 'menipu' seseorang untuk berpikir bahwa bot benar-benar memahami mereka?
+2. Apakah mengidentifikasi frasa kata benda membuat bot lebih 'meyakinkan'?
+3. Mengapa mengekstraksi 'frasa kata benda' dari sebuah kalimat merupakan hal yang berguna untuk dilakukan?
+
+---
+
+Implementasikan bot dalam pemeriksaan pengetahuan sebelumnya dan uji pada teman. Bisakah bot tersebut menipu mereka? Bisakah Anda membuat bot Anda lebih 'meyakinkan'?
+
+## 🚀Tantangan
+
+Ambil tugas dalam pemeriksaan pengetahuan sebelumnya dan coba implementasikan. Uji bot pada teman. Bisakah bot tersebut menipu mereka? Bisakah Anda membuat bot Anda lebih 'meyakinkan'?
+
+## [Kuis Pasca-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Dalam beberapa pelajaran berikutnya, Anda akan mempelajari lebih lanjut tentang analisis sentimen. Teliti teknik menarik ini dalam artikel seperti yang ada di [KDNuggets](https://www.kdnuggets.com/tag/nlp)
+
+## Tugas
+
+[Buat bot berbicara kembali](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/2-Tasks/assignment.md b/translations/id/6-NLP/2-Tasks/assignment.md
new file mode 100644
index 00000000..f9e4958f
--- /dev/null
+++ b/translations/id/6-NLP/2-Tasks/assignment.md
@@ -0,0 +1,25 @@
+
+# Membuat Bot Menjawab
+
+## Instruksi
+
+Dalam beberapa pelajaran sebelumnya, Anda telah memprogram bot dasar untuk diajak mengobrol. Bot ini memberikan jawaban secara acak hingga Anda mengatakan 'bye'. Bisakah Anda membuat jawaban tersebut sedikit kurang acak, dan memicu jawaban jika Anda mengatakan hal-hal tertentu, seperti 'kenapa' atau 'bagaimana'? Pikirkan bagaimana pembelajaran mesin dapat membuat pekerjaan semacam ini menjadi kurang manual saat Anda mengembangkan bot Anda. Anda dapat menggunakan pustaka NLTK atau TextBlob untuk mempermudah tugas Anda.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | --------------------------------------------- | ------------------------------------------------ | ----------------------- |
+| | File bot.py baru disajikan dan didokumentasikan | File bot baru disajikan tetapi mengandung bug | File tidak disajikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/3-Translation-Sentiment/README.md b/translations/id/6-NLP/3-Translation-Sentiment/README.md
new file mode 100644
index 00000000..07f9f82d
--- /dev/null
+++ b/translations/id/6-NLP/3-Translation-Sentiment/README.md
@@ -0,0 +1,200 @@
+
+# Analisis Sentimen dan Terjemahan dengan ML
+
+Dalam pelajaran sebelumnya, Anda telah belajar cara membangun bot dasar menggunakan `TextBlob`, sebuah pustaka yang mengintegrasikan ML di balik layar untuk melakukan tugas NLP dasar seperti ekstraksi frasa kata benda. Tantangan penting lainnya dalam linguistik komputasi adalah _terjemahan_ yang akurat dari satu bahasa lisan atau tulisan ke bahasa lain.
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+Terjemahan adalah masalah yang sangat sulit karena ada ribuan bahasa, masing-masing dengan aturan tata bahasa yang sangat berbeda. Salah satu pendekatan adalah mengubah aturan tata bahasa formal dari satu bahasa, seperti bahasa Inggris, menjadi struktur yang tidak bergantung pada bahasa, lalu menerjemahkannya dengan mengubah kembali ke bahasa lain. Pendekatan ini melibatkan langkah-langkah berikut:
+
+1. **Identifikasi**. Identifikasi atau tandai kata-kata dalam bahasa input sebagai kata benda, kata kerja, dll.
+2. **Buat terjemahan**. Hasilkan terjemahan langsung dari setiap kata dalam format bahasa target.
+
+### Contoh kalimat, Inggris ke Irlandia
+
+Dalam bahasa 'Inggris', kalimat _I feel happy_ terdiri dari tiga kata dengan urutan:
+
+- **subjek** (I)
+- **kata kerja** (feel)
+- **kata sifat** (happy)
+
+Namun, dalam bahasa 'Irlandia', kalimat yang sama memiliki struktur tata bahasa yang sangat berbeda - emosi seperti "*happy*" atau "*sad*" diekspresikan sebagai sesuatu yang *ada pada* Anda.
+
+Frasa bahasa Inggris `I feel happy` dalam bahasa Irlandia menjadi `Tá athas orm`. Terjemahan *harfiah* adalah `Happy is upon me`.
+
+Seorang penutur bahasa Irlandia yang menerjemahkan ke bahasa Inggris akan mengatakan `I feel happy`, bukan `Happy is upon me`, karena mereka memahami makna kalimat tersebut, meskipun kata-kata dan struktur kalimatnya berbeda.
+
+Urutan formal untuk kalimat dalam bahasa Irlandia adalah:
+
+- **kata kerja** (Tá atau is)
+- **kata sifat** (athas, atau happy)
+- **subjek** (orm, atau upon me)
+
+## Terjemahan
+
+Program terjemahan yang naif mungkin hanya menerjemahkan kata-kata, tanpa memperhatikan struktur kalimat.
+
+✅ Jika Anda telah belajar bahasa kedua (atau ketiga atau lebih) sebagai orang dewasa, Anda mungkin memulai dengan berpikir dalam bahasa asli Anda, menerjemahkan konsep kata demi kata di kepala Anda ke bahasa kedua, lalu mengucapkan terjemahan Anda. Ini mirip dengan apa yang dilakukan program terjemahan komputer yang naif. Penting untuk melewati fase ini untuk mencapai kefasihan!
+
+Terjemahan naif menghasilkan terjemahan yang buruk (dan kadang-kadang lucu): `I feel happy` diterjemahkan secara harfiah menjadi `Mise bhraitheann athas` dalam bahasa Irlandia. Itu berarti (secara harfiah) `me feel happy` dan bukan kalimat bahasa Irlandia yang valid. Meskipun bahasa Inggris dan Irlandia adalah bahasa yang digunakan di dua pulau yang berdekatan, mereka adalah bahasa yang sangat berbeda dengan struktur tata bahasa yang berbeda.
+
+> Anda dapat menonton beberapa video tentang tradisi linguistik Irlandia seperti [yang satu ini](https://www.youtube.com/watch?v=mRIaLSdRMMs)
+
+### Pendekatan Machine Learning
+
+Sejauh ini, Anda telah belajar tentang pendekatan aturan formal untuk pemrosesan bahasa alami. Pendekatan lain adalah mengabaikan makna kata-kata, dan _sebaliknya menggunakan machine learning untuk mendeteksi pola_. Ini dapat bekerja dalam terjemahan jika Anda memiliki banyak teks (sebuah *corpus*) atau teks (*corpora*) dalam bahasa asal dan target.
+
+Misalnya, pertimbangkan kasus *Pride and Prejudice*, sebuah novel bahasa Inggris terkenal yang ditulis oleh Jane Austen pada tahun 1813. Jika Anda membaca buku tersebut dalam bahasa Inggris dan terjemahan manusia dari buku tersebut dalam bahasa *Prancis*, Anda dapat mendeteksi frasa dalam satu bahasa yang diterjemahkan secara _idiomatik_ ke bahasa lain. Anda akan melakukannya sebentar lagi.
+
+Misalnya, ketika frasa bahasa Inggris seperti `I have no money` diterjemahkan secara harfiah ke bahasa Prancis, itu mungkin menjadi `Je n'ai pas de monnaie`. "Monnaie" adalah 'false cognate' Prancis yang rumit, karena 'money' dan 'monnaie' tidak sinonim. Terjemahan yang lebih baik yang mungkin dibuat oleh manusia adalah `Je n'ai pas d'argent`, karena lebih baik menyampaikan makna bahwa Anda tidak memiliki uang (daripada 'uang receh' yang merupakan arti dari 'monnaie').
+
+
+
+> Gambar oleh [Jen Looper](https://twitter.com/jenlooper)
+
+Jika model ML memiliki cukup banyak terjemahan manusia untuk membangun model, ia dapat meningkatkan akurasi terjemahan dengan mengidentifikasi pola umum dalam teks yang sebelumnya telah diterjemahkan oleh penutur manusia ahli dari kedua bahasa.
+
+### Latihan - terjemahan
+
+Anda dapat menggunakan `TextBlob` untuk menerjemahkan kalimat. Cobalah kalimat pembuka terkenal dari **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` melakukan pekerjaan yang cukup baik dalam terjemahan: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
+
+Dapat dikatakan bahwa terjemahan TextBlob jauh lebih tepat, bahkan dibandingkan dengan terjemahan Prancis tahun 1932 dari buku tersebut oleh V. Leconte dan 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."
+
+Dalam kasus ini, terjemahan yang diinformasikan oleh ML melakukan pekerjaan yang lebih baik daripada penerjemah manusia yang secara tidak perlu menambahkan kata-kata ke dalam teks asli penulis untuk 'kejelasan'.
+
+> Apa yang terjadi di sini? dan mengapa TextBlob sangat baik dalam terjemahan? Nah, di balik layar, ia menggunakan Google Translate, AI canggih yang mampu menganalisis jutaan frasa untuk memprediksi string terbaik untuk tugas yang sedang dilakukan. Tidak ada yang manual di sini dan Anda memerlukan koneksi internet untuk menggunakan `blob.translate`.
+
+✅ Cobalah beberapa kalimat lagi. Mana yang lebih baik, terjemahan ML atau manusia? Dalam kasus apa?
+
+## Analisis Sentimen
+
+Area lain di mana machine learning dapat bekerja dengan sangat baik adalah analisis sentimen. Pendekatan non-ML untuk sentimen adalah mengidentifikasi kata-kata dan frasa yang 'positif' dan 'negatif'. Kemudian, diberikan teks baru, hitung nilai total kata-kata positif, negatif, dan netral untuk mengidentifikasi sentimen keseluruhan.
+
+Pendekatan ini mudah tertipu seperti yang mungkin Anda lihat dalam tugas Marvin - kalimat `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` adalah kalimat sentimen negatif yang sarkastik, tetapi algoritma sederhana mendeteksi 'great', 'wonderful', 'glad' sebagai positif dan 'waste', 'lost' dan 'dark' sebagai negatif. Sentimen keseluruhan dipengaruhi oleh kata-kata yang saling bertentangan ini.
+
+✅ Berhenti sejenak dan pikirkan bagaimana kita menyampaikan sarkasme sebagai penutur manusia. Intonasi nada memainkan peran besar. Cobalah mengucapkan frasa "Well, that film was awesome" dengan berbagai cara untuk menemukan bagaimana suara Anda menyampaikan makna.
+
+### Pendekatan ML
+
+Pendekatan ML adalah secara manual mengumpulkan teks negatif dan positif - tweet, atau ulasan film, atau apa pun di mana manusia memberikan skor *dan* opini tertulis. Kemudian teknik NLP dapat diterapkan pada opini dan skor, sehingga pola muncul (misalnya, ulasan film positif cenderung memiliki frasa 'Oscar worthy' lebih sering daripada ulasan film negatif, atau ulasan restoran positif mengatakan 'gourmet' jauh lebih sering daripada 'disgusting').
+
+> ⚖️ **Contoh**: Jika Anda bekerja di kantor seorang politisi dan ada undang-undang baru yang sedang diperdebatkan, konstituen mungkin menulis email ke kantor tersebut untuk mendukung atau menentang undang-undang baru tersebut. Misalkan Anda ditugaskan membaca email dan menyortirnya ke dalam 2 tumpukan, *mendukung* dan *menentang*. Jika ada banyak email, Anda mungkin kewalahan mencoba membaca semuanya. Bukankah akan menyenangkan jika bot dapat membaca semuanya untuk Anda, memahaminya, dan memberi tahu Anda di tumpukan mana setiap email berada?
+>
+> Salah satu cara untuk mencapai itu adalah dengan menggunakan Machine Learning. Anda akan melatih model dengan sebagian email *menentang* dan sebagian email *mendukung*. Model cenderung mengasosiasikan frasa dan kata dengan sisi menentang dan sisi mendukung, *tetapi tidak akan memahami konten apa pun*, hanya bahwa kata-kata dan pola tertentu lebih mungkin muncul dalam email *menentang* atau *mendukung*. Anda dapat mengujinya dengan beberapa email yang belum Anda gunakan untuk melatih model, dan melihat apakah model tersebut sampai pada kesimpulan yang sama seperti Anda. Kemudian, setelah Anda puas dengan akurasi model, Anda dapat memproses email di masa depan tanpa harus membaca setiap email.
+
+✅ Apakah proses ini terdengar seperti proses yang telah Anda gunakan dalam pelajaran sebelumnya?
+
+## Latihan - kalimat sentimental
+
+Sentimen diukur dengan *polaritas* dari -1 hingga 1, yang berarti -1 adalah sentimen paling negatif, dan 1 adalah sentimen paling positif. Sentimen juga diukur dengan skor 0 - 1 untuk objektivitas (0) dan subjektivitas (1).
+
+Lihat kembali *Pride and Prejudice* karya Jane Austen. Teks tersedia di [Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm). Contoh di bawah ini menunjukkan program pendek yang menganalisis sentimen dari kalimat pertama dan terakhir dari buku tersebut dan menampilkan skor polaritas dan subjektivitas/objektivitas sentimennya.
+
+Anda harus menggunakan pustaka `TextBlob` (dijelaskan di atas) untuk menentukan `sentiment` (Anda tidak perlu menulis kalkulator sentimen Anda sendiri) dalam tugas berikut.
+
+```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))
+```
+
+Anda melihat output berikut:
+
+```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)
+```
+
+## Tantangan - periksa polaritas sentimen
+
+Tugas Anda adalah menentukan, menggunakan polaritas sentimen, apakah *Pride and Prejudice* memiliki lebih banyak kalimat yang benar-benar positif daripada yang benar-benar negatif. Untuk tugas ini, Anda dapat mengasumsikan bahwa skor polaritas 1 atau -1 adalah benar-benar positif atau negatif.
+
+**Langkah-langkah:**
+
+1. Unduh [salinan Pride and Prejudice](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) dari Project Gutenberg sebagai file .txt. Hapus metadata di awal dan akhir file, sisakan hanya teks asli
+2. Buka file di Python dan ekstrak kontennya sebagai string
+3. Buat TextBlob menggunakan string buku
+4. Analisis setiap kalimat dalam buku dalam sebuah loop
+ 1. Jika polaritas adalah 1 atau -1, simpan kalimat tersebut dalam array atau daftar pesan positif atau negatif
+5. Di akhir, cetak semua kalimat positif dan negatif (secara terpisah) dan jumlah masing-masing.
+
+Berikut adalah [solusi](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb) sebagai contoh.
+
+✅ Pengetahuan yang Diperiksa
+
+1. Sentimen didasarkan pada kata-kata yang digunakan dalam kalimat, tetapi apakah kode *memahami* kata-kata tersebut?
+2. Apakah Anda pikir polaritas sentimen itu akurat, atau dengan kata lain, apakah Anda *setuju* dengan skor tersebut?
+ 1. Secara khusus, apakah Anda setuju atau tidak setuju dengan polaritas **positif** absolut dari kalimat berikut?
+ * “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. Tiga kalimat berikut diberi skor dengan sentimen positif absolut, tetapi setelah membaca dengan cermat, mereka bukan kalimat positif. Mengapa analisis sentimen menganggap mereka sebagai kalimat positif?
+ * 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. Apakah Anda setuju atau tidak setuju dengan polaritas **negatif** absolut dari kalimat berikut?
+ - 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!
+
+✅ Setiap penggemar Jane Austen akan memahami bahwa dia sering menggunakan bukunya untuk mengkritik aspek-aspek yang lebih konyol dari masyarakat Inggris pada masa Regency. Elizabeth Bennett, karakter utama dalam *Pride and Prejudice*, adalah pengamat sosial yang tajam (seperti penulisnya) dan bahasanya sering kali sangat bernuansa. Bahkan Mr. Darcy (tokoh cinta dalam cerita) mencatat penggunaan bahasa Elizabeth yang penuh permainan dan menggoda: "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."
+
+---
+
+## 🚀Tantangan
+
+Bisakah Anda membuat Marvin lebih baik dengan mengekstraksi fitur lain dari input pengguna?
+
+## [Kuis Pasca-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+Ada banyak cara untuk mengekstrak sentimen dari teks. Pikirkan aplikasi bisnis yang mungkin menggunakan teknik ini. Pikirkan juga bagaimana teknik ini bisa salah. Baca lebih lanjut tentang sistem canggih yang siap digunakan oleh perusahaan untuk menganalisis sentimen seperti [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). Uji beberapa kalimat dari Pride and Prejudice di atas dan lihat apakah sistem tersebut dapat mendeteksi nuansa.
+
+## Tugas
+
+[Lisensi puitis](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/3-Translation-Sentiment/assignment.md b/translations/id/6-NLP/3-Translation-Sentiment/assignment.md
new file mode 100644
index 00000000..0981c14f
--- /dev/null
+++ b/translations/id/6-NLP/3-Translation-Sentiment/assignment.md
@@ -0,0 +1,25 @@
+
+# Lisensi Puitis
+
+## Instruksi
+
+Di [notebook ini](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) terdapat lebih dari 500 puisi Emily Dickinson yang sebelumnya telah dianalisis untuk sentimen menggunakan Azure text analytics. Gunakan dataset ini untuk menganalisisnya dengan teknik yang dijelaskan dalam pelajaran. Apakah sentimen yang disarankan dari sebuah puisi sesuai dengan keputusan layanan Azure yang lebih canggih? Mengapa atau mengapa tidak, menurut Anda? Apakah ada hal yang mengejutkan Anda?
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Perbaikan |
+| -------- | -------------------------------------------------------------------------- | ------------------------------------------------------ | ----------------------- |
+| | Notebook disajikan dengan analisis yang solid dari sampel output penulis | Notebook tidak lengkap atau tidak melakukan analisis | Tidak ada notebook yang disajikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/3-Translation-Sentiment/solution/Julia/README.md b/translations/id/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
new file mode 100644
index 00000000..91360ba1
--- /dev/null
+++ b/translations/id/6-NLP/3-Translation-Sentiment/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/3-Translation-Sentiment/solution/R/README.md b/translations/id/6-NLP/3-Translation-Sentiment/solution/R/README.md
new file mode 100644
index 00000000..b9f8327f
--- /dev/null
+++ b/translations/id/6-NLP/3-Translation-Sentiment/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ini adalah tempat sementara
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/4-Hotel-Reviews-1/README.md b/translations/id/6-NLP/4-Hotel-Reviews-1/README.md
new file mode 100644
index 00000000..eb9be50f
--- /dev/null
+++ b/translations/id/6-NLP/4-Hotel-Reviews-1/README.md
@@ -0,0 +1,417 @@
+
+# Analisis Sentimen dengan Ulasan Hotel - Memproses Data
+
+Di bagian ini, Anda akan menggunakan teknik yang telah dipelajari di pelajaran sebelumnya untuk melakukan analisis data eksplorasi pada dataset besar. Setelah memahami kegunaan berbagai kolom, Anda akan belajar:
+
+- cara menghapus kolom yang tidak diperlukan
+- cara menghitung data baru berdasarkan kolom yang ada
+- cara menyimpan dataset hasil untuk digunakan dalam tantangan akhir
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+### Pendahuluan
+
+Sejauh ini Anda telah mempelajari bahwa data teks sangat berbeda dengan data numerik. Jika teks tersebut ditulis atau diucapkan oleh manusia, teks tersebut dapat dianalisis untuk menemukan pola dan frekuensi, sentimen, dan makna. Pelajaran ini membawa Anda ke dalam dataset nyata dengan tantangan nyata: **[515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)** yang mencakup [lisensi CC0: Domain Publik](https://creativecommons.org/publicdomain/zero/1.0/). Dataset ini diambil dari Booking.com dari sumber publik. Pembuat dataset ini adalah Jiashen Liu.
+
+### Persiapan
+
+Anda akan membutuhkan:
+
+* Kemampuan untuk menjalankan notebook .ipynb menggunakan Python 3
+* pandas
+* NLTK, [yang harus Anda instal secara lokal](https://www.nltk.org/install.html)
+* Dataset yang tersedia di Kaggle [515K Hotel Reviews Data in Europe](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe). Ukurannya sekitar 230 MB setelah diekstrak. Unduh ke folder root `/data` yang terkait dengan pelajaran NLP ini.
+
+## Analisis Data Eksplorasi
+
+Tantangan ini mengasumsikan bahwa Anda sedang membangun bot rekomendasi hotel menggunakan analisis sentimen dan skor ulasan tamu. Dataset yang akan Anda gunakan mencakup ulasan dari 1493 hotel berbeda di 6 kota.
+
+Menggunakan Python, dataset ulasan hotel, dan analisis sentimen NLTK, Anda dapat menemukan:
+
+* Apa kata dan frasa yang paling sering digunakan dalam ulasan?
+* Apakah *tag* resmi yang menggambarkan hotel berkorelasi dengan skor ulasan (misalnya, apakah ulasan lebih negatif untuk hotel tertentu oleh *Keluarga dengan anak kecil* dibandingkan oleh *Pelancong solo*, mungkin menunjukkan bahwa hotel tersebut lebih cocok untuk *Pelancong solo*)?
+* Apakah skor sentimen NLTK 'sesuai' dengan skor numerik dari pengulas hotel?
+
+#### Dataset
+
+Mari kita eksplorasi dataset yang telah Anda unduh dan simpan secara lokal. Buka file tersebut di editor seperti VS Code atau bahkan Excel.
+
+Header dalam dataset adalah sebagai berikut:
+
+*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*
+
+Berikut adalah pengelompokan yang mungkin lebih mudah untuk diperiksa:
+##### Kolom Hotel
+
+* `Hotel_Name`, `Hotel_Address`, `lat` (latitude), `lng` (longitude)
+ * Dengan menggunakan *lat* dan *lng*, Anda dapat membuat peta dengan Python yang menunjukkan lokasi hotel (mungkin diberi kode warna untuk ulasan negatif dan positif)
+ * Hotel_Address tidak terlalu berguna bagi kita, dan kemungkinan akan diganti dengan negara untuk mempermudah penyortiran & pencarian
+
+**Kolom Meta-Ulasan Hotel**
+
+* `Average_Score`
+ * Menurut pembuat dataset, kolom ini adalah *Skor Rata-rata hotel, dihitung berdasarkan komentar terbaru dalam satu tahun terakhir*. Ini tampaknya cara yang tidak biasa untuk menghitung skor, tetapi ini adalah data yang diambil, jadi kita mungkin menerimanya apa adanya untuk saat ini.
+
+ ✅ Berdasarkan kolom lain dalam data ini, dapatkah Anda memikirkan cara lain untuk menghitung skor rata-rata?
+
+* `Total_Number_of_Reviews`
+ * Jumlah total ulasan yang diterima hotel ini - tidak jelas (tanpa menulis kode) apakah ini merujuk pada ulasan dalam dataset.
+* `Additional_Number_of_Scoring`
+ * Ini berarti skor ulasan diberikan tetapi tidak ada ulasan positif atau negatif yang ditulis oleh pengulas
+
+**Kolom Ulasan**
+
+- `Reviewer_Score`
+ - Ini adalah nilai numerik dengan maksimal 1 tempat desimal antara nilai minimum dan maksimum 2.5 dan 10
+ - Tidak dijelaskan mengapa 2.5 adalah skor terendah yang mungkin
+- `Negative_Review`
+ - Jika pengulas tidak menulis apa pun, kolom ini akan memiliki "**No Negative**"
+ - Perhatikan bahwa pengulas mungkin menulis ulasan positif di kolom ulasan negatif (misalnya, "tidak ada yang buruk tentang hotel ini")
+- `Review_Total_Negative_Word_Counts`
+ - Jumlah kata negatif yang lebih tinggi menunjukkan skor yang lebih rendah (tanpa memeriksa sentimen)
+- `Positive_Review`
+ - Jika pengulas tidak menulis apa pun, kolom ini akan memiliki "**No Positive**"
+ - Perhatikan bahwa pengulas mungkin menulis ulasan negatif di kolom ulasan positif (misalnya, "tidak ada yang baik tentang hotel ini sama sekali")
+- `Review_Total_Positive_Word_Counts`
+ - Jumlah kata positif yang lebih tinggi menunjukkan skor yang lebih tinggi (tanpa memeriksa sentimen)
+- `Review_Date` dan `days_since_review`
+ - Ukuran kesegaran atau keusangan mungkin diterapkan pada ulasan (ulasan yang lebih lama mungkin tidak seakurat ulasan yang lebih baru karena manajemen hotel berubah, atau renovasi telah dilakukan, atau kolam renang ditambahkan, dll.)
+- `Tags`
+ - Ini adalah deskriptor pendek yang mungkin dipilih pengulas untuk menggambarkan jenis tamu mereka (misalnya, solo atau keluarga), jenis kamar yang mereka miliki, lama menginap, dan bagaimana ulasan dikirimkan.
+ - Sayangnya, menggunakan tag ini bermasalah, lihat bagian di bawah yang membahas kegunaannya
+
+**Kolom Pengulas**
+
+- `Total_Number_of_Reviews_Reviewer_Has_Given`
+ - Ini mungkin menjadi faktor dalam model rekomendasi, misalnya, jika Anda dapat menentukan bahwa pengulas yang lebih produktif dengan ratusan ulasan lebih cenderung negatif daripada positif. Namun, pengulas dari ulasan tertentu tidak diidentifikasi dengan kode unik, dan oleh karena itu tidak dapat dikaitkan dengan satu set ulasan. Ada 30 pengulas dengan 100 atau lebih ulasan, tetapi sulit untuk melihat bagaimana ini dapat membantu model rekomendasi.
+- `Reviewer_Nationality`
+ - Beberapa orang mungkin berpikir bahwa kebangsaan tertentu lebih cenderung memberikan ulasan positif atau negatif karena kecenderungan nasional. Berhati-hatilah membangun pandangan anekdotal seperti itu ke dalam model Anda. Ini adalah stereotip nasional (dan terkadang rasial), dan setiap pengulas adalah individu yang menulis ulasan berdasarkan pengalaman mereka. Ulasan tersebut mungkin telah difilter melalui banyak lensa seperti pengalaman hotel sebelumnya, jarak yang ditempuh, dan temperamen pribadi mereka. Berpikir bahwa kebangsaan mereka adalah alasan untuk skor ulasan sulit untuk dibenarkan.
+
+##### Contoh
+
+| Average Score | Total Number Reviews | Reviewer Score | Negative Review | Positive Review | Tags |
+| -------------- | ---------------------- | ---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- |
+| 7.8 | 1945 | 2.5 | Ini saat ini bukan hotel tetapi situs konstruksi Saya diteror sejak pagi hari dan sepanjang hari dengan kebisingan bangunan yang tidak dapat diterima saat beristirahat setelah perjalanan panjang dan bekerja di kamar Orang-orang bekerja sepanjang hari dengan alat berat di kamar sebelah Saya meminta perubahan kamar tetapi tidak ada kamar yang tenang tersedia Untuk membuat keadaan lebih buruk saya dikenakan biaya berlebih Saya check out di malam hari karena saya harus pergi penerbangan sangat pagi dan menerima tagihan yang sesuai Sehari kemudian hotel membuat biaya tambahan tanpa persetujuan saya melebihi harga yang dipesan Tempat yang mengerikan Jangan menyiksa diri dengan memesan di sini | Tidak ada Tempat yang mengerikan Jauhi | Perjalanan bisnis Pasangan Kamar Double Standar Menginap 2 malam |
+
+Seperti yang Anda lihat, tamu ini tidak memiliki pengalaman menginap yang menyenangkan di hotel ini. Hotel ini memiliki skor rata-rata yang baik yaitu 7.8 dan 1945 ulasan, tetapi pengulas ini memberikan skor 2.5 dan menulis 115 kata tentang betapa negatifnya pengalaman mereka. Jika mereka tidak menulis apa pun di kolom Positive_Review, Anda mungkin menyimpulkan bahwa tidak ada yang positif, tetapi ternyata mereka menulis 7 kata peringatan. Jika kita hanya menghitung kata-kata tanpa memperhatikan makna atau sentimen kata-kata tersebut, kita mungkin memiliki pandangan yang bias tentang maksud pengulas. Anehnya, skor mereka 2.5 membingungkan, karena jika pengalaman menginap di hotel itu sangat buruk, mengapa memberikan poin sama sekali? Dengan menyelidiki dataset secara mendalam, Anda akan melihat bahwa skor terendah yang mungkin adalah 2.5, bukan 0. Skor tertinggi yang mungkin adalah 10.
+
+##### Tags
+
+Seperti disebutkan di atas, sekilas, ide untuk menggunakan `Tags` untuk mengkategorikan data masuk akal. Sayangnya, tag ini tidak distandarisasi, yang berarti bahwa di hotel tertentu, opsinya mungkin *Single room*, *Twin room*, dan *Double room*, tetapi di hotel berikutnya, opsinya adalah *Deluxe Single Room*, *Classic Queen Room*, dan *Executive King Room*. Ini mungkin hal yang sama, tetapi ada begitu banyak variasi sehingga pilihannya menjadi:
+
+1. Mencoba mengubah semua istilah menjadi satu standar, yang sangat sulit, karena tidak jelas apa jalur konversi dalam setiap kasus (misalnya, *Classic single room* dipetakan ke *Single room* tetapi *Superior Queen Room with Courtyard Garden or City View* jauh lebih sulit untuk dipetakan)
+
+1. Kita dapat mengambil pendekatan NLP dan mengukur frekuensi istilah tertentu seperti *Solo*, *Business Traveller*, atau *Family with young kids* saat mereka berlaku untuk setiap hotel, dan memasukkan itu ke dalam rekomendasi
+
+Tags biasanya (tetapi tidak selalu) merupakan satu bidang yang berisi daftar 5 hingga 6 nilai yang dipisahkan koma yang sesuai dengan *Jenis perjalanan*, *Jenis tamu*, *Jenis kamar*, *Jumlah malam*, dan *Jenis perangkat ulasan dikirimkan*. Namun, karena beberapa pengulas tidak mengisi setiap bidang (mereka mungkin meninggalkan satu kosong), nilai-nilai tersebut tidak selalu dalam urutan yang sama.
+
+Sebagai contoh, ambil *Jenis grup*. Ada 1025 kemungkinan unik di bidang ini dalam kolom `Tags`, dan sayangnya hanya beberapa di antaranya yang merujuk pada grup (beberapa adalah jenis kamar, dll.). Jika Anda memfilter hanya yang menyebutkan keluarga, hasilnya berisi banyak hasil tipe *Family room*. Jika Anda menyertakan istilah *dengan*, yaitu menghitung nilai *Family with*, hasilnya lebih baik, dengan lebih dari 80.000 dari 515.000 hasil yang berisi frasa "Family with young children" atau "Family with older children".
+
+Ini berarti kolom tags tidak sepenuhnya tidak berguna bagi kita, tetapi akan membutuhkan beberapa pekerjaan untuk membuatnya berguna.
+
+##### Skor Rata-rata Hotel
+
+Ada sejumlah keanehan atau ketidaksesuaian dengan dataset yang tidak dapat saya pahami, tetapi diilustrasikan di sini agar Anda menyadarinya saat membangun model Anda. Jika Anda memahaminya, beri tahu kami di bagian diskusi!
+
+Dataset memiliki kolom berikut yang berkaitan dengan skor rata-rata dan jumlah ulasan:
+
+1. Hotel_Name
+2. Additional_Number_of_Scoring
+3. Average_Score
+4. Total_Number_of_Reviews
+5. Reviewer_Score
+
+Hotel tunggal dengan jumlah ulasan terbanyak dalam dataset ini adalah *Britannia International Hotel Canary Wharf* dengan 4789 ulasan dari 515.000. Tetapi jika kita melihat nilai `Total_Number_of_Reviews` untuk hotel ini, nilainya adalah 9086. Anda mungkin menyimpulkan bahwa ada banyak skor tanpa ulasan, jadi mungkin kita harus menambahkan nilai kolom `Additional_Number_of_Scoring`. Nilai tersebut adalah 2682, dan menambahkannya ke 4789 menghasilkan 7471 yang masih kurang 1615 dari `Total_Number_of_Reviews`.
+
+Jika Anda mengambil kolom `Average_Score`, Anda mungkin menyimpulkan bahwa itu adalah rata-rata dari ulasan dalam dataset, tetapi deskripsi dari Kaggle adalah "*Skor Rata-rata hotel, dihitung berdasarkan komentar terbaru dalam satu tahun terakhir*". Itu tampaknya tidak terlalu berguna, tetapi kita dapat menghitung rata-rata kita sendiri berdasarkan skor ulasan dalam dataset. Menggunakan hotel yang sama sebagai contoh, skor rata-rata hotel diberikan sebagai 7.1 tetapi skor yang dihitung (rata-rata skor pengulas *dalam* dataset) adalah 6.8. Ini mendekati, tetapi bukan nilai yang sama, dan kita hanya dapat menebak bahwa skor yang diberikan dalam ulasan `Additional_Number_of_Scoring` meningkatkan rata-rata menjadi 7.1. Sayangnya tanpa cara untuk menguji atau membuktikan asumsi tersebut, sulit untuk menggunakan atau mempercayai `Average_Score`, `Additional_Number_of_Scoring`, dan `Total_Number_of_Reviews` ketika mereka didasarkan pada, atau merujuk pada, data yang tidak kita miliki.
+
+Untuk memperumit masalah lebih lanjut, hotel dengan jumlah ulasan tertinggi kedua memiliki skor rata-rata yang dihitung sebesar 8.12 dan dataset `Average_Score` adalah 8.1. Apakah skor ini benar adalah kebetulan atau apakah hotel pertama adalah ketidaksesuaian?
+
+Dengan kemungkinan bahwa hotel-hotel ini mungkin merupakan outlier, dan bahwa mungkin sebagian besar nilai sesuai (tetapi beberapa tidak karena alasan tertentu), kita akan menulis program pendek berikutnya untuk mengeksplorasi nilai-nilai dalam dataset dan menentukan penggunaan yang benar (atau tidak digunakan) dari nilai-nilai tersebut.
+> 🚨 Catatan penting
+>
+> Saat bekerja dengan dataset ini, Anda akan menulis kode yang menghitung sesuatu dari teks tanpa harus membaca atau menganalisis teks itu sendiri. Inilah inti dari NLP, menafsirkan makna atau sentimen tanpa harus melibatkan manusia secara langsung. Namun, ada kemungkinan Anda akan membaca beberapa ulasan negatif. Saya menyarankan Anda untuk tidak melakukannya, karena Anda tidak perlu. Beberapa ulasan tersebut mungkin konyol atau tidak relevan, seperti ulasan negatif tentang hotel yang menyebutkan "Cuacanya tidak bagus", sesuatu yang berada di luar kendali hotel, atau bahkan siapa pun. Tetapi ada sisi gelap dari beberapa ulasan juga. Kadang-kadang ulasan negatif mengandung unsur rasis, seksis, atau diskriminasi usia. Hal ini sangat disayangkan tetapi dapat dipahami mengingat dataset ini diambil dari situs web publik. Beberapa pengulas meninggalkan ulasan yang mungkin Anda anggap tidak menyenangkan, membuat tidak nyaman, atau bahkan mengganggu. Lebih baik biarkan kode yang mengukur sentimen daripada membacanya sendiri dan merasa terganggu. Meski demikian, hanya sebagian kecil yang menulis hal-hal semacam itu, tetapi mereka tetap ada.
+## Latihan - Eksplorasi Data
+### Memuat Data
+
+Cukup sudah memeriksa data secara visual, sekarang saatnya menulis kode dan mendapatkan jawaban! Bagian ini menggunakan pustaka pandas. Tugas pertama Anda adalah memastikan bahwa Anda dapat memuat dan membaca data CSV. Pustaka pandas memiliki loader CSV yang cepat, dan hasilnya ditempatkan dalam dataframe, seperti yang telah dipelajari di pelajaran sebelumnya. CSV yang kita muat memiliki lebih dari setengah juta baris, tetapi hanya 17 kolom. Pandas memberikan banyak cara yang kuat untuk berinteraksi dengan dataframe, termasuk kemampuan untuk melakukan operasi pada setiap baris.
+
+Mulai dari sini dalam pelajaran ini, akan ada potongan kode dan beberapa penjelasan tentang kode serta diskusi tentang apa arti hasilnya. Gunakan _notebook.ipynb_ yang disertakan untuk kode Anda.
+
+Mari kita mulai dengan memuat file data yang akan Anda gunakan:
+
+```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")
+```
+
+Setelah data dimuat, kita dapat melakukan beberapa operasi pada data tersebut. Simpan kode ini di bagian atas program Anda untuk bagian berikutnya.
+
+## Eksplorasi Data
+
+Dalam kasus ini, data sudah *bersih*, artinya data siap untuk digunakan dan tidak memiliki karakter dalam bahasa lain yang dapat mengganggu algoritma yang hanya mengharapkan karakter dalam bahasa Inggris.
+
+✅ Anda mungkin harus bekerja dengan data yang memerlukan beberapa pemrosesan awal untuk memformatnya sebelum menerapkan teknik NLP, tetapi tidak kali ini. Jika Anda harus melakukannya, bagaimana Anda akan menangani karakter non-Inggris?
+
+Luangkan waktu untuk memastikan bahwa setelah data dimuat, Anda dapat mengeksplorasinya dengan kode. Sangat mudah untuk ingin fokus pada kolom `Negative_Review` dan `Positive_Review`. Kolom-kolom tersebut diisi dengan teks alami untuk diproses oleh algoritma NLP Anda. Tapi tunggu! Sebelum Anda melompat ke NLP dan analisis sentimen, Anda harus mengikuti kode di bawah ini untuk memastikan apakah nilai-nilai yang diberikan dalam dataset sesuai dengan nilai-nilai yang Anda hitung dengan pandas.
+
+## Operasi Dataframe
+
+Tugas pertama dalam pelajaran ini adalah memeriksa apakah pernyataan berikut benar dengan menulis beberapa kode yang memeriksa dataframe (tanpa mengubahnya).
+
+> Seperti banyak tugas pemrograman, ada beberapa cara untuk menyelesaikannya, tetapi saran yang baik adalah melakukannya dengan cara yang paling sederhana dan mudah, terutama jika akan lebih mudah dipahami saat Anda kembali ke kode ini di masa depan. Dengan dataframe, ada API yang komprehensif yang sering kali memiliki cara untuk melakukan apa yang Anda inginkan secara efisien.
+
+Anggap pertanyaan berikut sebagai tugas pemrograman dan coba jawab tanpa melihat solusinya.
+
+1. Cetak *shape* dari dataframe yang baru saja Anda muat (shape adalah jumlah baris dan kolom).
+2. Hitung frekuensi untuk kebangsaan reviewer:
+ 1. Berapa banyak nilai yang berbeda untuk kolom `Reviewer_Nationality` dan apa saja nilainya?
+ 2. Kebangsaan reviewer mana yang paling umum dalam dataset (cetak negara dan jumlah ulasan)?
+ 3. Apa 10 kebangsaan yang paling sering ditemukan berikutnya, dan hitungan frekuensinya?
+3. Hotel mana yang paling sering diulas untuk masing-masing dari 10 kebangsaan reviewer teratas?
+4. Berapa banyak ulasan per hotel (hitungan frekuensi hotel) dalam dataset?
+5. Meskipun ada kolom `Average_Score` untuk setiap hotel dalam dataset, Anda juga dapat menghitung skor rata-rata (mengambil rata-rata dari semua skor reviewer dalam dataset untuk setiap hotel). Tambahkan kolom baru ke dataframe Anda dengan header kolom `Calc_Average_Score` yang berisi rata-rata yang dihitung tersebut.
+6. Apakah ada hotel yang memiliki `Average_Score` dan `Calc_Average_Score` yang sama (dibulatkan ke 1 tempat desimal)?
+ 1. Coba tulis fungsi Python yang mengambil Series (baris) sebagai argumen dan membandingkan nilainya, mencetak pesan saat nilainya tidak sama. Kemudian gunakan metode `.apply()` untuk memproses setiap baris dengan fungsi tersebut.
+7. Hitung dan cetak berapa banyak baris yang memiliki nilai kolom `Negative_Review` berupa "No Negative".
+8. Hitung dan cetak berapa banyak baris yang memiliki nilai kolom `Positive_Review` berupa "No Positive".
+9. Hitung dan cetak berapa banyak baris yang memiliki nilai kolom `Positive_Review` berupa "No Positive" **dan** nilai kolom `Negative_Review` berupa "No Negative".
+
+### Jawaban Kode
+
+1. Cetak *shape* dari dataframe yang baru saja Anda muat (shape adalah jumlah baris dan kolom).
+
+ ```python
+ print("The shape of the data (rows, cols) is " + str(df.shape))
+ > The shape of the data (rows, cols) is (515738, 17)
+ ```
+
+2. Hitung frekuensi untuk kebangsaan reviewer:
+
+ 1. Berapa banyak nilai yang berbeda untuk kolom `Reviewer_Nationality` dan apa saja nilainya?
+ 2. Kebangsaan reviewer mana yang paling umum dalam dataset (cetak negara dan jumlah ulasan)?
+
+ ```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. Apa 10 kebangsaan yang paling sering ditemukan berikutnya, dan hitungan frekuensinya?
+
+ ```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. Hotel mana yang paling sering diulas untuk masing-masing dari 10 kebangsaan reviewer teratas?
+
+ ```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. Berapa banyak ulasan per hotel (hitungan frekuensi hotel) dalam dataset?
+
+ ```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 |
+
+ Anda mungkin menyadari bahwa hasil *counted in the dataset* tidak sesuai dengan nilai di `Total_Number_of_Reviews`. Tidak jelas apakah nilai ini dalam dataset mewakili jumlah total ulasan yang dimiliki hotel, tetapi tidak semuanya di-scrape, atau perhitungan lainnya. `Total_Number_of_Reviews` tidak digunakan dalam model karena ketidakjelasan ini.
+
+5. Meskipun ada kolom `Average_Score` untuk setiap hotel dalam dataset, Anda juga dapat menghitung skor rata-rata (mengambil rata-rata dari semua skor reviewer dalam dataset untuk setiap hotel). Tambahkan kolom baru ke dataframe Anda dengan header kolom `Calc_Average_Score` yang berisi rata-rata yang dihitung tersebut. Cetak kolom `Hotel_Name`, `Average_Score`, dan `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"]])
+ ```
+
+ Anda mungkin juga bertanya-tanya tentang nilai `Average_Score` dan mengapa kadang-kadang berbeda dari skor rata-rata yang dihitung. Karena kita tidak dapat mengetahui mengapa beberapa nilai cocok, tetapi yang lain memiliki perbedaan, yang paling aman dalam kasus ini adalah menggunakan skor ulasan yang kita miliki untuk menghitung rata-rata sendiri. Namun demikian, perbedaannya biasanya sangat kecil, berikut adalah hotel dengan deviasi terbesar dari rata-rata dataset dan rata-rata yang dihitung:
+
+ | 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 |
+
+ Dengan hanya 1 hotel yang memiliki perbedaan skor lebih besar dari 1, ini berarti kita mungkin dapat mengabaikan perbedaan tersebut dan menggunakan skor rata-rata yang dihitung.
+
+6. Hitung dan cetak berapa banyak baris yang memiliki nilai kolom `Negative_Review` berupa "No Negative".
+
+7. Hitung dan cetak berapa banyak baris yang memiliki nilai kolom `Positive_Review` berupa "No Positive".
+
+8. Hitung dan cetak berapa banyak baris yang memiliki nilai kolom `Positive_Review` berupa "No Positive" **dan** nilai kolom `Negative_Review` berupa "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
+ ```
+
+## Cara Lain
+
+Cara lain untuk menghitung item tanpa Lambda, dan menggunakan sum untuk menghitung baris:
+
+ ```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
+ ```
+
+ Anda mungkin menyadari bahwa ada 127 baris yang memiliki nilai "No Negative" dan "No Positive" untuk kolom `Negative_Review` dan `Positive_Review` masing-masing. Artinya, reviewer memberikan skor numerik kepada hotel, tetapi tidak menulis ulasan positif maupun negatif. Untungnya ini adalah jumlah baris yang kecil (127 dari 515738, atau 0,02%), sehingga kemungkinan besar tidak akan memengaruhi model atau hasil kita ke arah tertentu, tetapi Anda mungkin tidak mengharapkan dataset ulasan memiliki baris tanpa ulasan, jadi ini layak untuk dieksplorasi.
+
+Setelah Anda mengeksplorasi dataset, dalam pelajaran berikutnya Anda akan memfilter data dan menambahkan analisis sentimen.
+
+---
+## 🚀Tantangan
+
+Pelajaran ini menunjukkan, seperti yang kita lihat di pelajaran sebelumnya, betapa pentingnya memahami data Anda dan kekurangannya sebelum melakukan operasi pada data tersebut. Data berbasis teks, khususnya, memerlukan pengamatan yang cermat. Telusuri berbagai dataset yang kaya teks dan lihat apakah Anda dapat menemukan area yang dapat memperkenalkan bias atau sentimen yang menyimpang ke dalam model.
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Ikuti [Learning Path tentang NLP ini](https://docs.microsoft.com/learn/paths/explore-natural-language-processing/?WT.mc_id=academic-77952-leestott) untuk menemukan alat yang dapat dicoba saat membangun model yang kaya teks dan ucapan.
+
+## Tugas
+
+[NLTK](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/4-Hotel-Reviews-1/assignment.md b/translations/id/6-NLP/4-Hotel-Reviews-1/assignment.md
new file mode 100644
index 00000000..c7abd144
--- /dev/null
+++ b/translations/id/6-NLP/4-Hotel-Reviews-1/assignment.md
@@ -0,0 +1,19 @@
+
+# NLTK
+
+## Instruksi
+
+NLTK adalah pustaka terkenal yang digunakan dalam linguistik komputasi dan NLP. Gunakan kesempatan ini untuk membaca '[buku NLTK](https://www.nltk.org/book/)' dan coba latihan-latihannya. Dalam tugas yang tidak dinilai ini, Anda akan mengenal pustaka ini lebih dalam.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md b/translations/id/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
new file mode 100644
index 00000000..e8fb937a
--- /dev/null
+++ b/translations/id/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/4-Hotel-Reviews-1/solution/R/README.md b/translations/id/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
new file mode 100644
index 00000000..f83cee00
--- /dev/null
+++ b/translations/id/6-NLP/4-Hotel-Reviews-1/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ini adalah tempat sementara
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/5-Hotel-Reviews-2/README.md b/translations/id/6-NLP/5-Hotel-Reviews-2/README.md
new file mode 100644
index 00000000..0ae9190b
--- /dev/null
+++ b/translations/id/6-NLP/5-Hotel-Reviews-2/README.md
@@ -0,0 +1,389 @@
+
+# Analisis Sentimen dengan Ulasan Hotel
+
+Setelah Anda menjelajahi dataset secara mendetail, sekarang saatnya untuk memfilter kolom dan menggunakan teknik NLP pada dataset untuk mendapatkan wawasan baru tentang hotel.
+
+## [Kuis Pra-Kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+### Operasi Pemfilteran & Analisis Sentimen
+
+Seperti yang mungkin sudah Anda perhatikan, dataset memiliki beberapa masalah. Beberapa kolom diisi dengan informasi yang tidak berguna, sementara yang lain tampak tidak benar. Jika benar, tidak jelas bagaimana mereka dihitung, dan jawabannya tidak dapat diverifikasi secara independen melalui perhitungan Anda sendiri.
+
+## Latihan: Pemrosesan Data Lebih Lanjut
+
+Bersihkan data sedikit lebih banyak. Tambahkan kolom yang akan berguna nanti, ubah nilai di kolom lain, dan hapus beberapa kolom sepenuhnya.
+
+1. Pemrosesan kolom awal
+
+ 1. Hapus `lat` dan `lng`
+
+ 2. Ganti nilai `Hotel_Address` dengan nilai berikut (jika alamat mengandung nama kota dan negara yang sama, ubah menjadi hanya kota dan negara).
+
+ Berikut adalah satu-satunya kota dan negara dalam dataset:
+
+ 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())
+ ```
+
+ Sekarang Anda dapat melakukan query data tingkat negara:
+
+ ```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. Proses kolom Meta-review Hotel
+
+ 1. Hapus `Additional_Number_of_Scoring`
+
+ 2. Ganti `Total_Number_of_Reviews` dengan jumlah total ulasan untuk hotel tersebut yang benar-benar ada dalam dataset
+
+ 3. Ganti `Average_Score` dengan skor yang dihitung sendiri
+
+ ```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. Proses kolom ulasan
+
+ 1. Hapus `Review_Total_Negative_Word_Counts`, `Review_Total_Positive_Word_Counts`, `Review_Date`, dan `days_since_review`
+
+ 2. Biarkan `Reviewer_Score`, `Negative_Review`, dan `Positive_Review` seperti apa adanya
+
+ 3. Biarkan `Tags` untuk sementara waktu
+
+ - Kita akan melakukan beberapa operasi pemfilteran tambahan pada tag di bagian berikutnya, lalu tag akan dihapus
+
+4. Proses kolom reviewer
+
+ 1. Hapus `Total_Number_of_Reviews_Reviewer_Has_Given`
+
+ 2. Biarkan `Reviewer_Nationality`
+
+### Kolom Tag
+
+Kolom `Tag` bermasalah karena merupakan daftar (dalam bentuk teks) yang disimpan di kolom. Sayangnya, urutan dan jumlah sub bagian dalam kolom ini tidak selalu sama. Sulit bagi manusia untuk mengidentifikasi frasa yang benar untuk diperhatikan, karena ada 515.000 baris, dan 1427 hotel, dan masing-masing memiliki opsi yang sedikit berbeda yang dapat dipilih oleh seorang reviewer. Di sinilah NLP sangat berguna. Anda dapat memindai teks dan menemukan frasa yang paling umum, lalu menghitungnya.
+
+Sayangnya, kita tidak tertarik pada kata tunggal, tetapi frasa multi-kata (misalnya *Perjalanan bisnis*). Menjalankan algoritma distribusi frekuensi multi-kata pada data sebanyak itu (6762646 kata) bisa memakan waktu yang luar biasa lama, tetapi tanpa melihat data, tampaknya itu adalah pengeluaran yang diperlukan. Di sinilah analisis data eksplorasi menjadi berguna, karena Anda telah melihat sampel tag seperti `[' Business trip ', ' Solo traveler ', ' Single Room ', ' Stayed 5 nights ', ' Submitted from a mobile device ']`, Anda dapat mulai bertanya apakah mungkin untuk sangat mengurangi pemrosesan yang harus Anda lakukan. Untungnya, itu mungkin - tetapi pertama-tama Anda perlu mengikuti beberapa langkah untuk memastikan tag yang relevan.
+
+### Memfilter Tag
+
+Ingatlah bahwa tujuan dataset adalah untuk menambahkan sentimen dan kolom yang akan membantu Anda memilih hotel terbaik (untuk diri sendiri atau mungkin untuk klien yang meminta Anda membuat bot rekomendasi hotel). Anda perlu bertanya pada diri sendiri apakah tag tersebut berguna atau tidak dalam dataset akhir. Berikut adalah satu interpretasi (jika Anda membutuhkan dataset untuk alasan lain, tag yang berbeda mungkin tetap masuk/keluar dari seleksi):
+
+1. Jenis perjalanan relevan, dan itu harus tetap
+2. Jenis grup tamu penting, dan itu harus tetap
+3. Jenis kamar, suite, atau studio tempat tamu menginap tidak relevan (semua hotel pada dasarnya memiliki kamar yang sama)
+4. Perangkat tempat ulasan dikirimkan tidak relevan
+5. Jumlah malam tamu menginap *mungkin* relevan jika Anda mengaitkan masa tinggal yang lebih lama dengan mereka menyukai hotel lebih banyak, tetapi itu agak dipaksakan, dan mungkin tidak relevan
+
+Singkatnya, **pertahankan 2 jenis tag dan hapus yang lainnya**.
+
+Pertama, Anda tidak ingin menghitung tag sampai mereka dalam format yang lebih baik, jadi itu berarti menghapus tanda kurung siku dan tanda kutip. Anda dapat melakukan ini dengan beberapa cara, tetapi Anda ingin yang tercepat karena ini bisa memakan waktu lama untuk memproses banyak data. Untungnya, pandas memiliki cara mudah untuk melakukan setiap langkah ini.
+
+```Python
+# Remove opening and closing brackets
+df.Tags = df.Tags.str.strip("[']")
+# remove all quotes too
+df.Tags = df.Tags.str.replace(" ', '", ",", regex = False)
+```
+
+Setiap tag menjadi seperti: `Business trip, Solo traveler, Single Room, Stayed 5 nights, Submitted from a mobile device`.
+
+Selanjutnya kita menemukan masalah. Beberapa ulasan, atau baris, memiliki 5 kolom, beberapa 3, beberapa 6. Ini adalah hasil dari bagaimana dataset dibuat, dan sulit untuk diperbaiki. Anda ingin mendapatkan hitungan frekuensi dari setiap frasa, tetapi mereka berada dalam urutan yang berbeda di setiap ulasan, sehingga hitungan mungkin salah, dan sebuah hotel mungkin tidak mendapatkan tag yang layak untuknya.
+
+Sebaliknya, Anda akan menggunakan urutan yang berbeda untuk keuntungan kita, karena setiap tag adalah multi-kata tetapi juga dipisahkan oleh koma! Cara termudah untuk melakukan ini adalah dengan membuat 6 kolom sementara dengan setiap tag dimasukkan ke dalam kolom yang sesuai dengan urutannya dalam tag. Anda kemudian dapat menggabungkan 6 kolom menjadi satu kolom besar dan menjalankan metode `value_counts()` pada kolom yang dihasilkan. Dengan mencetaknya, Anda akan melihat ada 2428 tag unik. Berikut adalah sampel kecil:
+
+| 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 |
+
+Beberapa tag umum seperti `Submitted from a mobile device` tidak berguna bagi kita, jadi mungkin bijaksana untuk menghapusnya sebelum menghitung kemunculan frasa, tetapi ini adalah operasi yang sangat cepat sehingga Anda dapat membiarkannya dan mengabaikannya.
+
+### Menghapus Tag Durasi Menginap
+
+Menghapus tag ini adalah langkah pertama, ini sedikit mengurangi jumlah total tag yang harus dipertimbangkan. Perhatikan bahwa Anda tidak menghapusnya dari dataset, hanya memilih untuk menghapusnya dari pertimbangan sebagai nilai untuk dihitung/disimpan dalam dataset ulasan.
+
+| Durasi menginap | 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 |
+| ... | ... |
+
+Ada berbagai macam kamar, suite, studio, apartemen, dan sebagainya. Semuanya memiliki arti yang kurang lebih sama dan tidak relevan bagi Anda, jadi hapus dari pertimbangan.
+
+| Jenis kamar | 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 |
+
+Akhirnya, dan ini menyenangkan (karena tidak memerlukan banyak pemrosesan sama sekali), Anda akan mendapatkan tag *berguna* berikut:
+
+| 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 |
+
+Anda bisa berargumen bahwa `Travellers with friends` kurang lebih sama dengan `Group`, dan itu adil untuk menggabungkan keduanya seperti di atas. Kode untuk mengidentifikasi tag yang benar ada di [notebook Tags](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb).
+
+Langkah terakhir adalah membuat kolom baru untuk masing-masing tag ini. Kemudian, untuk setiap baris ulasan, jika kolom `Tag` cocok dengan salah satu kolom baru, tambahkan 1, jika tidak, tambahkan 0. Hasil akhirnya adalah hitungan berapa banyak reviewer yang memilih hotel ini (secara agregat) untuk, misalnya, bisnis vs rekreasi, atau untuk membawa hewan peliharaan, dan ini adalah informasi yang berguna saat merekomendasikan 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)
+
+```
+
+### Simpan File Anda
+
+Akhirnya, simpan dataset seperti sekarang dengan nama baru.
+
+```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)
+```
+
+## Operasi Analisis Sentimen
+
+Di bagian terakhir ini, Anda akan menerapkan analisis sentimen pada kolom ulasan dan menyimpan hasilnya dalam dataset.
+
+## Latihan: memuat dan menyimpan data yang telah difilter
+
+Perhatikan bahwa sekarang Anda memuat dataset yang telah difilter yang disimpan di bagian sebelumnya, **bukan** dataset asli.
+
+```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)
+```
+
+### Menghapus Stop Words
+
+Jika Anda menjalankan Analisis Sentimen pada kolom ulasan Negatif dan Positif, itu bisa memakan waktu lama. Diuji pada laptop uji yang kuat dengan CPU cepat, itu memakan waktu 12 - 14 menit tergantung pada perpustakaan sentimen yang digunakan. Itu adalah waktu yang (relatif) lama, jadi layak untuk diselidiki apakah itu bisa dipercepat.
+
+Menghapus stop words, atau kata-kata umum dalam bahasa Inggris yang tidak mengubah sentimen sebuah kalimat, adalah langkah pertama. Dengan menghapusnya, analisis sentimen harus berjalan lebih cepat, tetapi tidak menjadi kurang akurat (karena stop words tidak memengaruhi sentimen, tetapi mereka memperlambat analisis).
+
+Ulasan negatif terpanjang adalah 395 kata, tetapi setelah menghapus stop words, menjadi 195 kata.
+
+Menghapus stop words juga merupakan operasi yang cepat, menghapus stop words dari 2 kolom ulasan di lebih dari 515.000 baris memakan waktu 3,3 detik pada perangkat uji. Itu bisa memakan waktu sedikit lebih lama atau lebih cepat tergantung pada kecepatan CPU perangkat Anda, RAM, apakah Anda memiliki SSD atau tidak, dan beberapa faktor lainnya. Relatif singkatnya operasi berarti bahwa jika itu meningkatkan waktu analisis sentimen, maka itu layak dilakukan.
+
+```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)
+```
+
+### Melakukan Analisis Sentimen
+
+Sekarang Anda harus menghitung analisis sentimen untuk kolom ulasan negatif dan positif, dan menyimpan hasilnya dalam 2 kolom baru. Uji sentimen adalah membandingkannya dengan skor reviewer untuk ulasan yang sama. Misalnya, jika sentimen menganggap ulasan negatif memiliki sentimen 1 (sentimen sangat positif) dan sentimen ulasan positif 1, tetapi reviewer memberikan hotel skor terendah yang mungkin, maka teks ulasan tidak sesuai dengan skor, atau analis sentimen tidak dapat mengenali sentimen dengan benar. Anda harus mengharapkan beberapa skor sentimen benar-benar salah, dan sering kali itu dapat dijelaskan, misalnya ulasan bisa sangat sarkastik "Tentu saja saya SUKA tidur di kamar tanpa pemanas" dan analis sentimen menganggap itu sentimen positif, meskipun manusia yang membacanya akan tahu itu adalah sarkasme.
+NLTK menyediakan berbagai analyzer sentimen untuk dipelajari, dan Anda dapat menggantinya serta melihat apakah analisis sentimen menjadi lebih atau kurang akurat. Analisis sentimen VADER digunakan di sini.
+
+> 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, 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"]
+```
+
+Nantinya dalam program Anda, ketika Anda siap untuk menghitung sentimen, Anda dapat menerapkannya pada setiap ulasan seperti berikut:
+
+```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")
+```
+
+Proses ini memakan waktu sekitar 120 detik di komputer saya, tetapi akan bervariasi di setiap komputer. Jika Anda ingin mencetak hasilnya dan melihat apakah sentimen sesuai dengan ulasan:
+
+```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"]])
+```
+
+Hal terakhir yang harus dilakukan dengan file sebelum menggunakannya dalam tantangan adalah menyimpannya! Anda juga sebaiknya mempertimbangkan untuk mengatur ulang semua kolom baru Anda agar lebih mudah digunakan (untuk manusia, ini adalah perubahan kosmetik).
+
+```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)
+```
+
+Anda harus menjalankan seluruh kode untuk [notebook analisis](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) (setelah Anda menjalankan [notebook penyaringan](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) untuk menghasilkan file Hotel_Reviews_Filtered.csv).
+
+Untuk merangkum, langkah-langkahnya adalah:
+
+1. File dataset asli **Hotel_Reviews.csv** dieksplorasi dalam pelajaran sebelumnya dengan [notebook eksplorasi](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb)
+2. Hotel_Reviews.csv disaring oleh [notebook penyaringan](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) menghasilkan **Hotel_Reviews_Filtered.csv**
+3. Hotel_Reviews_Filtered.csv diproses oleh [notebook analisis sentimen](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) menghasilkan **Hotel_Reviews_NLP.csv**
+4. Gunakan Hotel_Reviews_NLP.csv dalam Tantangan NLP di bawah ini
+
+### Kesimpulan
+
+Ketika Anda memulai, Anda memiliki dataset dengan kolom dan data tetapi tidak semuanya dapat diverifikasi atau digunakan. Anda telah mengeksplorasi data, menyaring apa yang tidak Anda perlukan, mengubah tag menjadi sesuatu yang berguna, menghitung rata-rata Anda sendiri, menambahkan beberapa kolom sentimen, dan semoga, mempelajari beberapa hal menarik tentang pemrosesan teks alami.
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tantangan
+
+Sekarang setelah dataset Anda dianalisis untuk sentimen, coba gunakan strategi yang telah Anda pelajari dalam kurikulum ini (mungkin clustering?) untuk menentukan pola terkait sentimen.
+
+## Tinjauan & Studi Mandiri
+
+Ambil [modul Learn ini](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott) untuk mempelajari lebih lanjut dan menggunakan alat yang berbeda untuk mengeksplorasi sentimen dalam teks.
+
+## Tugas
+
+[Coba dataset yang berbeda](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/5-Hotel-Reviews-2/assignment.md b/translations/id/6-NLP/5-Hotel-Reviews-2/assignment.md
new file mode 100644
index 00000000..bf0ef2b9
--- /dev/null
+++ b/translations/id/6-NLP/5-Hotel-Reviews-2/assignment.md
@@ -0,0 +1,25 @@
+
+# Coba dataset yang berbeda
+
+## Instruksi
+
+Setelah Anda mempelajari cara menggunakan NLTK untuk memberikan sentimen pada teks, cobalah dataset yang berbeda. Anda mungkin perlu melakukan beberapa pemrosesan data, jadi buatlah notebook dan dokumentasikan proses pemikiran Anda. Apa yang Anda temukan?
+
+## Rubrik
+
+| Kriteria | Luar Biasa | Memadai | Perlu Perbaikan |
+| -------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------- |
+| | Notebook lengkap dan dataset disajikan dengan sel yang terdokumentasi dengan baik menjelaskan cara sentimen diberikan | Notebook kurang penjelasan yang baik | Notebook memiliki kekurangan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md b/translations/id/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
new file mode 100644
index 00000000..486466dd
--- /dev/null
+++ b/translations/id/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/5-Hotel-Reviews-2/solution/R/README.md b/translations/id/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
new file mode 100644
index 00000000..841ccb11
--- /dev/null
+++ b/translations/id/6-NLP/5-Hotel-Reviews-2/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ini adalah tempat sementara
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/README.md b/translations/id/6-NLP/README.md
new file mode 100644
index 00000000..dfe80945
--- /dev/null
+++ b/translations/id/6-NLP/README.md
@@ -0,0 +1,38 @@
+
+# Memulai dengan pemrosesan bahasa alami
+
+Pemrosesan bahasa alami (NLP) adalah kemampuan program komputer untuk memahami bahasa manusia sebagaimana diucapkan dan ditulis -- yang disebut sebagai bahasa alami. Ini adalah komponen dari kecerdasan buatan (AI). NLP telah ada selama lebih dari 50 tahun dan memiliki akar dalam bidang linguistik. Seluruh bidang ini diarahkan untuk membantu mesin memahami dan memproses bahasa manusia. Hal ini kemudian dapat digunakan untuk melakukan tugas-tugas seperti pemeriksaan ejaan atau terjemahan mesin. NLP memiliki berbagai aplikasi dunia nyata di sejumlah bidang, termasuk penelitian medis, mesin pencari, dan intelijen bisnis.
+
+## Topik regional: Bahasa dan sastra Eropa serta hotel romantis di Eropa ❤️
+
+Dalam bagian kurikulum ini, Anda akan diperkenalkan dengan salah satu penggunaan pembelajaran mesin yang paling luas: pemrosesan bahasa alami (NLP). Berasal dari linguistik komputasi, kategori kecerdasan buatan ini adalah jembatan antara manusia dan mesin melalui komunikasi suara atau teks.
+
+Dalam pelajaran ini, kita akan mempelajari dasar-dasar NLP dengan membangun bot percakapan kecil untuk memahami bagaimana pembelajaran mesin membantu membuat percakapan ini semakin 'cerdas'. Anda akan melakukan perjalanan kembali ke masa lalu, berbincang dengan Elizabeth Bennett dan Mr. Darcy dari novel klasik Jane Austen, **Pride and Prejudice**, yang diterbitkan pada tahun 1813. Kemudian, Anda akan memperdalam pengetahuan Anda dengan mempelajari analisis sentimen melalui ulasan hotel di Eropa.
+
+
+> Foto oleh Elaine Howlin di Unsplash
+
+## Pelajaran
+
+1. [Pengantar pemrosesan bahasa alami](1-Introduction-to-NLP/README.md)
+2. [Tugas dan teknik umum dalam NLP](2-Tasks/README.md)
+3. [Terjemahan dan analisis sentimen dengan pembelajaran mesin](3-Translation-Sentiment/README.md)
+4. [Mempersiapkan data Anda](4-Hotel-Reviews-1/README.md)
+5. [NLTK untuk Analisis Sentimen](5-Hotel-Reviews-2/README.md)
+
+## Kredit
+
+Pelajaran pemrosesan bahasa alami ini ditulis dengan ☕ oleh [Stephen Howell](https://twitter.com/Howell_MSFT)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/6-NLP/data/README.md b/translations/id/6-NLP/data/README.md
new file mode 100644
index 00000000..ca020612
--- /dev/null
+++ b/translations/id/6-NLP/data/README.md
@@ -0,0 +1,15 @@
+
+Unduh data ulasan hotel ke folder ini.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/1-Introduction/README.md b/translations/id/7-TimeSeries/1-Introduction/README.md
new file mode 100644
index 00000000..e492a01c
--- /dev/null
+++ b/translations/id/7-TimeSeries/1-Introduction/README.md
@@ -0,0 +1,199 @@
+
+# Pengantar Peramalan Deret Waktu
+
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Dalam pelajaran ini dan pelajaran berikutnya, Anda akan mempelajari sedikit tentang peramalan deret waktu, bagian yang menarik dan berharga dari repertoar seorang ilmuwan ML yang mungkin kurang dikenal dibandingkan topik lainnya. Peramalan deret waktu adalah semacam 'bola kristal': berdasarkan kinerja masa lalu dari suatu variabel seperti harga, Anda dapat memprediksi nilai potensialnya di masa depan.
+
+[](https://youtu.be/cBojo1hsHiI "Pengantar peramalan deret waktu")
+
+> 🎥 Klik gambar di atas untuk video tentang peramalan deret waktu
+
+## [Kuis pra-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+Ini adalah bidang yang berguna dan menarik dengan nilai nyata bagi bisnis, mengingat penerapannya langsung pada masalah harga, inventaris, dan rantai pasokan. Meskipun teknik pembelajaran mendalam mulai digunakan untuk mendapatkan wawasan lebih baik dalam memprediksi kinerja masa depan, peramalan deret waktu tetap menjadi bidang yang sangat dipengaruhi oleh teknik ML klasik.
+
+> Kurikulum deret waktu yang berguna dari Penn State dapat ditemukan [di sini](https://online.stat.psu.edu/stat510/lesson/1)
+
+## Pengantar
+
+Misalkan Anda mengelola serangkaian meteran parkir pintar yang menyediakan data tentang seberapa sering mereka digunakan dan berapa lama selama periode waktu tertentu.
+
+> Bagaimana jika Anda dapat memprediksi, berdasarkan kinerja masa lalu meteran tersebut, nilai masa depannya sesuai dengan hukum penawaran dan permintaan?
+
+Memprediksi dengan akurat kapan harus bertindak untuk mencapai tujuan Anda adalah tantangan yang dapat diatasi dengan peramalan deret waktu. Meskipun mungkin tidak menyenangkan bagi orang-orang untuk dikenakan biaya lebih tinggi pada waktu sibuk saat mereka mencari tempat parkir, itu akan menjadi cara yang pasti untuk menghasilkan pendapatan guna membersihkan jalanan!
+
+Mari kita eksplorasi beberapa jenis algoritma deret waktu dan mulai membuat notebook untuk membersihkan dan mempersiapkan data. Data yang akan Anda analisis diambil dari kompetisi peramalan GEFCom2014. Data ini terdiri dari 3 tahun nilai beban listrik dan suhu per jam antara tahun 2012 dan 2014. Berdasarkan pola historis beban listrik dan suhu, Anda dapat memprediksi nilai beban listrik di masa depan.
+
+Dalam contoh ini, Anda akan belajar bagaimana meramalkan satu langkah waktu ke depan, hanya menggunakan data beban historis. Namun sebelum memulai, ada baiknya memahami apa yang terjadi di balik layar.
+
+## Beberapa definisi
+
+Saat menemukan istilah 'deret waktu', Anda perlu memahami penggunaannya dalam beberapa konteks berbeda.
+
+🎓 **Deret waktu**
+
+Dalam matematika, "deret waktu adalah serangkaian titik data yang diindeks (atau dicantumkan atau digrafikkan) dalam urutan waktu. Paling umum, deret waktu adalah urutan yang diambil pada titik-titik waktu yang berjarak sama secara berturut-turut." Contoh deret waktu adalah nilai penutupan harian [Dow Jones Industrial Average](https://wikipedia.org/wiki/Time_series). Penggunaan plot deret waktu dan pemodelan statistik sering ditemukan dalam pemrosesan sinyal, peramalan cuaca, prediksi gempa bumi, dan bidang lain di mana peristiwa terjadi dan titik data dapat digrafikkan dari waktu ke waktu.
+
+🎓 **Analisis deret waktu**
+
+Analisis deret waktu adalah analisis data deret waktu yang disebutkan di atas. Data deret waktu dapat berbentuk berbeda, termasuk 'deret waktu terputus' yang mendeteksi pola dalam evolusi deret waktu sebelum dan setelah peristiwa yang mengganggu. Jenis analisis yang diperlukan untuk deret waktu bergantung pada sifat data. Data deret waktu itu sendiri dapat berupa serangkaian angka atau karakter.
+
+Analisis yang dilakukan menggunakan berbagai metode, termasuk domain frekuensi dan domain waktu, linear dan non-linear, dan lainnya. [Pelajari lebih lanjut](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) tentang berbagai cara menganalisis jenis data ini.
+
+🎓 **Peramalan deret waktu**
+
+Peramalan deret waktu adalah penggunaan model untuk memprediksi nilai masa depan berdasarkan pola yang ditampilkan oleh data yang dikumpulkan sebelumnya saat terjadi di masa lalu. Meskipun dimungkinkan untuk menggunakan model regresi untuk mengeksplorasi data deret waktu, dengan indeks waktu sebagai variabel x pada plot, data semacam itu paling baik dianalisis menggunakan jenis model khusus.
+
+Data deret waktu adalah daftar pengamatan yang terurut, berbeda dengan data yang dapat dianalisis dengan regresi linear. Model yang paling umum adalah ARIMA, singkatan dari "Autoregressive Integrated Moving Average".
+
+[Model ARIMA](https://online.stat.psu.edu/stat510/lesson/1/1.1) "menghubungkan nilai saat ini dari suatu deret dengan nilai masa lalu dan kesalahan prediksi masa lalu." Model ini paling cocok untuk menganalisis data domain waktu, di mana data diurutkan berdasarkan waktu.
+
+> Ada beberapa jenis model ARIMA, yang dapat Anda pelajari [di sini](https://people.duke.edu/~rnau/411arim.htm) dan yang akan Anda bahas dalam pelajaran berikutnya.
+
+Dalam pelajaran berikutnya, Anda akan membangun model ARIMA menggunakan [Deret Waktu Univariat](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm), yang berfokus pada satu variabel yang nilainya berubah dari waktu ke waktu. Contoh jenis data ini adalah [dataset ini](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) yang mencatat konsentrasi CO2 bulanan di Observatorium 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 |
+
+✅ Identifikasi variabel yang berubah dari waktu ke waktu dalam dataset ini
+
+## Karakteristik data deret waktu yang perlu dipertimbangkan
+
+Saat melihat data deret waktu, Anda mungkin memperhatikan bahwa data tersebut memiliki [karakteristik tertentu](https://online.stat.psu.edu/stat510/lesson/1/1.1) yang perlu Anda perhatikan dan kurangi untuk lebih memahami polanya. Jika Anda menganggap data deret waktu sebagai potensi memberikan 'sinyal' yang ingin Anda analisis, karakteristik ini dapat dianggap sebagai 'gangguan'. Anda sering kali perlu mengurangi 'gangguan' ini dengan mengimbangi beberapa karakteristik ini menggunakan teknik statistik tertentu.
+
+Berikut adalah beberapa konsep yang perlu Anda ketahui untuk dapat bekerja dengan deret waktu:
+
+🎓 **Tren**
+
+Tren didefinisikan sebagai peningkatan dan penurunan yang dapat diukur dari waktu ke waktu. [Baca lebih lanjut](https://machinelearningmastery.com/time-series-trends-in-python). Dalam konteks deret waktu, ini tentang bagaimana menggunakan dan, jika perlu, menghilangkan tren dari deret waktu Anda.
+
+🎓 **[Musiman](https://machinelearningmastery.com/time-series-seasonality-with-python/)**
+
+Musiman didefinisikan sebagai fluktuasi periodik, seperti lonjakan liburan yang mungkin memengaruhi penjualan, misalnya. [Lihat](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm) bagaimana berbagai jenis plot menampilkan musiman dalam data.
+
+🎓 **Pencilan**
+
+Pencilan adalah data yang jauh dari variansi standar.
+
+🎓 **Siklus jangka panjang**
+
+Terlepas dari musiman, data mungkin menunjukkan siklus jangka panjang seperti penurunan ekonomi yang berlangsung lebih dari satu tahun.
+
+🎓 **Variansi konstan**
+
+Seiring waktu, beberapa data menunjukkan fluktuasi konstan, seperti penggunaan energi per hari dan malam.
+
+🎓 **Perubahan mendadak**
+
+Data mungkin menunjukkan perubahan mendadak yang mungkin memerlukan analisis lebih lanjut. Penutupan bisnis secara tiba-tiba akibat COVID, misalnya, menyebabkan perubahan dalam data.
+
+✅ Berikut adalah [contoh plot deret waktu](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) yang menunjukkan pengeluaran mata uang dalam game harian selama beberapa tahun. Bisakah Anda mengidentifikasi salah satu karakteristik yang tercantum di atas dalam data ini?
+
+
+
+## Latihan - memulai dengan data penggunaan daya
+
+Mari kita mulai membuat model deret waktu untuk memprediksi penggunaan daya di masa depan berdasarkan penggunaan masa lalu.
+
+> Data dalam contoh ini diambil dari kompetisi peramalan GEFCom2014. Data ini terdiri dari 3 tahun nilai beban listrik dan suhu per jam antara tahun 2012 dan 2014.
+>
+> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli dan Rob J. Hyndman, "Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond", International Journal of Forecasting, vol.32, no.3, pp 896-913, Juli-September, 2016.
+
+1. Di folder `working` pelajaran ini, buka file _notebook.ipynb_. Mulailah dengan menambahkan pustaka yang akan membantu Anda memuat dan memvisualisasikan data
+
+ ```python
+ import os
+ import matplotlib.pyplot as plt
+ from common.utils import load_data
+ %matplotlib inline
+ ```
+
+ Perhatikan, Anda menggunakan file dari folder `common` yang disertakan yang mengatur lingkungan Anda dan menangani pengunduhan data.
+
+2. Selanjutnya, periksa data sebagai dataframe dengan memanggil `load_data()` dan `head()`:
+
+ ```python
+ data_dir = './data'
+ energy = load_data(data_dir)[['load']]
+ energy.head()
+ ```
+
+ Anda dapat melihat bahwa ada dua kolom yang mewakili tanggal dan beban:
+
+ | | 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. Sekarang, plot data dengan memanggil `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. Sekarang, plot minggu pertama Juli 2014, dengan memberikannya sebagai input ke `energy` dalam pola `[dari tanggal]: [ke tanggal]`:
+
+ ```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()
+ ```
+
+ 
+
+ Plot yang indah! Lihatlah plot ini dan lihat apakah Anda dapat menentukan salah satu karakteristik yang tercantum di atas. Apa yang dapat kita simpulkan dengan memvisualisasikan data?
+
+Dalam pelajaran berikutnya, Anda akan membuat model ARIMA untuk membuat beberapa prediksi.
+
+---
+
+## 🚀Tantangan
+
+Buat daftar semua industri dan bidang penyelidikan yang dapat Anda pikirkan yang akan mendapat manfaat dari peramalan deret waktu. Bisakah Anda memikirkan penerapan teknik ini dalam seni? Dalam Ekonometrika? Ekologi? Ritel? Industri? Keuangan? Di mana lagi?
+
+## [Kuis pasca-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Meskipun kami tidak akan membahasnya di sini, jaringan saraf terkadang digunakan untuk meningkatkan metode klasik peramalan deret waktu. Baca lebih lanjut tentang mereka [dalam artikel ini](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412)
+
+## Tugas
+
+[Visualisasikan lebih banyak deret waktu](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/1-Introduction/assignment.md b/translations/id/7-TimeSeries/1-Introduction/assignment.md
new file mode 100644
index 00000000..be62ee60
--- /dev/null
+++ b/translations/id/7-TimeSeries/1-Introduction/assignment.md
@@ -0,0 +1,25 @@
+
+# Visualisasikan Beberapa Lagi Deret Waktu
+
+## Instruksi
+
+Anda telah mulai belajar tentang Peramalan Deret Waktu dengan melihat jenis data yang membutuhkan pemodelan khusus ini. Anda telah memvisualisasikan beberapa data terkait energi. Sekarang, cari data lain yang akan mendapatkan manfaat dari Peramalan Deret Waktu. Temukan tiga contoh (coba [Kaggle](https://kaggle.com) dan [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)) dan buat notebook untuk memvisualisasikannya. Catat karakteristik khusus apa pun yang mereka miliki (musiman, perubahan mendadak, atau tren lainnya) di dalam notebook.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ----------------------------------------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| | Tiga dataset dipetakan dan dijelaskan dalam notebook | Dua dataset dipetakan dan dijelaskan dalam notebook | Sedikit dataset dipetakan atau dijelaskan dalam notebook atau data yang disajikan tidak memadai |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/1-Introduction/solution/Julia/README.md b/translations/id/7-TimeSeries/1-Introduction/solution/Julia/README.md
new file mode 100644
index 00000000..01053e81
--- /dev/null
+++ b/translations/id/7-TimeSeries/1-Introduction/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/1-Introduction/solution/R/README.md b/translations/id/7-TimeSeries/1-Introduction/solution/R/README.md
new file mode 100644
index 00000000..7de64af6
--- /dev/null
+++ b/translations/id/7-TimeSeries/1-Introduction/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ini adalah tempat sementara
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/2-ARIMA/README.md b/translations/id/7-TimeSeries/2-ARIMA/README.md
new file mode 100644
index 00000000..aa1a04f8
--- /dev/null
+++ b/translations/id/7-TimeSeries/2-ARIMA/README.md
@@ -0,0 +1,405 @@
+
+# Peramalan Deret Waktu dengan ARIMA
+
+Pada pelajaran sebelumnya, Anda telah mempelajari sedikit tentang peramalan deret waktu dan memuat dataset yang menunjukkan fluktuasi beban listrik selama periode waktu tertentu.
+
+[](https://youtu.be/IUSk-YDau10 "Pengantar ARIMA")
+
+> 🎥 Klik gambar di atas untuk video: Pengantar singkat tentang model ARIMA. Contoh dilakukan dalam R, tetapi konsepnya bersifat universal.
+
+## [Kuis Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Pengantar
+
+Dalam pelajaran ini, Anda akan mempelajari cara spesifik untuk membangun model dengan [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average). Model ARIMA sangat cocok untuk data yang menunjukkan [non-stasioneritas](https://wikipedia.org/wiki/Stationary_process).
+
+## Konsep Umum
+
+Untuk dapat bekerja dengan ARIMA, ada beberapa konsep yang perlu Anda ketahui:
+
+- 🎓 **Stasioneritas**. Dalam konteks statistik, stasioneritas mengacu pada data yang distribusinya tidak berubah ketika digeser dalam waktu. Data non-stasioner, sebaliknya, menunjukkan fluktuasi akibat tren yang harus diubah agar dapat dianalisis. Musim, misalnya, dapat memperkenalkan fluktuasi dalam data dan dapat dihilangkan melalui proses 'seasonal-differencing'.
+
+- 🎓 **[Differencing](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**. Differencing data, dalam konteks statistik, mengacu pada proses mengubah data non-stasioner menjadi stasioner dengan menghilangkan tren yang tidak konstan. "Differencing menghilangkan perubahan tingkat dalam deret waktu, menghilangkan tren dan musiman, sehingga menstabilkan rata-rata deret waktu." [Makalah oleh Shixiong et al](https://arxiv.org/abs/1904.07632)
+
+## ARIMA dalam Konteks Deret Waktu
+
+Mari kita uraikan bagian-bagian ARIMA untuk lebih memahami bagaimana model ini membantu kita memodelkan deret waktu dan membuat prediksi terhadapnya.
+
+- **AR - untuk AutoRegressive**. Model autoregresif, seperti namanya, melihat 'ke belakang' dalam waktu untuk menganalisis nilai-nilai sebelumnya dalam data Anda dan membuat asumsi tentangnya. Nilai-nilai sebelumnya ini disebut 'lags'. Contohnya adalah data yang menunjukkan penjualan bulanan pensil. Total penjualan setiap bulan akan dianggap sebagai 'variabel yang berkembang' dalam dataset. Model ini dibangun sebagai "variabel yang berkembang diregresikan pada nilai-nilai lagged (yaitu, sebelumnya) miliknya." [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)
+
+- **I - untuk Integrated**. Berbeda dengan model 'ARMA' yang serupa, 'I' dalam ARIMA mengacu pada aspek *[integrated](https://wikipedia.org/wiki/Order_of_integration)*. Data 'diintegrasikan' ketika langkah-langkah differencing diterapkan untuk menghilangkan non-stasioneritas.
+
+- **MA - untuk Moving Average**. Aspek [moving-average](https://wikipedia.org/wiki/Moving-average_model) dari model ini mengacu pada variabel output yang ditentukan dengan mengamati nilai lag saat ini dan sebelumnya.
+
+Intinya: ARIMA digunakan untuk membuat model sesuai dengan bentuk khusus data deret waktu sedekat mungkin.
+
+## Latihan - Membangun Model ARIMA
+
+Buka folder [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) dalam pelajaran ini dan temukan file [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb).
+
+1. Jalankan notebook untuk memuat pustaka Python `statsmodels`; Anda akan membutuhkan ini untuk model ARIMA.
+
+1. Muat pustaka yang diperlukan.
+
+1. Sekarang, muat beberapa pustaka tambahan yang berguna untuk memplot 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. Muat data dari file `/data/energy.csv` ke dalam dataframe Pandas dan lihat:
+
+ ```python
+ energy = load_data('./data')[['load']]
+ energy.head(10)
+ ```
+
+1. Plot semua data energi yang tersedia dari Januari 2012 hingga Desember 2014. Tidak ada kejutan karena kita telah melihat data ini di pelajaran sebelumnya:
+
+ ```python
+ energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)
+ plt.xlabel('timestamp', fontsize=12)
+ plt.ylabel('load', fontsize=12)
+ plt.show()
+ ```
+
+ Sekarang, mari kita bangun model!
+
+### Membuat Dataset Pelatihan dan Pengujian
+
+Sekarang data Anda telah dimuat, Anda dapat memisahkannya menjadi set pelatihan dan pengujian. Anda akan melatih model Anda pada set pelatihan. Seperti biasa, setelah model selesai dilatih, Anda akan mengevaluasi akurasinya menggunakan set pengujian. Anda perlu memastikan bahwa set pengujian mencakup periode waktu yang lebih baru dari set pelatihan untuk memastikan bahwa model tidak mendapatkan informasi dari periode waktu di masa depan.
+
+1. Alokasikan periode dua bulan dari 1 September hingga 31 Oktober 2014 untuk set pelatihan. Set pengujian akan mencakup periode dua bulan dari 1 November hingga 31 Desember 2014:
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+ Karena data ini mencerminkan konsumsi energi harian, ada pola musiman yang kuat, tetapi konsumsi paling mirip dengan konsumsi pada hari-hari yang lebih baru.
+
+1. Visualisasikan perbedaannya:
+
+ ```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()
+ ```
+
+ 
+
+ Oleh karena itu, menggunakan jendela waktu yang relatif kecil untuk melatih data seharusnya cukup.
+
+ > Catatan: Karena fungsi yang kita gunakan untuk menyesuaikan model ARIMA menggunakan validasi in-sample selama fitting, kita akan menghilangkan data validasi.
+
+### Mempersiapkan Data untuk Pelatihan
+
+Sekarang, Anda perlu mempersiapkan data untuk pelatihan dengan melakukan penyaringan dan penskalaan data Anda. Saring dataset Anda untuk hanya menyertakan periode waktu dan kolom yang Anda butuhkan, serta penskalaan untuk memastikan data diproyeksikan dalam interval 0,1.
+
+1. Saring dataset asli untuk hanya menyertakan periode waktu yang disebutkan sebelumnya per set dan hanya menyertakan kolom 'load' yang diperlukan plus tanggal:
+
+ ```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)
+ ```
+
+ Anda dapat melihat bentuk data:
+
+ ```output
+ Training data shape: (1416, 1)
+ Test data shape: (48, 1)
+ ```
+
+1. Skala data agar berada dalam rentang (0, 1).
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ train.head(10)
+ ```
+
+1. Visualisasikan data asli vs. data yang telah diskalakan:
+
+ ```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 asli
+
+ 
+
+ > Data yang telah diskalakan
+
+1. Sekarang setelah Anda mengkalibrasi data yang telah diskalakan, Anda dapat menskalakan data pengujian:
+
+ ```python
+ test['load'] = scaler.transform(test)
+ test.head()
+ ```
+
+### Menerapkan ARIMA
+
+Saatnya menerapkan ARIMA! Anda sekarang akan menggunakan pustaka `statsmodels` yang telah Anda instal sebelumnya.
+
+Sekarang Anda perlu mengikuti beberapa langkah:
+
+ 1. Definisikan model dengan memanggil `SARIMAX()` dan memasukkan parameter model: parameter p, d, dan q, serta parameter P, D, dan Q.
+ 2. Persiapkan model untuk data pelatihan dengan memanggil fungsi fit().
+ 3. Buat prediksi dengan memanggil fungsi `forecast()` dan menentukan jumlah langkah (horizon) untuk diprediksi.
+
+> 🎓 Apa fungsi semua parameter ini? Dalam model ARIMA, ada 3 parameter yang digunakan untuk membantu memodelkan aspek utama dari deret waktu: musiman, tren, dan noise. Parameter ini adalah:
+
+`p`: parameter yang terkait dengan aspek autoregresif model, yang menggabungkan nilai *masa lalu*.
+`d`: parameter yang terkait dengan bagian terintegrasi dari model, yang memengaruhi jumlah *differencing* (🎓 ingat differencing 👆?) yang diterapkan pada deret waktu.
+`q`: parameter yang terkait dengan bagian moving-average dari model.
+
+> Catatan: Jika data Anda memiliki aspek musiman - seperti data ini -, kita menggunakan model ARIMA musiman (SARIMA). Dalam kasus ini, Anda perlu menggunakan satu set parameter lain: `P`, `D`, dan `Q` yang menggambarkan asosiasi yang sama seperti `p`, `d`, dan `q`, tetapi sesuai dengan komponen musiman dari model.
+
+1. Mulailah dengan menetapkan nilai horizon yang Anda inginkan. Mari coba 3 jam:
+
+ ```python
+ # Specify the number of steps to forecast ahead
+ HORIZON = 3
+ print('Forecasting horizon:', HORIZON, 'hours')
+ ```
+
+ Memilih nilai terbaik untuk parameter model ARIMA bisa menjadi tantangan karena sifatnya yang subjektif dan memakan waktu. Anda mungkin mempertimbangkan menggunakan fungsi `auto_arima()` dari pustaka [`pyramid`](https://alkaline-ml.com/pmdarima/0.9.0/modules/generated/pyramid.arima.auto_arima.html).
+
+1. Untuk saat ini, coba beberapa pilihan manual untuk menemukan model yang baik.
+
+ ```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())
+ ```
+
+ Sebuah tabel hasil dicetak.
+
+Anda telah membangun model pertama Anda! Sekarang kita perlu menemukan cara untuk mengevaluasinya.
+
+### Mengevaluasi Model Anda
+
+Untuk mengevaluasi model Anda, Anda dapat melakukan validasi `walk forward`. Dalam praktiknya, model deret waktu dilatih ulang setiap kali data baru tersedia. Ini memungkinkan model membuat prediksi terbaik pada setiap langkah waktu.
+
+Mulai dari awal deret waktu menggunakan teknik ini, latih model pada set data pelatihan. Kemudian buat prediksi pada langkah waktu berikutnya. Prediksi dievaluasi terhadap nilai yang diketahui. Set pelatihan kemudian diperluas untuk menyertakan nilai yang diketahui dan proses diulang.
+
+> Catatan: Anda harus menjaga jendela set pelatihan tetap tetap untuk pelatihan yang lebih efisien sehingga setiap kali Anda menambahkan pengamatan baru ke set pelatihan, Anda menghapus pengamatan dari awal set.
+
+Proses ini memberikan estimasi yang lebih kuat tentang bagaimana model akan bekerja dalam praktik. Namun, ini datang dengan biaya komputasi untuk membuat begitu banyak model. Ini dapat diterima jika datanya kecil atau jika modelnya sederhana, tetapi bisa menjadi masalah dalam skala besar.
+
+Validasi walk-forward adalah standar emas evaluasi model deret waktu dan direkomendasikan untuk proyek Anda sendiri.
+
+1. Pertama, buat titik data pengujian untuk setiap langkah 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 digeser secara horizontal sesuai dengan titik horizon-nya.
+
+1. Buat prediksi pada data pengujian Anda menggunakan pendekatan jendela geser dalam loop sebesar panjang data pengujian:
+
+ ```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)
+ ```
+
+ Anda dapat melihat pelatihan yang terjadi:
+
+ ```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. Bandingkan prediksi dengan beban aktual:
+
+ ```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()
+ ```
+
+ Output
+ | | | 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 |
+
+ Perhatikan prediksi data per jam dibandingkan dengan beban aktual. Seberapa akurat ini?
+
+### Periksa Akurasi Model
+
+Periksa akurasi model Anda dengan menguji mean absolute percentage error (MAPE) dari semua prediksi.
+> **🧮 Tunjukkan perhitungannya**
+>
+> 
+>
+> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) digunakan untuk menunjukkan akurasi prediksi sebagai rasio yang didefinisikan oleh rumus di atas. Perbedaan antara nilai aktual dan nilai prediksi dibagi dengan nilai aktual. "Nilai absolut dalam perhitungan ini dijumlahkan untuk setiap titik waktu yang diprediksi dan dibagi dengan jumlah titik yang sesuai n." [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
+1. Ekspresikan persamaan dalam kode:
+
+ ```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. Hitung MAPE untuk satu langkah:
+
+ ```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 prediksi satu langkah: 0.5570581332313952 %
+
+1. Cetak MAPE prediksi multi-langkah:
+
+ ```python
+ print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%')
+ ```
+
+ ```output
+ Multi-step forecast MAPE: 1.1460048657704118 %
+ ```
+
+ Angka yang rendah adalah yang terbaik: pertimbangkan bahwa prediksi dengan MAPE sebesar 10 berarti meleset sebesar 10%.
+
+1. Namun seperti biasa, lebih mudah melihat pengukuran akurasi semacam ini secara visual, jadi mari kita plot:
+
+ ```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()
+ ```
+
+ 
+
+🏆 Plot yang sangat bagus, menunjukkan model dengan akurasi yang baik. Kerja bagus!
+
+---
+
+## 🚀Tantangan
+
+Telusuri cara-cara untuk menguji akurasi model deret waktu. Kita membahas MAPE dalam pelajaran ini, tetapi apakah ada metode lain yang bisa digunakan? Lakukan penelitian dan beri anotasi. Dokumen yang bermanfaat dapat ditemukan [di sini](https://otexts.com/fpp2/accuracy.html)
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Pelajaran ini hanya menyentuh dasar-dasar Peramalan Deret Waktu dengan ARIMA. Luangkan waktu untuk memperdalam pengetahuan Anda dengan menjelajahi [repositori ini](https://microsoft.github.io/forecasting/) dan berbagai jenis modelnya untuk mempelajari cara lain membangun model Deret Waktu.
+
+## Tugas
+
+[Model ARIMA baru](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/2-ARIMA/assignment.md b/translations/id/7-TimeSeries/2-ARIMA/assignment.md
new file mode 100644
index 00000000..16823fba
--- /dev/null
+++ b/translations/id/7-TimeSeries/2-ARIMA/assignment.md
@@ -0,0 +1,25 @@
+
+# Model ARIMA Baru
+
+## Instruksi
+
+Setelah Anda membangun model ARIMA, buat model baru dengan data segar (coba salah satu [dataset dari Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Berikan anotasi pada pekerjaan Anda di notebook, visualisasikan data dan model Anda, serta uji akurasinya menggunakan MAPE.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | ----------------------------------- |
+| | Notebook disajikan dengan model ARIMA baru yang dibangun, diuji, dan dijelaskan dengan visualisasi serta akurasi yang dinyatakan. | Notebook yang disajikan tidak dianotasi atau mengandung bug | Notebook yang disajikan tidak lengkap |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/2-ARIMA/solution/Julia/README.md b/translations/id/7-TimeSeries/2-ARIMA/solution/Julia/README.md
new file mode 100644
index 00000000..e129c4b5
--- /dev/null
+++ b/translations/id/7-TimeSeries/2-ARIMA/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/2-ARIMA/solution/R/README.md b/translations/id/7-TimeSeries/2-ARIMA/solution/R/README.md
new file mode 100644
index 00000000..2f5e0395
--- /dev/null
+++ b/translations/id/7-TimeSeries/2-ARIMA/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ini adalah tempat sementara
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/3-SVR/README.md b/translations/id/7-TimeSeries/3-SVR/README.md
new file mode 100644
index 00000000..f734c9da
--- /dev/null
+++ b/translations/id/7-TimeSeries/3-SVR/README.md
@@ -0,0 +1,393 @@
+
+# Peramalan Deret Waktu dengan Support Vector Regressor
+
+Pada pelajaran sebelumnya, Anda telah mempelajari cara menggunakan model ARIMA untuk membuat prediksi deret waktu. Sekarang Anda akan mempelajari model Support Vector Regressor, yaitu model regresi yang digunakan untuk memprediksi data kontinu.
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Pendahuluan
+
+Dalam pelajaran ini, Anda akan mempelajari cara spesifik untuk membangun model dengan [**SVM**: **S**upport **V**ector **M**achine](https://en.wikipedia.org/wiki/Support-vector_machine) untuk regresi, atau **SVR: Support Vector Regressor**.
+
+### SVR dalam konteks deret waktu [^1]
+
+Sebelum memahami pentingnya SVR dalam prediksi deret waktu, berikut adalah beberapa konsep penting yang perlu Anda ketahui:
+
+- **Regresi:** Teknik pembelajaran terawasi untuk memprediksi nilai kontinu dari kumpulan input yang diberikan. Ide utamanya adalah menyesuaikan kurva (atau garis) di ruang fitur yang memiliki jumlah titik data maksimum. [Klik di sini](https://en.wikipedia.org/wiki/Regression_analysis) untuk informasi lebih lanjut.
+- **Support Vector Machine (SVM):** Jenis model pembelajaran mesin terawasi yang digunakan untuk klasifikasi, regresi, dan deteksi outlier. Model ini adalah hyperplane di ruang fitur, yang dalam kasus klasifikasi bertindak sebagai batas, dan dalam kasus regresi bertindak sebagai garis terbaik. Dalam SVM, fungsi Kernel biasanya digunakan untuk mentransformasi dataset ke ruang dengan jumlah dimensi yang lebih tinggi, sehingga dapat dengan mudah dipisahkan. [Klik di sini](https://en.wikipedia.org/wiki/Support-vector_machine) untuk informasi lebih lanjut tentang SVM.
+- **Support Vector Regressor (SVR):** Jenis SVM yang digunakan untuk menemukan garis terbaik (yang dalam kasus SVM adalah hyperplane) yang memiliki jumlah titik data maksimum.
+
+### Mengapa SVR? [^1]
+
+Pada pelajaran sebelumnya, Anda telah mempelajari tentang ARIMA, yang merupakan metode statistik linear yang sangat sukses untuk meramalkan data deret waktu. Namun, dalam banyak kasus, data deret waktu memiliki *non-linearitas*, yang tidak dapat dipetakan oleh model linear. Dalam kasus seperti itu, kemampuan SVM untuk mempertimbangkan non-linearitas dalam data untuk tugas regresi membuat SVR berhasil dalam peramalan deret waktu.
+
+## Latihan - membangun model SVR
+
+Langkah-langkah awal untuk persiapan data sama seperti pelajaran sebelumnya tentang [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA).
+
+Buka folder [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/3-SVR/working) dalam pelajaran ini dan temukan file [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/3-SVR/working/notebook.ipynb).[^2]
+
+1. Jalankan notebook dan impor pustaka yang diperlukan: [^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. Muat data dari file `/data/energy.csv` ke dalam dataframe Pandas dan lihat: [^2]
+
+ ```python
+ energy = load_data('../../data')[['load']]
+ ```
+
+3. Plot semua data energi yang tersedia dari Januari 2012 hingga Desember 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()
+ ```
+
+ 
+
+ Sekarang, mari kita membangun model SVR kita.
+
+### Membuat dataset pelatihan dan pengujian
+
+Sekarang data Anda telah dimuat, Anda dapat memisahkannya menjadi set pelatihan dan pengujian. Kemudian Anda akan merubah bentuk data untuk membuat dataset berbasis langkah waktu yang akan diperlukan untuk SVR. Anda akan melatih model Anda pada set pelatihan. Setelah model selesai dilatih, Anda akan mengevaluasi akurasinya pada set pelatihan, set pengujian, dan kemudian dataset lengkap untuk melihat kinerja keseluruhan. Anda perlu memastikan bahwa set pengujian mencakup periode waktu yang lebih baru dari set pelatihan untuk memastikan bahwa model tidak mendapatkan informasi dari periode waktu di masa depan [^2] (situasi yang dikenal sebagai *Overfitting*).
+
+1. Alokasikan periode dua bulan dari 1 September hingga 31 Oktober 2014 untuk set pelatihan. Set pengujian akan mencakup periode dua bulan dari 1 November hingga 31 Desember 2014: [^2]
+
+ ```python
+ train_start_dt = '2014-11-01 00:00:00'
+ test_start_dt = '2014-12-30 00:00:00'
+ ```
+
+2. Visualisasikan perbedaannya: [^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()
+ ```
+
+ 
+
+### Mempersiapkan data untuk pelatihan
+
+Sekarang, Anda perlu mempersiapkan data untuk pelatihan dengan melakukan penyaringan dan penskalaan data Anda. Saring dataset Anda untuk hanya menyertakan periode waktu dan kolom yang Anda butuhkan, serta penskalaan untuk memastikan data diproyeksikan dalam interval 0,1.
+
+1. Saring dataset asli untuk hanya menyertakan periode waktu yang disebutkan sebelumnya per set dan hanya menyertakan kolom 'load' yang diperlukan serta tanggal: [^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. Skala data pelatihan agar berada dalam rentang (0, 1): [^2]
+
+ ```python
+ scaler = MinMaxScaler()
+ train['load'] = scaler.fit_transform(train)
+ ```
+
+4. Sekarang, skala data pengujian: [^2]
+
+ ```python
+ test['load'] = scaler.transform(test)
+ ```
+
+### Membuat data dengan langkah waktu [^1]
+
+Untuk SVR, Anda mentransformasi data input menjadi bentuk `[batch, timesteps]`. Jadi, Anda merubah bentuk `train_data` dan `test_data` yang ada sehingga ada dimensi baru yang merujuk pada langkah waktu.
+
+```python
+# Converting to numpy arrays
+train_data = train.values
+test_data = test.values
+```
+
+Untuk contoh ini, kita mengambil `timesteps = 5`. Jadi, input ke model adalah data untuk 4 langkah waktu pertama, dan outputnya adalah data untuk langkah waktu ke-5.
+
+```python
+timesteps=5
+```
+
+Mengubah data pelatihan menjadi tensor 2D menggunakan 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)
+```
+
+Mengubah data pengujian menjadi 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)
+```
+
+Memilih input dan output dari data pelatihan dan pengujian:
+
+```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)
+```
+
+### Mengimplementasikan SVR [^1]
+
+Sekarang, saatnya mengimplementasikan SVR. Untuk membaca lebih lanjut tentang implementasi ini, Anda dapat merujuk ke [dokumentasi ini](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html). Untuk implementasi kita, kita mengikuti langkah-langkah berikut:
+
+ 1. Definisikan model dengan memanggil `SVR()` dan memasukkan hyperparameter model: kernel, gamma, c, dan epsilon
+ 2. Siapkan model untuk data pelatihan dengan memanggil fungsi `fit()`
+ 3. Lakukan prediksi dengan memanggil fungsi `predict()`
+
+Sekarang kita membuat model SVR. Di sini kita menggunakan [kernel RBF](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel), dan menetapkan hyperparameter gamma, C, dan epsilon masing-masing sebagai 0.5, 10, dan 0.05.
+
+```python
+model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05)
+```
+
+#### Melatih model pada data pelatihan [^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)
+```
+
+#### Melakukan prediksi dengan model [^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)
+```
+
+Anda telah membangun SVR Anda! Sekarang kita perlu mengevaluasinya.
+
+### Mengevaluasi model Anda [^1]
+
+Untuk evaluasi, pertama-tama kita akan mengembalikan skala data ke skala asli kita. Kemudian, untuk memeriksa kinerja, kita akan memplot grafik deret waktu asli dan prediksi, serta mencetak hasil MAPE.
+
+Mengembalikan skala output prediksi dan asli:
+
+```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))
+```
+
+#### Memeriksa kinerja model pada data pelatihan dan pengujian [^1]
+
+Kita mengekstrak timestamp dari dataset untuk ditampilkan di sumbu x plot kita. Perhatikan bahwa kita menggunakan ```timesteps-1``` nilai pertama sebagai input untuk output pertama, sehingga timestamp untuk output akan dimulai setelah itu.
+
+```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
+```
+
+Plot prediksi untuk data pelatihan:
+
+```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()
+```
+
+
+
+Cetak MAPE untuk data pelatihan
+
+```python
+print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')
+```
+
+```output
+MAPE for training data: 1.7195710200875551 %
+```
+
+Plot prediksi untuk data pengujian
+
+```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()
+```
+
+
+
+Cetak MAPE untuk data pengujian
+
+```python
+print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')
+```
+
+```output
+MAPE for testing data: 1.2623790187854018 %
+```
+
+🏆 Anda mendapatkan hasil yang sangat baik pada dataset pengujian!
+
+### Memeriksa kinerja model pada dataset lengkap [^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 %
+```
+
+🏆 Plot yang sangat bagus, menunjukkan model dengan akurasi yang baik. Kerja bagus!
+
+---
+
+## 🚀Tantangan
+
+- Cobalah untuk mengubah hyperparameter (gamma, C, epsilon) saat membuat model dan evaluasi pada data untuk melihat set hyperparameter mana yang memberikan hasil terbaik pada data pengujian. Untuk mengetahui lebih lanjut tentang hyperparameter ini, Anda dapat merujuk ke dokumen [di sini](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel).
+- Cobalah menggunakan fungsi kernel yang berbeda untuk model dan analisis kinerjanya pada dataset. Dokumen yang berguna dapat ditemukan [di sini](https://scikit-learn.org/stable/modules/svm.html#kernel-functions).
+- Cobalah menggunakan nilai yang berbeda untuk `timesteps` agar model dapat melihat ke belakang untuk membuat prediksi.
+
+## [Kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Studi Mandiri
+
+Pelajaran ini bertujuan untuk memperkenalkan aplikasi SVR untuk Peramalan Deret Waktu. Untuk membaca lebih lanjut tentang SVR, Anda dapat merujuk ke [blog ini](https://www.analyticsvidhya.com/blog/2020/03/support-vector-regression-tutorial-for-machine-learning/). [Dokumentasi tentang scikit-learn](https://scikit-learn.org/stable/modules/svm.html) memberikan penjelasan yang lebih komprehensif tentang SVM secara umum, [SVR](https://scikit-learn.org/stable/modules/svm.html#regression) dan juga detail implementasi lainnya seperti [fungsi kernel](https://scikit-learn.org/stable/modules/svm.html#kernel-functions) yang dapat digunakan, dan parameter-parameter mereka.
+
+## Tugas
+
+[Model SVR baru](assignment.md)
+
+## Kredit
+
+[^1]: Teks, kode, dan output dalam bagian ini disumbangkan oleh [@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD)
+[^2]: Teks, kode, dan output dalam bagian ini diambil dari [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/3-SVR/assignment.md b/translations/id/7-TimeSeries/3-SVR/assignment.md
new file mode 100644
index 00000000..738f0b6d
--- /dev/null
+++ b/translations/id/7-TimeSeries/3-SVR/assignment.md
@@ -0,0 +1,27 @@
+
+# Model SVR Baru
+
+## Instruksi [^1]
+
+Sekarang setelah Anda membangun model SVR, buat model baru dengan data yang baru (coba salah satu [dataset dari Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html)). Berikan anotasi pada pekerjaan Anda di notebook, visualisasikan data dan model Anda, serta uji akurasinya menggunakan plot yang sesuai dan MAPE. Juga coba ubah berbagai hyperparameter dan gunakan nilai yang berbeda untuk timesteps.
+
+## Rubrik [^1]
+
+| Kriteria | Unggul | Memadai | Perlu Perbaikan |
+| -------- | ----------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------- |
+| | Notebook disajikan dengan model SVR yang dibangun, diuji, dan dijelaskan dengan visualisasi serta akurasi yang dinyatakan. | Notebook yang disajikan tidak dianotasi atau mengandung bug. | Notebook yang disajikan tidak lengkap. |
+
+[^1]: Teks dalam bagian ini didasarkan pada [tugas dari ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/7-TimeSeries/README.md b/translations/id/7-TimeSeries/README.md
new file mode 100644
index 00000000..a974b959
--- /dev/null
+++ b/translations/id/7-TimeSeries/README.md
@@ -0,0 +1,37 @@
+
+# Pengantar Peramalan Deret Waktu
+
+Apa itu peramalan deret waktu? Ini adalah tentang memprediksi kejadian di masa depan dengan menganalisis tren dari masa lalu.
+
+## Topik regional: penggunaan listrik di seluruh dunia ✨
+
+Dalam dua pelajaran ini, Anda akan diperkenalkan pada peramalan deret waktu, sebuah area pembelajaran mesin yang mungkin kurang dikenal tetapi sangat berharga untuk aplikasi industri dan bisnis, serta bidang lainnya. Meskipun jaringan saraf dapat digunakan untuk meningkatkan kegunaan model-model ini, kita akan mempelajarinya dalam konteks pembelajaran mesin klasik karena model-model ini membantu memprediksi kinerja masa depan berdasarkan data masa lalu.
+
+Fokus regional kita adalah penggunaan listrik di dunia, sebuah dataset menarik untuk mempelajari cara meramalkan penggunaan daya di masa depan berdasarkan pola beban masa lalu. Anda dapat melihat bagaimana jenis peramalan ini sangat berguna dalam lingkungan bisnis.
+
+
+
+Foto oleh [Peddi Sai hrithik](https://unsplash.com/@shutter_log?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) dari menara listrik di jalan di Rajasthan di [Unsplash](https://unsplash.com/s/photos/electric-india?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
+
+## Pelajaran
+
+1. [Pengantar peramalan deret waktu](1-Introduction/README.md)
+2. [Membangun model deret waktu ARIMA](2-ARIMA/README.md)
+3. [Membangun Support Vector Regressor untuk peramalan deret waktu](3-SVR/README.md)
+
+## Kredit
+
+"Pengantar peramalan deret waktu" ditulis dengan ⚡️ oleh [Francesca Lazzeri](https://twitter.com/frlazzeri) dan [Jen Looper](https://twitter.com/jenlooper). Notebook pertama kali muncul secara online di [repo Azure "Deep Learning For Time Series"](https://github.com/Azure/DeepLearningForTimeSeriesForecasting) yang awalnya ditulis oleh Francesca Lazzeri. Pelajaran SVR ditulis oleh [Anirban Mukherjee](https://github.com/AnirbanMukherjeeXD)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/1-QLearning/README.md b/translations/id/8-Reinforcement/1-QLearning/README.md
new file mode 100644
index 00000000..bb588fa4
--- /dev/null
+++ b/translations/id/8-Reinforcement/1-QLearning/README.md
@@ -0,0 +1,214 @@
+
+# Pengantar Pembelajaran Penguatan dan Q-Learning
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Pembelajaran penguatan melibatkan tiga konsep penting: agen, beberapa keadaan, dan satu set tindakan untuk setiap keadaan. Dengan melakukan suatu tindakan dalam keadaan tertentu, agen akan mendapatkan hadiah. Bayangkan permainan komputer Super Mario. Anda adalah Mario, berada di level permainan, berdiri di tepi jurang. Di atas Anda ada sebuah koin. Anda sebagai Mario, berada di level permainan, di posisi tertentu ... itulah keadaan Anda. Melangkah satu langkah ke kanan (tindakan) akan membuat Anda jatuh ke jurang, dan itu akan memberikan skor numerik rendah. Namun, menekan tombol lompat akan membuat Anda mendapatkan poin dan tetap hidup. Itu adalah hasil positif dan seharusnya memberikan skor numerik positif.
+
+Dengan menggunakan pembelajaran penguatan dan simulator (permainan), Anda dapat belajar cara memainkan permainan untuk memaksimalkan hadiah, yaitu tetap hidup dan mendapatkan sebanyak mungkin poin.
+
+[](https://www.youtube.com/watch?v=lDq_en8RNOo)
+
+> 🎥 Klik gambar di atas untuk mendengar Dmitry membahas Pembelajaran Penguatan
+
+## [Kuis sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Prasyarat dan Pengaturan
+
+Dalam pelajaran ini, kita akan bereksperimen dengan beberapa kode dalam Python. Anda harus dapat menjalankan kode Jupyter Notebook dari pelajaran ini, baik di komputer Anda atau di cloud.
+
+Anda dapat membuka [notebook pelajaran](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) dan mengikuti pelajaran ini untuk membangun.
+
+> **Catatan:** Jika Anda membuka kode ini dari cloud, Anda juga perlu mengambil file [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), yang digunakan dalam kode notebook. Tambahkan file tersebut ke direktori yang sama dengan notebook.
+
+## Pengantar
+
+Dalam pelajaran ini, kita akan menjelajahi dunia **[Peter dan Serigala](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)**, terinspirasi oleh dongeng musikal karya komposer Rusia, [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Kita akan menggunakan **Pembelajaran Penguatan** untuk membiarkan Peter menjelajahi lingkungannya, mengumpulkan apel yang lezat, dan menghindari bertemu dengan serigala.
+
+**Pembelajaran Penguatan** (RL) adalah teknik pembelajaran yang memungkinkan kita mempelajari perilaku optimal dari seorang **agen** dalam suatu **lingkungan** dengan menjalankan banyak eksperimen. Agen dalam lingkungan ini harus memiliki **tujuan**, yang didefinisikan oleh **fungsi hadiah**.
+
+## Lingkungan
+
+Untuk kesederhanaan, mari kita anggap dunia Peter sebagai papan persegi berukuran `lebar` x `tinggi`, seperti ini:
+
+
+
+Setiap sel di papan ini dapat berupa:
+
+* **tanah**, tempat Peter dan makhluk lain dapat berjalan.
+* **air**, tempat Anda jelas tidak bisa berjalan.
+* **pohon** atau **rumput**, tempat Anda bisa beristirahat.
+* **apel**, yang mewakili sesuatu yang Peter senang temukan untuk makanannya.
+* **serigala**, yang berbahaya dan harus dihindari.
+
+Ada modul Python terpisah, [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py), yang berisi kode untuk bekerja dengan lingkungan ini. Karena kode ini tidak penting untuk memahami konsep kita, kita akan mengimpor modul tersebut dan menggunakannya untuk membuat papan contoh (kode blok 1):
+
+```python
+from rlboard import *
+
+width, height = 8,8
+m = Board(width,height)
+m.randomize(seed=13)
+m.plot()
+```
+
+Kode ini harus mencetak gambar lingkungan yang mirip dengan yang di atas.
+
+## Tindakan dan kebijakan
+
+Dalam contoh kita, tujuan Peter adalah menemukan apel, sambil menghindari serigala dan rintangan lainnya. Untuk melakukan ini, dia pada dasarnya dapat berjalan-jalan sampai menemukan apel.
+
+Oleh karena itu, pada posisi mana pun, dia dapat memilih salah satu dari tindakan berikut: atas, bawah, kiri, dan kanan.
+
+Kita akan mendefinisikan tindakan-tindakan tersebut sebagai kamus, dan memetakan mereka ke pasangan perubahan koordinat yang sesuai. Misalnya, bergerak ke kanan (`R`) akan sesuai dengan pasangan `(1,0)`. (kode blok 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()) }
+```
+
+Secara keseluruhan, strategi dan tujuan dari skenario ini adalah sebagai berikut:
+
+- **Strategi**, dari agen kita (Peter) didefinisikan oleh apa yang disebut **kebijakan**. Kebijakan adalah fungsi yang mengembalikan tindakan pada keadaan tertentu. Dalam kasus kita, keadaan masalah diwakili oleh papan, termasuk posisi pemain saat ini.
+
+- **Tujuan**, dari pembelajaran penguatan adalah akhirnya mempelajari kebijakan yang baik yang memungkinkan kita menyelesaikan masalah secara efisien. Namun, sebagai dasar, mari kita pertimbangkan kebijakan paling sederhana yang disebut **jalan acak**.
+
+## Jalan acak
+
+Mari kita selesaikan masalah kita terlebih dahulu dengan menerapkan strategi jalan acak. Dengan jalan acak, kita akan secara acak memilih tindakan berikutnya dari tindakan yang diizinkan, sampai kita mencapai apel (kode blok 3).
+
+1. Terapkan jalan acak dengan kode di bawah ini:
+
+ ```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)
+ ```
+
+ Panggilan ke `walk` harus mengembalikan panjang jalur yang sesuai, yang dapat bervariasi dari satu percobaan ke percobaan lainnya.
+
+1. Jalankan eksperimen jalan beberapa kali (misalnya, 100 kali), dan cetak statistik yang dihasilkan (kode blok 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)
+ ```
+
+ Perhatikan bahwa rata-rata panjang jalur adalah sekitar 30-40 langkah, yang cukup banyak, mengingat jarak rata-rata ke apel terdekat adalah sekitar 5-6 langkah.
+
+ Anda juga dapat melihat bagaimana gerakan Peter terlihat selama jalan acak:
+
+ 
+
+## Fungsi hadiah
+
+Untuk membuat kebijakan kita lebih cerdas, kita perlu memahami langkah mana yang "lebih baik" daripada yang lain. Untuk melakukan ini, kita perlu mendefinisikan tujuan kita.
+
+Tujuan dapat didefinisikan dalam bentuk **fungsi hadiah**, yang akan mengembalikan nilai skor untuk setiap keadaan. Semakin tinggi angkanya, semakin baik fungsi hadiahnya. (kode blok 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
+```
+
+Hal menarik tentang fungsi hadiah adalah bahwa dalam banyak kasus, *kita hanya diberikan hadiah yang substansial di akhir permainan*. Ini berarti algoritma kita harus mengingat langkah-langkah "baik" yang mengarah pada hadiah positif di akhir, dan meningkatkan kepentingannya. Demikian pula, semua langkah yang mengarah pada hasil buruk harus dihindari.
+
+## Q-Learning
+
+Algoritma yang akan kita bahas di sini disebut **Q-Learning**. Dalam algoritma ini, kebijakan didefinisikan oleh fungsi (atau struktur data) yang disebut **Q-Table**. Q-Table mencatat "kebaikan" dari setiap tindakan dalam keadaan tertentu.
+
+Disebut Q-Table karena sering kali lebih nyaman untuk merepresentasikannya sebagai tabel, atau array multi-dimensi. Karena papan kita memiliki dimensi `lebar` x `tinggi`, kita dapat merepresentasikan Q-Table menggunakan array numpy dengan bentuk `lebar` x `tinggi` x `len(actions)`: (kode blok 6)
+
+```python
+Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)
+```
+
+Perhatikan bahwa kita menginisialisasi semua nilai Q-Table dengan nilai yang sama, dalam kasus kita - 0.25. Ini sesuai dengan kebijakan "jalan acak", karena semua langkah dalam setiap keadaan sama baiknya. Kita dapat meneruskan Q-Table ke fungsi `plot` untuk memvisualisasikan tabel di papan: `m.plot(Q)`.
+
+
+
+Di tengah setiap sel terdapat "panah" yang menunjukkan arah gerakan yang disukai. Karena semua arah sama, sebuah titik ditampilkan.
+
+Sekarang kita perlu menjalankan simulasi, menjelajahi lingkungan kita, dan mempelajari distribusi nilai Q-Table yang lebih baik, yang akan memungkinkan kita menemukan jalur ke apel jauh lebih cepat.
+
+## Inti dari Q-Learning: Persamaan Bellman
+
+Setelah kita mulai bergerak, setiap tindakan akan memiliki hadiah yang sesuai, yaitu kita secara teoritis dapat memilih tindakan berikutnya berdasarkan hadiah langsung tertinggi. Namun, dalam sebagian besar keadaan, langkah tersebut tidak akan mencapai tujuan kita untuk mencapai apel, sehingga kita tidak dapat langsung memutuskan arah mana yang lebih baik.
+
+> Ingatlah bahwa bukan hasil langsung yang penting, melainkan hasil akhir, yang akan kita peroleh di akhir simulasi.
+
+Untuk memperhitungkan hadiah yang tertunda ini, kita perlu menggunakan prinsip **[pemrograman dinamis](https://en.wikipedia.org/wiki/Dynamic_programming)**, yang memungkinkan kita memikirkan masalah kita secara rekursif.
+
+Misalkan kita sekarang berada di keadaan *s*, dan kita ingin bergerak ke keadaan berikutnya *s'*. Dengan melakukan itu, kita akan menerima hadiah langsung *r(s,a)*, yang didefinisikan oleh fungsi hadiah, ditambah beberapa hadiah di masa depan. Jika kita menganggap bahwa Q-Table kita secara akurat mencerminkan "daya tarik" dari setiap tindakan, maka pada keadaan *s'* kita akan memilih tindakan *a* yang sesuai dengan nilai maksimum *Q(s',a')*. Dengan demikian, hadiah masa depan terbaik yang bisa kita dapatkan pada keadaan *s* akan didefinisikan sebagai `max`
+
+Pembelajaran dapat dirangkum sebagai berikut:
+
+- **Rata-rata panjang jalur meningkat**. Pada awalnya, rata-rata panjang jalur meningkat. Hal ini kemungkinan disebabkan oleh fakta bahwa ketika kita tidak tahu apa-apa tentang lingkungan, kita cenderung terjebak di keadaan buruk, seperti air atau serigala. Saat kita belajar lebih banyak dan mulai menggunakan pengetahuan ini, kita dapat menjelajahi lingkungan lebih lama, tetapi kita masih belum tahu dengan baik di mana apel berada.
+
+- **Panjang jalur menurun seiring dengan pembelajaran**. Setelah kita belajar cukup banyak, menjadi lebih mudah bagi agen untuk mencapai tujuan, dan panjang jalur mulai menurun. Namun, kita masih terbuka untuk eksplorasi, sehingga kita sering menyimpang dari jalur terbaik dan mencoba opsi baru, yang membuat jalur lebih panjang dari yang optimal.
+
+- **Panjang meningkat secara tiba-tiba**. Apa yang juga kita amati pada grafik ini adalah bahwa pada suatu titik, panjang jalur meningkat secara tiba-tiba. Hal ini menunjukkan sifat stokastik dari proses tersebut, dan bahwa kita dapat pada suatu saat "merusak" koefisien Q-Table dengan menimpanya dengan nilai-nilai baru. Idealnya, hal ini harus diminimalkan dengan menurunkan tingkat pembelajaran (misalnya, menjelang akhir pelatihan, kita hanya menyesuaikan nilai Q-Table dengan nilai kecil).
+
+Secara keseluruhan, penting untuk diingat bahwa keberhasilan dan kualitas proses pembelajaran sangat bergantung pada parameter seperti tingkat pembelajaran, penurunan tingkat pembelajaran, dan faktor diskon. Parameter-parameter ini sering disebut sebagai **hiperparameter**, untuk membedakannya dari **parameter**, yang kita optimalkan selama pelatihan (misalnya, koefisien Q-Table). Proses menemukan nilai hiperparameter terbaik disebut **optimasi hiperparameter**, dan topik ini layak untuk dibahas secara terpisah.
+
+## [Kuis setelah kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tugas
+[Dunia yang Lebih Realistis](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/1-QLearning/assignment.md b/translations/id/8-Reinforcement/1-QLearning/assignment.md
new file mode 100644
index 00000000..cf616602
--- /dev/null
+++ b/translations/id/8-Reinforcement/1-QLearning/assignment.md
@@ -0,0 +1,41 @@
+
+# Dunia yang Lebih Realistis
+
+Dalam situasi kita, Peter dapat bergerak hampir tanpa merasa lelah atau lapar. Dalam dunia yang lebih realistis, dia harus duduk dan beristirahat dari waktu ke waktu, serta memberi makan dirinya sendiri. Mari kita buat dunia kita lebih realistis dengan menerapkan aturan berikut:
+
+1. Dengan berpindah dari satu tempat ke tempat lain, Peter kehilangan **energi** dan mendapatkan **kelelahan**.
+2. Peter dapat mendapatkan lebih banyak energi dengan memakan apel.
+3. Peter dapat menghilangkan kelelahan dengan beristirahat di bawah pohon atau di atas rumput (yaitu berjalan ke lokasi papan dengan pohon atau rumput - lapangan hijau).
+4. Peter perlu menemukan dan membunuh serigala.
+5. Untuk membunuh serigala, Peter harus memiliki tingkat energi dan kelelahan tertentu, jika tidak, dia akan kalah dalam pertempuran.
+
+## Instruksi
+
+Gunakan notebook [notebook.ipynb](../../../../8-Reinforcement/1-QLearning/notebook.ipynb) asli sebagai titik awal untuk solusi Anda.
+
+Modifikasi fungsi reward di atas sesuai dengan aturan permainan, jalankan algoritma pembelajaran penguatan untuk mempelajari strategi terbaik dalam memenangkan permainan, dan bandingkan hasil dari jalan acak dengan algoritma Anda dalam hal jumlah permainan yang dimenangkan dan kalah.
+
+> **Note**: Dalam dunia baru Anda, keadaan menjadi lebih kompleks, dan selain posisi manusia juga mencakup tingkat kelelahan dan energi. Anda dapat memilih untuk merepresentasikan keadaan sebagai tuple (Board,energy,fatigue), atau mendefinisikan sebuah kelas untuk keadaan (Anda juga dapat menurunkannya dari `Board`), atau bahkan memodifikasi kelas `Board` asli di [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py).
+
+Dalam solusi Anda, harap pertahankan kode yang bertanggung jawab untuk strategi jalan acak, dan bandingkan hasil algoritma Anda dengan jalan acak di akhir.
+
+> **Note**: Anda mungkin perlu menyesuaikan hiperparameter agar berhasil, terutama jumlah epoch. Karena keberhasilan permainan (melawan serigala) adalah peristiwa yang jarang terjadi, Anda dapat mengharapkan waktu pelatihan yang jauh lebih lama.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| | Notebook disajikan dengan definisi aturan dunia baru, algoritma Q-Learning, dan beberapa penjelasan tekstual. Q-Learning mampu secara signifikan meningkatkan hasil dibandingkan dengan jalan acak. | Notebook disajikan, Q-Learning diimplementasikan dan meningkatkan hasil dibandingkan dengan jalan acak, tetapi tidak secara signifikan; atau notebook kurang terdokumentasi dan kode tidak terstruktur dengan baik. | Beberapa upaya untuk mendefinisikan ulang aturan dunia dilakukan, tetapi algoritma Q-Learning tidak berfungsi, atau fungsi reward tidak sepenuhnya didefinisikan. |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/1-QLearning/solution/Julia/README.md b/translations/id/8-Reinforcement/1-QLearning/solution/Julia/README.md
new file mode 100644
index 00000000..dc40d78e
--- /dev/null
+++ b/translations/id/8-Reinforcement/1-QLearning/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/1-QLearning/solution/R/README.md b/translations/id/8-Reinforcement/1-QLearning/solution/R/README.md
new file mode 100644
index 00000000..591e9998
--- /dev/null
+++ b/translations/id/8-Reinforcement/1-QLearning/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ini adalah tempat sementara
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/2-Gym/README.md b/translations/id/8-Reinforcement/2-Gym/README.md
new file mode 100644
index 00000000..c0cad0f2
--- /dev/null
+++ b/translations/id/8-Reinforcement/2-Gym/README.md
@@ -0,0 +1,333 @@
+
+## Prasyarat
+
+Dalam pelajaran ini, kita akan menggunakan pustaka bernama **OpenAI Gym** untuk mensimulasikan berbagai **lingkungan**. Anda dapat menjalankan kode pelajaran ini secara lokal (misalnya dari Visual Studio Code), di mana simulasi akan terbuka di jendela baru. Saat menjalankan kode secara online, Anda mungkin perlu melakukan beberapa penyesuaian pada kode, seperti yang dijelaskan [di sini](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7).
+
+## OpenAI Gym
+
+Dalam pelajaran sebelumnya, aturan permainan dan keadaan diberikan oleh kelas `Board` yang kita definisikan sendiri. Di sini kita akan menggunakan **lingkungan simulasi** khusus, yang akan mensimulasikan fisika di balik tiang yang seimbang. Salah satu lingkungan simulasi paling populer untuk melatih algoritma pembelajaran penguatan disebut [Gym](https://gym.openai.com/), yang dikelola oleh [OpenAI](https://openai.com/). Dengan menggunakan gym ini, kita dapat membuat berbagai **lingkungan** mulai dari simulasi cartpole hingga permainan Atari.
+
+> **Catatan**: Anda dapat melihat lingkungan lain yang tersedia dari OpenAI Gym [di sini](https://gym.openai.com/envs/#classic_control).
+
+Pertama, mari kita instal gym dan impor pustaka yang diperlukan (kode blok 1):
+
+```python
+import sys
+!{sys.executable} -m pip install gym
+
+import gym
+import matplotlib.pyplot as plt
+import numpy as np
+import random
+```
+
+## Latihan - inisialisasi lingkungan cartpole
+
+Untuk bekerja dengan masalah keseimbangan cartpole, kita perlu menginisialisasi lingkungan yang sesuai. Setiap lingkungan terkait dengan:
+
+- **Observation space** yang mendefinisikan struktur informasi yang kita terima dari lingkungan. Untuk masalah cartpole, kita menerima posisi tiang, kecepatan, dan beberapa nilai lainnya.
+
+- **Action space** yang mendefinisikan tindakan yang mungkin dilakukan. Dalam kasus kita, action space bersifat diskrit, dan terdiri dari dua tindakan - **kiri** dan **kanan**. (kode blok 2)
+
+1. Untuk menginisialisasi, ketik kode berikut:
+
+ ```python
+ env = gym.make("CartPole-v1")
+ print(env.action_space)
+ print(env.observation_space)
+ print(env.action_space.sample())
+ ```
+
+Untuk melihat bagaimana lingkungan bekerja, mari kita jalankan simulasi singkat selama 100 langkah. Pada setiap langkah, kita memberikan salah satu tindakan yang akan dilakukan - dalam simulasi ini kita hanya memilih tindakan secara acak dari `action_space`.
+
+1. Jalankan kode di bawah ini dan lihat hasilnya.
+
+ ✅ Ingatlah bahwa lebih disarankan untuk menjalankan kode ini pada instalasi Python lokal! (kode blok 3)
+
+ ```python
+ env.reset()
+
+ for i in range(100):
+ env.render()
+ env.step(env.action_space.sample())
+ env.close()
+ ```
+
+ Anda seharusnya melihat sesuatu yang mirip dengan gambar ini:
+
+ 
+
+1. Selama simulasi, kita perlu mendapatkan observasi untuk memutuskan tindakan apa yang harus dilakukan. Faktanya, fungsi langkah mengembalikan observasi saat ini, fungsi reward, dan flag selesai yang menunjukkan apakah simulasi masih perlu dilanjutkan atau tidak: (kode 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()
+ ```
+
+ Anda akan melihat sesuatu seperti ini di output notebook:
+
+ ```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 observasi yang dikembalikan pada setiap langkah simulasi berisi nilai-nilai berikut:
+ - Posisi kereta
+ - Kecepatan kereta
+ - Sudut tiang
+ - Laju rotasi tiang
+
+1. Dapatkan nilai minimum dan maksimum dari angka-angka tersebut: (kode blok 5)
+
+ ```python
+ print(env.observation_space.low)
+ print(env.observation_space.high)
+ ```
+
+ Anda mungkin juga memperhatikan bahwa nilai reward pada setiap langkah simulasi selalu 1. Hal ini karena tujuan kita adalah bertahan selama mungkin, yaitu menjaga tiang tetap dalam posisi vertikal selama mungkin.
+
+ ✅ Faktanya, simulasi CartPole dianggap berhasil jika kita berhasil mendapatkan rata-rata reward sebesar 195 selama 100 percobaan berturut-turut.
+
+## Diskretisasi State
+
+Dalam Q-Learning, kita perlu membangun Q-Table yang mendefinisikan tindakan apa yang harus dilakukan pada setiap state. Untuk dapat melakukan ini, kita memerlukan state yang **diskrit**, lebih tepatnya, state tersebut harus berisi sejumlah nilai diskrit yang terbatas. Oleh karena itu, kita perlu **mendiskretkan** observasi kita, memetakannya ke dalam kumpulan state yang terbatas.
+
+Ada beberapa cara untuk melakukan ini:
+
+- **Membagi menjadi beberapa bin**. Jika kita mengetahui interval dari suatu nilai tertentu, kita dapat membagi interval ini menjadi sejumlah **bin**, dan kemudian mengganti nilai dengan nomor bin tempat nilai tersebut berada. Hal ini dapat dilakukan menggunakan metode numpy [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html). Dalam kasus ini, kita akan mengetahui ukuran state secara tepat, karena ukuran tersebut akan bergantung pada jumlah bin yang kita pilih untuk digitalisasi.
+
+✅ Kita dapat menggunakan interpolasi linier untuk membawa nilai ke beberapa interval terbatas (misalnya, dari -20 hingga 20), dan kemudian mengonversi angka menjadi bilangan bulat dengan membulatkannya. Ini memberikan kita sedikit kontrol pada ukuran state, terutama jika kita tidak mengetahui rentang nilai input secara pasti. Misalnya, dalam kasus kita, 2 dari 4 nilai tidak memiliki batas atas/bawah pada nilainya, yang dapat menghasilkan jumlah state yang tak terbatas.
+
+Dalam contoh kita, kita akan menggunakan pendekatan kedua. Seperti yang mungkin Anda perhatikan nanti, meskipun batas atas/bawah tidak terdefinisi, nilai-nilai tersebut jarang mengambil nilai di luar interval tertentu, sehingga state dengan nilai ekstrem akan sangat jarang.
+
+1. Berikut adalah fungsi yang akan mengambil observasi dari model kita dan menghasilkan tuple dari 4 nilai bilangan bulat: (kode blok 6)
+
+ ```python
+ def discretize(x):
+ return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int))
+ ```
+
+1. Mari kita juga eksplorasi metode diskretisasi lain menggunakan bin: (kode 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. Sekarang mari kita jalankan simulasi singkat dan amati nilai-nilai lingkungan diskrit tersebut. Silakan coba `discretize` dan `discretize_bins` dan lihat apakah ada perbedaan.
+
+ ✅ discretize_bins mengembalikan nomor bin, yang berbasis 0. Jadi untuk nilai variabel input di sekitar 0, ia mengembalikan nomor dari tengah interval (10). Dalam discretize, kita tidak peduli dengan rentang nilai output, memungkinkan mereka menjadi negatif, sehingga nilai state tidak bergeser, dan 0 sesuai dengan 0. (kode 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()
+ ```
+
+ ✅ Hapus komentar pada baris yang dimulai dengan env.render jika Anda ingin melihat bagaimana lingkungan dieksekusi. Jika tidak, Anda dapat menjalankannya di latar belakang, yang lebih cepat. Kami akan menggunakan eksekusi "tak terlihat" ini selama proses Q-Learning kami.
+
+## Struktur Q-Table
+
+Dalam pelajaran sebelumnya, state adalah pasangan angka sederhana dari 0 hingga 8, sehingga nyaman untuk merepresentasikan Q-Table dengan tensor numpy dengan bentuk 8x8x2. Jika kita menggunakan diskretisasi bin, ukuran vektor state kita juga diketahui, sehingga kita dapat menggunakan pendekatan yang sama dan merepresentasikan state dengan array berbentuk 20x20x10x10x2 (di sini 2 adalah dimensi action space, dan dimensi pertama sesuai dengan jumlah bin yang kita pilih untuk setiap parameter dalam observation space).
+
+Namun, terkadang dimensi observation space tidak diketahui secara pasti. Dalam kasus fungsi `discretize`, kita mungkin tidak pernah yakin bahwa state kita tetap berada dalam batas tertentu, karena beberapa nilai asli tidak memiliki batas. Oleh karena itu, kita akan menggunakan pendekatan yang sedikit berbeda dan merepresentasikan Q-Table dengan sebuah dictionary.
+
+1. Gunakan pasangan *(state,action)* sebagai kunci dictionary, dan nilainya akan sesuai dengan nilai entri Q-Table. (kode blok 9)
+
+ ```python
+ Q = {}
+ actions = (0,1)
+
+ def qvalues(state):
+ return [Q.get((state,a),0) for a in actions]
+ ```
+
+ Di sini kita juga mendefinisikan fungsi `qvalues()`, yang mengembalikan daftar nilai Q-Table untuk state tertentu yang sesuai dengan semua tindakan yang mungkin. Jika entri tidak ada dalam Q-Table, kita akan mengembalikan 0 sebagai default.
+
+## Mari Mulai Q-Learning
+
+Sekarang kita siap mengajari Peter untuk menjaga keseimbangan!
+
+1. Pertama, mari kita tetapkan beberapa hyperparameter: (kode blok 10)
+
+ ```python
+ # hyperparameters
+ alpha = 0.3
+ gamma = 0.9
+ epsilon = 0.90
+ ```
+
+ Di sini, `alpha` adalah **learning rate** yang menentukan sejauh mana kita harus menyesuaikan nilai Q-Table saat ini pada setiap langkah. Dalam pelajaran sebelumnya, kita memulai dengan 1, dan kemudian menurunkan `alpha` ke nilai yang lebih rendah selama pelatihan. Dalam contoh ini, kita akan mempertahankannya tetap konstan demi kesederhanaan, dan Anda dapat bereksperimen dengan menyesuaikan nilai `alpha` nanti.
+
+ `gamma` adalah **discount factor** yang menunjukkan sejauh mana kita harus memprioritaskan reward di masa depan dibandingkan reward saat ini.
+
+ `epsilon` adalah **exploration/exploitation factor** yang menentukan apakah kita harus lebih memilih eksplorasi daripada eksploitasi atau sebaliknya. Dalam algoritma kita, kita akan memilih tindakan berikutnya sesuai dengan nilai Q-Table dalam persentase `epsilon` dari kasus, dan dalam jumlah kasus yang tersisa kita akan melakukan tindakan acak. Ini memungkinkan kita untuk menjelajahi area ruang pencarian yang belum pernah kita lihat sebelumnya.
+
+ ✅ Dalam hal keseimbangan - memilih tindakan acak (eksplorasi) akan bertindak sebagai dorongan acak ke arah yang salah, dan tiang harus belajar bagaimana memulihkan keseimbangan dari "kesalahan" tersebut.
+
+### Tingkatkan Algoritma
+
+Kita juga dapat membuat dua peningkatan pada algoritma kita dari pelajaran sebelumnya:
+
+- **Hitung rata-rata reward kumulatif**, selama sejumlah simulasi. Kita akan mencetak kemajuan setiap 5000 iterasi, dan kita akan merata-ratakan reward kumulatif kita selama periode waktu tersebut. Artinya, jika kita mendapatkan lebih dari 195 poin - kita dapat menganggap masalah telah terpecahkan, bahkan dengan kualitas yang lebih tinggi dari yang diperlukan.
+
+- **Hitung hasil kumulatif rata-rata maksimum**, `Qmax`, dan kita akan menyimpan Q-Table yang sesuai dengan hasil tersebut. Saat Anda menjalankan pelatihan, Anda akan melihat bahwa terkadang hasil kumulatif rata-rata mulai menurun, dan kita ingin menyimpan nilai Q-Table yang sesuai dengan model terbaik yang diamati selama pelatihan.
+
+1. Kumpulkan semua reward kumulatif pada setiap simulasi di vektor `rewards` untuk plotting lebih lanjut. (kode 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=[]
+ ```
+
+Apa yang mungkin Anda perhatikan dari hasil tersebut:
+
+- **Dekat dengan tujuan kita**. Kita sangat dekat dengan mencapai tujuan mendapatkan reward kumulatif sebesar 195 selama 100+ percobaan simulasi berturut-turut, atau kita mungkin telah benar-benar mencapainya! Bahkan jika kita mendapatkan angka yang lebih kecil, kita masih tidak tahu, karena kita merata-ratakan selama 5000 kali, dan hanya 100 kali yang diperlukan dalam kriteria formal.
+
+- **Reward mulai menurun**. Terkadang reward mulai menurun, yang berarti kita dapat "merusak" nilai yang sudah dipelajari dalam Q-Table dengan nilai yang membuat situasi menjadi lebih buruk.
+
+Pengamatan ini lebih jelas terlihat jika kita memplot kemajuan pelatihan.
+
+## Memplot Kemajuan Pelatihan
+
+Selama pelatihan, kita telah mengumpulkan nilai reward kumulatif pada setiap iterasi ke dalam vektor `rewards`. Berikut adalah tampilannya saat kita plot terhadap nomor iterasi:
+
+```python
+plt.plot(rewards)
+```
+
+
+
+Dari grafik ini, tidak mungkin untuk menyimpulkan apa pun, karena sifat proses pelatihan stokastik membuat panjang sesi pelatihan sangat bervariasi. Untuk membuat grafik ini lebih masuk akal, kita dapat menghitung **rata-rata berjalan** selama serangkaian eksperimen, misalnya 100. Hal ini dapat dilakukan dengan mudah menggunakan `np.convolve`: (kode blok 12)
+
+```python
+def running_average(x,window):
+ return np.convolve(x,np.ones(window)/window,mode='valid')
+
+plt.plot(running_average(rewards,100))
+```
+
+
+
+## Memvariasikan Hyperparameter
+
+Untuk membuat pembelajaran lebih stabil, masuk akal untuk menyesuaikan beberapa hyperparameter kita selama pelatihan. Secara khusus:
+
+- **Untuk learning rate**, `alpha`, kita dapat memulai dengan nilai yang mendekati 1, dan kemudian terus menurunkan parameter tersebut. Seiring waktu, kita akan mendapatkan nilai probabilitas yang baik dalam Q-Table, sehingga kita harus menyesuaikannya sedikit, dan tidak menimpa sepenuhnya dengan nilai baru.
+
+- **Tingkatkan epsilon**. Kita mungkin ingin meningkatkan `epsilon` secara perlahan, agar lebih sedikit eksplorasi dan lebih banyak eksploitasi. Mungkin masuk akal untuk memulai dengan nilai `epsilon` yang lebih rendah, dan meningkatkannya hingga hampir 1.
+> **Tugas 1**: Coba ubah nilai hyperparameter dan lihat apakah Anda bisa mencapai total reward yang lebih tinggi. Apakah Anda mendapatkan di atas 195?
+> **Tugas 2**: Untuk secara formal menyelesaikan masalah ini, Anda perlu mencapai rata-rata reward sebesar 195 dalam 100 kali percobaan berturut-turut. Ukur itu selama pelatihan dan pastikan bahwa Anda telah secara formal menyelesaikan masalah ini!
+
+## Melihat hasilnya secara langsung
+
+Akan menarik untuk melihat bagaimana model yang telah dilatih berperilaku. Mari kita jalankan simulasi dan gunakan strategi pemilihan aksi yang sama seperti saat pelatihan, yaitu sampling berdasarkan distribusi probabilitas di Q-Table: (blok kode 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()
+```
+
+Anda seharusnya melihat sesuatu seperti ini:
+
+
+
+---
+
+## 🚀Tantangan
+
+> **Tugas 3**: Di sini, kita menggunakan salinan akhir dari Q-Table, yang mungkin bukan yang terbaik. Ingat bahwa kita telah menyimpan Q-Table dengan performa terbaik ke dalam variabel `Qbest`! Coba contoh yang sama dengan Q-Table terbaik dengan menyalin `Qbest` ke `Q` dan lihat apakah Anda melihat perbedaannya.
+
+> **Tugas 4**: Di sini kita tidak memilih aksi terbaik di setiap langkah, melainkan sampling berdasarkan distribusi probabilitas yang sesuai. Apakah lebih masuk akal untuk selalu memilih aksi terbaik, dengan nilai Q-Table tertinggi? Ini dapat dilakukan dengan menggunakan fungsi `np.argmax` untuk menemukan nomor aksi yang sesuai dengan nilai Q-Table tertinggi. Implementasikan strategi ini dan lihat apakah itu meningkatkan keseimbangan.
+
+## [Kuis setelah kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tugas
+[Latih Mountain Car](assignment.md)
+
+## Kesimpulan
+
+Kita sekarang telah belajar bagaimana melatih agen untuk mencapai hasil yang baik hanya dengan memberikan mereka fungsi reward yang mendefinisikan keadaan yang diinginkan dalam permainan, dan dengan memberikan mereka kesempatan untuk secara cerdas menjelajahi ruang pencarian. Kita telah berhasil menerapkan algoritma Q-Learning dalam kasus lingkungan diskret dan kontinu, tetapi dengan aksi diskret.
+
+Penting juga untuk mempelajari situasi di mana keadaan aksi juga kontinu, dan ketika ruang observasi jauh lebih kompleks, seperti gambar dari layar permainan Atari. Dalam masalah-masalah tersebut, kita sering kali perlu menggunakan teknik pembelajaran mesin yang lebih kuat, seperti jaringan saraf, untuk mencapai hasil yang baik. Topik-topik yang lebih maju ini akan menjadi subjek dari kursus AI lanjutan kami yang akan datang.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/2-Gym/assignment.md b/translations/id/8-Reinforcement/2-Gym/assignment.md
new file mode 100644
index 00000000..eff91a7b
--- /dev/null
+++ b/translations/id/8-Reinforcement/2-Gym/assignment.md
@@ -0,0 +1,55 @@
+
+# Melatih Mountain Car
+
+[OpenAI Gym](http://gym.openai.com) dirancang sedemikian rupa sehingga semua lingkungan menyediakan API yang sama - yaitu metode yang sama `reset`, `step`, dan `render`, serta abstraksi yang sama untuk **action space** dan **observation space**. Oleh karena itu, seharusnya memungkinkan untuk mengadaptasi algoritma pembelajaran penguatan yang sama ke berbagai lingkungan dengan perubahan kode yang minimal.
+
+## Lingkungan Mountain Car
+
+[Lingkungan Mountain Car](https://gym.openai.com/envs/MountainCar-v0/) berisi sebuah mobil yang terjebak di lembah:
+
+Tujuannya adalah keluar dari lembah dan menangkap bendera, dengan melakukan salah satu tindakan berikut di setiap langkah:
+
+| Nilai | Makna |
+|---|---|
+| 0 | Mempercepat ke kiri |
+| 1 | Tidak mempercepat |
+| 2 | Mempercepat ke kanan |
+
+Namun, trik utama dari masalah ini adalah bahwa mesin mobil tidak cukup kuat untuk mendaki gunung dalam satu kali perjalanan. Oleh karena itu, satu-satunya cara untuk berhasil adalah dengan bergerak maju mundur untuk membangun momentum.
+
+Observation space hanya terdiri dari dua nilai:
+
+| Num | Observasi | Min | Max |
+|-----|----------------|-------|-------|
+| 0 | Posisi Mobil | -1.2 | 0.6 |
+| 1 | Kecepatan Mobil| -0.07 | 0.07 |
+
+Sistem reward untuk Mountain Car cukup rumit:
+
+ * Reward sebesar 0 diberikan jika agen berhasil mencapai bendera (posisi = 0.5) di puncak gunung.
+ * Reward sebesar -1 diberikan jika posisi agen kurang dari 0.5.
+
+Episode berakhir jika posisi mobil lebih dari 0.5, atau panjang episode lebih dari 200.
+## Instruksi
+
+Adaptasikan algoritma pembelajaran penguatan kami untuk menyelesaikan masalah Mountain Car. Mulailah dengan kode yang ada di [notebook.ipynb](../../../../8-Reinforcement/2-Gym/notebook.ipynb), ganti lingkungan baru, ubah fungsi diskretisasi state, dan coba buat algoritma yang ada untuk melatih dengan perubahan kode yang minimal. Optimalkan hasil dengan menyesuaikan hyperparameter.
+
+> **Note**: Penyesuaian hyperparameter kemungkinan diperlukan agar algoritma dapat konvergen.
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | -------| --------| ----------------- |
+| | Algoritma Q-Learning berhasil diadaptasi dari contoh CartPole, dengan perubahan kode minimal, yang mampu menyelesaikan masalah menangkap bendera dalam kurang dari 200 langkah. | Algoritma Q-Learning baru telah diadopsi dari Internet, tetapi terdokumentasi dengan baik; atau algoritma yang ada diadopsi, tetapi tidak mencapai hasil yang diinginkan. | Mahasiswa tidak berhasil mengadopsi algoritma apa pun, tetapi telah membuat langkah substansial menuju solusi (mengimplementasikan diskretisasi state, struktur data Q-Table, dll.) |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/2-Gym/solution/Julia/README.md b/translations/id/8-Reinforcement/2-Gym/solution/Julia/README.md
new file mode 100644
index 00000000..0324d975
--- /dev/null
+++ b/translations/id/8-Reinforcement/2-Gym/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/2-Gym/solution/R/README.md b/translations/id/8-Reinforcement/2-Gym/solution/R/README.md
new file mode 100644
index 00000000..2a256c25
--- /dev/null
+++ b/translations/id/8-Reinforcement/2-Gym/solution/R/README.md
@@ -0,0 +1,15 @@
+
+ini adalah tempat sementara
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/8-Reinforcement/README.md b/translations/id/8-Reinforcement/README.md
new file mode 100644
index 00000000..3a6bfa38
--- /dev/null
+++ b/translations/id/8-Reinforcement/README.md
@@ -0,0 +1,67 @@
+
+# Pengantar Pembelajaran Penguatan
+
+Pembelajaran penguatan, atau RL, dianggap sebagai salah satu paradigma dasar pembelajaran mesin, selain pembelajaran terawasi dan pembelajaran tak terawasi. RL berfokus pada pengambilan keputusan: membuat keputusan yang tepat atau setidaknya belajar dari keputusan tersebut.
+
+Bayangkan Anda memiliki lingkungan simulasi seperti pasar saham. Apa yang terjadi jika Anda menerapkan suatu regulasi tertentu? Apakah dampaknya positif atau negatif? Jika terjadi sesuatu yang negatif, Anda perlu mengambil _penguatan negatif_, belajar darinya, dan mengubah arah. Jika hasilnya positif, Anda perlu membangun dari _penguatan positif_ tersebut.
+
+
+
+> Peter dan teman-temannya harus melarikan diri dari serigala yang lapar! Gambar oleh [Jen Looper](https://twitter.com/jenlooper)
+
+## Topik Regional: Peter dan Serigala (Rusia)
+
+[Peter dan Serigala](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) adalah dongeng musikal yang ditulis oleh komposer Rusia [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev). Ini adalah kisah tentang pionir muda Peter, yang dengan berani keluar dari rumahnya menuju hutan untuk mengejar serigala. Dalam bagian ini, kita akan melatih algoritma pembelajaran mesin yang akan membantu Peter:
+
+- **Menjelajahi** area sekitar dan membangun peta navigasi yang optimal
+- **Belajar** menggunakan skateboard dan menjaga keseimbangan di atasnya, agar dapat bergerak lebih cepat.
+
+[](https://www.youtube.com/watch?v=Fmi5zHg4QSM)
+
+> 🎥 Klik gambar di atas untuk mendengarkan Peter dan Serigala oleh Prokofiev
+
+## Pembelajaran Penguatan
+
+Pada bagian sebelumnya, Anda telah melihat dua contoh masalah pembelajaran mesin:
+
+- **Terawasi**, di mana kita memiliki dataset yang menyarankan solusi contoh untuk masalah yang ingin kita selesaikan. [Klasifikasi](../4-Classification/README.md) dan [regresi](../2-Regression/README.md) adalah tugas pembelajaran terawasi.
+- **Tak terawasi**, di mana kita tidak memiliki data pelatihan yang diberi label. Contoh utama pembelajaran tak terawasi adalah [Pengelompokan](../5-Clustering/README.md).
+
+Dalam bagian ini, kita akan memperkenalkan jenis masalah pembelajaran baru yang tidak memerlukan data pelatihan yang diberi label. Ada beberapa jenis masalah seperti ini:
+
+- **[Pembelajaran semi-terawasi](https://wikipedia.org/wiki/Semi-supervised_learning)**, di mana kita memiliki banyak data yang tidak diberi label yang dapat digunakan untuk pra-pelatihan model.
+- **[Pembelajaran penguatan](https://wikipedia.org/wiki/Reinforcement_learning)**, di mana agen belajar bagaimana berperilaku dengan melakukan eksperimen dalam lingkungan simulasi tertentu.
+
+### Contoh - permainan komputer
+
+Misalkan Anda ingin mengajarkan komputer untuk bermain game, seperti catur, atau [Super Mario](https://wikipedia.org/wiki/Super_Mario). Agar komputer dapat bermain game, kita perlu memprediksi langkah apa yang harus diambil dalam setiap keadaan permainan. Meskipun ini mungkin tampak seperti masalah klasifikasi, sebenarnya tidak - karena kita tidak memiliki dataset dengan keadaan dan tindakan yang sesuai. Meskipun kita mungkin memiliki beberapa data seperti pertandingan catur yang ada atau rekaman pemain yang bermain Super Mario, kemungkinan besar data tersebut tidak cukup mencakup sejumlah besar keadaan yang mungkin terjadi.
+
+Alih-alih mencari data game yang ada, **Pembelajaran Penguatan** (RL) didasarkan pada ide *membuat komputer bermain* berkali-kali dan mengamati hasilnya. Jadi, untuk menerapkan Pembelajaran Penguatan, kita membutuhkan dua hal:
+
+- **Sebuah lingkungan** dan **simulator** yang memungkinkan kita bermain game berkali-kali. Simulator ini akan mendefinisikan semua aturan permainan serta keadaan dan tindakan yang mungkin.
+
+- **Fungsi penghargaan**, yang akan memberi tahu kita seberapa baik kita melakukannya selama setiap langkah atau permainan.
+
+Perbedaan utama antara jenis pembelajaran mesin lainnya dan RL adalah bahwa dalam RL kita biasanya tidak tahu apakah kita menang atau kalah sampai kita menyelesaikan permainan. Jadi, kita tidak dapat mengatakan apakah langkah tertentu saja baik atau tidak - kita hanya menerima penghargaan di akhir permainan. Dan tujuan kita adalah merancang algoritma yang memungkinkan kita melatih model dalam kondisi yang tidak pasti. Kita akan belajar tentang salah satu algoritma RL yang disebut **Q-learning**.
+
+## Pelajaran
+
+1. [Pengantar pembelajaran penguatan dan Q-Learning](1-QLearning/README.md)
+2. [Menggunakan lingkungan simulasi gym](2-Gym/README.md)
+
+## Kredit
+
+"Pengantar Pembelajaran Penguatan" ditulis dengan ♥️ oleh [Dmitry Soshnikov](http://soshnikov.com)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/9-Real-World/1-Applications/README.md b/translations/id/9-Real-World/1-Applications/README.md
new file mode 100644
index 00000000..564fb6e5
--- /dev/null
+++ b/translations/id/9-Real-World/1-Applications/README.md
@@ -0,0 +1,159 @@
+
+# Postscript: Pembelajaran Mesin di Dunia Nyata
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+Dalam kurikulum ini, Anda telah mempelajari banyak cara untuk mempersiapkan data untuk pelatihan dan membuat model pembelajaran mesin. Anda telah membangun serangkaian model klasik seperti regresi, clustering, klasifikasi, pemrosesan bahasa alami, dan deret waktu. Selamat! Sekarang, Anda mungkin bertanya-tanya untuk apa semua ini... apa aplikasi dunia nyata dari model-model ini?
+
+Meskipun minat industri banyak tertuju pada AI yang biasanya memanfaatkan pembelajaran mendalam, masih ada aplikasi berharga untuk model pembelajaran mesin klasik. Anda bahkan mungkin menggunakan beberapa aplikasi ini hari ini! Dalam pelajaran ini, Anda akan mengeksplorasi bagaimana delapan industri dan domain keahlian yang berbeda menggunakan jenis model ini untuk membuat aplikasi mereka lebih efektif, andal, cerdas, dan bernilai bagi pengguna.
+
+## [Kuis pra-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## 💰 Keuangan
+
+Sektor keuangan menawarkan banyak peluang untuk pembelajaran mesin. Banyak masalah di area ini dapat dimodelkan dan diselesaikan menggunakan ML.
+
+### Deteksi Penipuan Kartu Kredit
+
+Kita telah mempelajari tentang [k-means clustering](../../5-Clustering/2-K-Means/README.md) sebelumnya dalam kursus ini, tetapi bagaimana cara menggunakannya untuk menyelesaikan masalah terkait penipuan kartu kredit?
+
+K-means clustering berguna dalam teknik deteksi penipuan kartu kredit yang disebut **deteksi outlier**. Outlier, atau penyimpangan dalam pengamatan terhadap sekumpulan data, dapat memberi tahu kita apakah kartu kredit digunakan secara normal atau ada sesuatu yang tidak biasa. Seperti yang ditunjukkan dalam makalah yang ditautkan di bawah ini, Anda dapat mengelompokkan data kartu kredit menggunakan algoritma k-means clustering dan menetapkan setiap transaksi ke dalam cluster berdasarkan seberapa besar outlier-nya. Kemudian, Anda dapat mengevaluasi cluster yang paling berisiko untuk transaksi penipuan versus transaksi yang sah.
+[Referensi](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.680.1195&rep=rep1&type=pdf)
+
+### Manajemen Kekayaan
+
+Dalam manajemen kekayaan, individu atau perusahaan mengelola investasi atas nama klien mereka. Tugas mereka adalah mempertahankan dan meningkatkan kekayaan dalam jangka panjang, sehingga penting untuk memilih investasi yang berkinerja baik.
+
+Salah satu cara untuk mengevaluasi bagaimana suatu investasi berkinerja adalah melalui regresi statistik. [Regresi linear](../../2-Regression/1-Tools/README.md) adalah alat yang berharga untuk memahami bagaimana suatu dana berkinerja relatif terhadap tolok ukur tertentu. Kita juga dapat menyimpulkan apakah hasil regresi tersebut signifikan secara statistik, atau seberapa besar pengaruhnya terhadap investasi klien. Anda bahkan dapat memperluas analisis Anda menggunakan regresi berganda, di mana faktor risiko tambahan dapat diperhitungkan. Untuk contoh bagaimana ini akan bekerja untuk dana tertentu, lihat makalah di bawah ini tentang mengevaluasi kinerja dana menggunakan regresi.
+[Referensi](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/)
+
+## 🎓 Pendidikan
+
+Sektor pendidikan juga merupakan area yang sangat menarik untuk penerapan ML. Ada masalah menarik yang dapat diatasi seperti mendeteksi kecurangan pada tes atau esai, atau mengelola bias, baik yang disengaja maupun tidak, dalam proses koreksi.
+
+### Memprediksi Perilaku Siswa
+
+[Coursera](https://coursera.com), penyedia kursus online terbuka, memiliki blog teknologi yang hebat di mana mereka membahas banyak keputusan teknik. Dalam studi kasus ini, mereka memplot garis regresi untuk mencoba mengeksplorasi korelasi antara rating NPS (Net Promoter Score) yang rendah dan retensi atau penurunan kursus.
+[Referensi](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a)
+
+### Mengurangi Bias
+
+[Grammarly](https://grammarly.com), asisten penulisan yang memeriksa kesalahan ejaan dan tata bahasa, menggunakan sistem [pemrosesan bahasa alami](../../6-NLP/README.md) yang canggih di seluruh produknya. Mereka menerbitkan studi kasus menarik di blog teknologi mereka tentang bagaimana mereka menangani bias gender dalam pembelajaran mesin, yang telah Anda pelajari dalam [pelajaran pengantar tentang keadilan](../../1-Introduction/3-fairness/README.md).
+[Referensi](https://www.grammarly.com/blog/engineering/mitigating-gender-bias-in-autocorrect/)
+
+## 👜 Ritel
+
+Sektor ritel dapat sangat diuntungkan dari penggunaan ML, mulai dari menciptakan perjalanan pelanggan yang lebih baik hingga mengelola inventaris secara optimal.
+
+### Personalisasi Perjalanan Pelanggan
+
+Di Wayfair, sebuah perusahaan yang menjual barang-barang rumah tangga seperti furnitur, membantu pelanggan menemukan produk yang sesuai dengan selera dan kebutuhan mereka adalah hal yang utama. Dalam artikel ini, para insinyur dari perusahaan tersebut menjelaskan bagaimana mereka menggunakan ML dan NLP untuk "menampilkan hasil yang tepat bagi pelanggan". Secara khusus, Query Intent Engine mereka telah dibangun untuk menggunakan ekstraksi entitas, pelatihan klasifikasi, ekstraksi aset dan opini, serta penandaan sentimen pada ulasan pelanggan. Ini adalah contoh klasik bagaimana NLP bekerja dalam ritel online.
+[Referensi](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search)
+
+### Manajemen Inventaris
+
+Perusahaan inovatif dan gesit seperti [StitchFix](https://stitchfix.com), layanan kotak yang mengirimkan pakaian kepada konsumen, sangat bergantung pada ML untuk rekomendasi dan manajemen inventaris. Tim styling mereka bekerja sama dengan tim merchandising mereka, bahkan: "salah satu ilmuwan data kami bereksperimen dengan algoritma genetik dan menerapkannya pada pakaian untuk memprediksi apa yang akan menjadi pakaian yang sukses yang belum ada saat ini. Kami membawa itu ke tim merchandise dan sekarang mereka dapat menggunakannya sebagai alat."
+[Referensi](https://www.zdnet.com/article/how-stitch-fix-uses-machine-learning-to-master-the-science-of-styling/)
+
+## 🏥 Kesehatan
+
+Sektor kesehatan dapat memanfaatkan ML untuk mengoptimalkan tugas penelitian dan juga masalah logistik seperti readmisi pasien atau menghentikan penyebaran penyakit.
+
+### Manajemen Uji Klinis
+
+Toksisitas dalam uji klinis adalah perhatian utama bagi pembuat obat. Seberapa banyak toksisitas yang dapat ditoleransi? Dalam studi ini, menganalisis berbagai metode uji klinis menghasilkan pendekatan baru untuk memprediksi peluang hasil uji klinis. Secara khusus, mereka dapat menggunakan random forest untuk menghasilkan [classifier](../../4-Classification/README.md) yang mampu membedakan antara kelompok obat.
+[Referensi](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
+
+### Manajemen Readmisi Rumah Sakit
+
+Perawatan rumah sakit mahal, terutama ketika pasien harus readmisi. Makalah ini membahas sebuah perusahaan yang menggunakan ML untuk memprediksi potensi readmisi menggunakan algoritma [clustering](../../5-Clustering/README.md). Cluster ini membantu analis untuk "menemukan kelompok readmisi yang mungkin memiliki penyebab yang sama".
+[Referensi](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning)
+
+### Manajemen Penyakit
+
+Pandemi baru-baru ini telah menyoroti cara-cara pembelajaran mesin dapat membantu menghentikan penyebaran penyakit. Dalam artikel ini, Anda akan mengenali penggunaan ARIMA, kurva logistik, regresi linear, dan SARIMA. "Pekerjaan ini adalah upaya untuk menghitung tingkat penyebaran virus ini dan dengan demikian memprediksi kematian, pemulihan, dan kasus yang dikonfirmasi, sehingga dapat membantu kita mempersiapkan diri dengan lebih baik dan bertahan."
+[Referensi](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/)
+
+## 🌲 Ekologi dan Teknologi Hijau
+
+Alam dan ekologi terdiri dari banyak sistem sensitif di mana interaksi antara hewan dan alam menjadi fokus. Penting untuk dapat mengukur sistem ini secara akurat dan bertindak dengan tepat jika sesuatu terjadi, seperti kebakaran hutan atau penurunan populasi hewan.
+
+### Manajemen Hutan
+
+Anda telah mempelajari tentang [Reinforcement Learning](../../8-Reinforcement/README.md) dalam pelajaran sebelumnya. Ini bisa sangat berguna saat mencoba memprediksi pola di alam. Secara khusus, ini dapat digunakan untuk melacak masalah ekologi seperti kebakaran hutan dan penyebaran spesies invasif. Di Kanada, sekelompok peneliti menggunakan Reinforcement Learning untuk membangun model dinamika kebakaran hutan dari citra satelit. Menggunakan "spatially spreading process (SSP)" yang inovatif, mereka membayangkan kebakaran hutan sebagai "agen di setiap sel dalam lanskap." "Set tindakan yang dapat diambil oleh api dari suatu lokasi pada titik waktu tertentu termasuk menyebar ke utara, selatan, timur, atau barat atau tidak menyebar.
+
+Pendekatan ini membalikkan pengaturan RL biasa karena dinamika Proses Keputusan Markov (MDP) yang sesuai adalah fungsi yang diketahui untuk penyebaran kebakaran langsung." Baca lebih lanjut tentang algoritma klasik yang digunakan oleh kelompok ini di tautan di bawah ini.
+[Referensi](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full)
+
+### Sensor Gerak Hewan
+
+Meskipun pembelajaran mendalam telah menciptakan revolusi dalam melacak gerakan hewan secara visual (Anda dapat membuat [pelacak beruang kutub](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) Anda sendiri di sini), ML klasik masih memiliki tempat dalam tugas ini.
+
+Sensor untuk melacak gerakan hewan ternak dan IoT memanfaatkan jenis pemrosesan visual ini, tetapi teknik ML yang lebih dasar berguna untuk memproses data awal. Misalnya, dalam makalah ini, postur domba dipantau dan dianalisis menggunakan berbagai algoritma klasifikasi. Anda mungkin mengenali kurva ROC di halaman 335.
+[Referensi](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf)
+
+### ⚡️ Manajemen Energi
+
+Dalam pelajaran kami tentang [peramalan deret waktu](../../7-TimeSeries/README.md), kami mengangkat konsep meteran parkir pintar untuk menghasilkan pendapatan bagi kota berdasarkan pemahaman tentang penawaran dan permintaan. Artikel ini membahas secara rinci bagaimana clustering, regresi, dan peramalan deret waktu digabungkan untuk membantu memprediksi penggunaan energi di masa depan di Irlandia, berdasarkan meteran pintar.
+[Referensi](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf)
+
+## 💼 Asuransi
+
+Sektor asuransi adalah sektor lain yang menggunakan ML untuk membangun dan mengoptimalkan model keuangan dan aktuaria yang layak.
+
+### Manajemen Volatilitas
+
+MetLife, penyedia asuransi jiwa, terbuka tentang cara mereka menganalisis dan mengurangi volatilitas dalam model keuangan mereka. Dalam artikel ini Anda akan melihat visualisasi klasifikasi biner dan ordinal. Anda juga akan menemukan visualisasi peramalan.
+[Referensi](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf)
+
+## 🎨 Seni, Budaya, dan Sastra
+
+Dalam seni, misalnya dalam jurnalisme, ada banyak masalah menarik. Mendeteksi berita palsu adalah masalah besar karena telah terbukti memengaruhi opini publik dan bahkan mengguncang demokrasi. Museum juga dapat memanfaatkan ML dalam segala hal mulai dari menemukan hubungan antar artefak hingga perencanaan sumber daya.
+
+### Deteksi Berita Palsu
+
+Mendeteksi berita palsu telah menjadi permainan kucing dan tikus dalam media saat ini. Dalam artikel ini, para peneliti menyarankan bahwa sistem yang menggabungkan beberapa teknik ML yang telah kita pelajari dapat diuji dan model terbaik diterapkan: "Sistem ini didasarkan pada pemrosesan bahasa alami untuk mengekstrak fitur dari data dan kemudian fitur-fitur ini digunakan untuk pelatihan pengklasifikasi pembelajaran mesin seperti Naive Bayes, Support Vector Machine (SVM), Random Forest (RF), Stochastic Gradient Descent (SGD), dan Logistic Regression (LR)."
+[Referensi](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf)
+
+Artikel ini menunjukkan bagaimana menggabungkan berbagai domain ML dapat menghasilkan hasil menarik yang dapat membantu menghentikan penyebaran berita palsu dan menciptakan kerusakan nyata; dalam kasus ini, dorongan utamanya adalah penyebaran rumor tentang pengobatan COVID yang memicu kekerasan massa.
+
+### Museum ML
+
+Museum berada di ambang revolusi AI di mana pengatalogan dan digitalisasi koleksi serta menemukan hubungan antar artefak menjadi lebih mudah seiring kemajuan teknologi. Proyek seperti [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources.) membantu membuka misteri koleksi yang tidak dapat diakses seperti Arsip Vatikan. Namun, aspek bisnis museum juga mendapat manfaat dari model ML.
+
+Misalnya, Art Institute of Chicago membangun model untuk memprediksi apa yang diminati oleh audiens dan kapan mereka akan menghadiri pameran. Tujuannya adalah menciptakan pengalaman pengunjung yang dipersonalisasi dan dioptimalkan setiap kali pengguna mengunjungi museum. "Selama tahun fiskal 2017, model tersebut memprediksi kehadiran dan penerimaan dengan akurasi hingga 1 persen, kata Andrew Simnick, wakil presiden senior di Art Institute."
+[Referensi](https://www.chicagobusiness.com/article/20180518/ISSUE01/180519840/art-institute-of-chicago-uses-data-to-make-exhibit-choices)
+
+## 🏷 Pemasaran
+
+### Segmentasi Pelanggan
+
+Strategi pemasaran yang paling efektif menargetkan pelanggan dengan cara yang berbeda berdasarkan berbagai pengelompokan. Dalam artikel ini, penggunaan algoritma Clustering dibahas untuk mendukung pemasaran yang berbeda. Pemasaran yang berbeda membantu perusahaan meningkatkan pengenalan merek, menjangkau lebih banyak pelanggan, dan menghasilkan lebih banyak uang.
+[Referensi](https://ai.inqline.com/machine-learning-for-marketing-customer-segmentation/)
+
+## 🚀 Tantangan
+
+Identifikasi sektor lain yang mendapat manfaat dari beberapa teknik yang telah Anda pelajari dalam kurikulum ini, dan temukan bagaimana sektor tersebut menggunakan ML.
+## [Kuis setelah kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Tinjauan & Belajar Mandiri
+
+Tim data science Wayfair memiliki beberapa video menarik tentang bagaimana mereka menggunakan ML di perusahaan mereka. Ada baiknya [melihatnya](https://www.youtube.com/channel/UCe2PjkQXqOuwkW1gw6Ameuw/videos)!
+
+## Tugas
+
+[Perburuan ML](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/9-Real-World/1-Applications/assignment.md b/translations/id/9-Real-World/1-Applications/assignment.md
new file mode 100644
index 00000000..1e2ea61a
--- /dev/null
+++ b/translations/id/9-Real-World/1-Applications/assignment.md
@@ -0,0 +1,27 @@
+
+# Perburuan ML
+
+## Instruksi
+
+Dalam pelajaran ini, Anda telah mempelajari banyak kasus penggunaan nyata yang diselesaikan menggunakan ML klasik. Meskipun penggunaan deep learning, teknik dan alat baru dalam AI, serta pemanfaatan jaringan neural telah membantu mempercepat produksi alat untuk membantu di sektor-sektor ini, ML klasik dengan teknik yang diajarkan dalam kurikulum ini masih memiliki nilai yang besar.
+
+Dalam tugas ini, bayangkan Anda sedang berpartisipasi dalam sebuah hackathon. Gunakan apa yang telah Anda pelajari dalam kurikulum untuk mengusulkan solusi menggunakan ML klasik untuk menyelesaikan masalah di salah satu sektor yang dibahas dalam pelajaran ini. Buatlah sebuah presentasi di mana Anda membahas bagaimana Anda akan mengimplementasikan ide Anda. Poin bonus jika Anda dapat mengumpulkan data sampel dan membangun model ML untuk mendukung konsep Anda!
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Peningkatan |
+| -------- | ------------------------------------------------------------------- | ------------------------------------------------- | ---------------------- |
+| | Presentasi PowerPoint disajikan - bonus untuk membangun model | Presentasi dasar yang tidak inovatif disajikan | Pekerjaan tidak lengkap |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/9-Real-World/2-Debugging-ML-Models/README.md b/translations/id/9-Real-World/2-Debugging-ML-Models/README.md
new file mode 100644
index 00000000..a977470b
--- /dev/null
+++ b/translations/id/9-Real-World/2-Debugging-ML-Models/README.md
@@ -0,0 +1,184 @@
+
+# Postscript: Debugging Model dalam Pembelajaran Mesin menggunakan Komponen Dasbor AI yang Bertanggung Jawab
+
+## [Kuis pra-kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Pendahuluan
+
+Pembelajaran mesin memengaruhi kehidupan kita sehari-hari. AI mulai digunakan dalam beberapa sistem paling penting yang memengaruhi kita sebagai individu maupun masyarakat, seperti di bidang kesehatan, keuangan, pendidikan, dan pekerjaan. Misalnya, sistem dan model terlibat dalam tugas pengambilan keputusan sehari-hari, seperti diagnosis kesehatan atau mendeteksi penipuan. Akibatnya, kemajuan AI yang pesat dan adopsinya yang semakin meluas dihadapkan pada ekspektasi masyarakat yang terus berkembang serta regulasi yang semakin ketat. Kita sering melihat area di mana sistem AI gagal memenuhi ekspektasi; mereka memunculkan tantangan baru; dan pemerintah mulai mengatur solusi AI. Oleh karena itu, penting untuk menganalisis model-model ini agar dapat memberikan hasil yang adil, dapat diandalkan, inklusif, transparan, dan bertanggung jawab bagi semua orang.
+
+Dalam kurikulum ini, kita akan melihat alat-alat praktis yang dapat digunakan untuk menilai apakah sebuah model memiliki masalah AI yang bertanggung jawab. Teknik debugging pembelajaran mesin tradisional cenderung didasarkan pada perhitungan kuantitatif seperti akurasi agregat atau rata-rata error loss. Bayangkan apa yang bisa terjadi jika data yang Anda gunakan untuk membangun model ini kekurangan demografi tertentu, seperti ras, gender, pandangan politik, agama, atau secara tidak proporsional mewakili demografi tersebut. Bagaimana jika output model diinterpretasikan untuk menguntungkan beberapa demografi? Hal ini dapat menyebabkan representasi berlebihan atau kurang dari kelompok fitur sensitif ini, yang mengakibatkan masalah keadilan, inklusivitas, atau keandalan dari model tersebut. Faktor lainnya adalah, model pembelajaran mesin sering dianggap sebagai kotak hitam, yang membuatnya sulit untuk memahami dan menjelaskan apa yang mendorong prediksi model. Semua ini adalah tantangan yang dihadapi oleh ilmuwan data dan pengembang AI ketika mereka tidak memiliki alat yang memadai untuk debugging dan menilai keadilan atau kepercayaan model.
+
+Dalam pelajaran ini, Anda akan belajar tentang debugging model Anda menggunakan:
+
+- **Analisis Kesalahan**: mengidentifikasi di mana dalam distribusi data Anda model memiliki tingkat kesalahan yang tinggi.
+- **Ikhtisar Model**: melakukan analisis komparatif di berbagai kelompok data untuk menemukan disparitas dalam metrik kinerja model Anda.
+- **Analisis Data**: menyelidiki di mana mungkin ada representasi berlebihan atau kurang dari data Anda yang dapat membuat model Anda cenderung menguntungkan satu demografi data dibandingkan yang lain.
+- **Pentingnya Fitur**: memahami fitur mana yang mendorong prediksi model Anda pada tingkat global atau lokal.
+
+## Prasyarat
+
+Sebagai prasyarat, silakan tinjau [Alat AI yang Bertanggung Jawab untuk Pengembang](https://www.microsoft.com/ai/ai-lab-responsible-ai-dashboard)
+
+> 
+
+## Analisis Kesalahan
+
+Metrik kinerja model tradisional yang digunakan untuk mengukur akurasi sebagian besar adalah perhitungan berdasarkan prediksi yang benar vs salah. Misalnya, menentukan bahwa sebuah model akurat 89% dengan error loss sebesar 0.001 dapat dianggap sebagai kinerja yang baik. Kesalahan sering kali tidak terdistribusi secara merata dalam dataset Anda. Anda mungkin mendapatkan skor akurasi model 89% tetapi menemukan bahwa ada wilayah data tertentu di mana model gagal 42% dari waktu. Konsekuensi dari pola kegagalan ini dengan kelompok data tertentu dapat menyebabkan masalah keadilan atau keandalan. Sangat penting untuk memahami area di mana model berkinerja baik atau tidak. Wilayah data di mana terdapat banyak ketidakakuratan dalam model Anda mungkin ternyata merupakan demografi data yang penting.
+
+
+
+Komponen Analisis Kesalahan pada dasbor RAI menggambarkan bagaimana kegagalan model terdistribusi di berbagai kelompok dengan visualisasi pohon. Ini berguna untuk mengidentifikasi fitur atau area di mana terdapat tingkat kesalahan tinggi dalam dataset Anda. Dengan melihat dari mana sebagian besar ketidakakuratan model berasal, Anda dapat mulai menyelidiki akar penyebabnya. Anda juga dapat membuat kelompok data untuk melakukan analisis. Kelompok data ini membantu dalam proses debugging untuk menentukan mengapa kinerja model baik di satu kelompok, tetapi salah di kelompok lain.
+
+
+
+Indikator visual pada peta pohon membantu menemukan area masalah dengan lebih cepat. Misalnya, semakin gelap warna merah pada node pohon, semakin tinggi tingkat kesalahannya.
+
+Peta panas adalah fungsi visualisasi lain yang dapat digunakan pengguna untuk menyelidiki tingkat kesalahan menggunakan satu atau dua fitur untuk menemukan penyebab kesalahan model di seluruh dataset atau kelompok.
+
+
+
+Gunakan analisis kesalahan ketika Anda perlu:
+
+* Memahami secara mendalam bagaimana kegagalan model terdistribusi di seluruh dataset dan di berbagai dimensi input dan fitur.
+* Memecah metrik kinerja agregat untuk secara otomatis menemukan kelompok yang salah guna menginformasikan langkah-langkah mitigasi yang ditargetkan.
+
+## Ikhtisar Model
+
+Mengevaluasi kinerja model pembelajaran mesin membutuhkan pemahaman menyeluruh tentang perilakunya. Hal ini dapat dicapai dengan meninjau lebih dari satu metrik seperti tingkat kesalahan, akurasi, recall, presisi, atau MAE (Mean Absolute Error) untuk menemukan disparitas di antara metrik kinerja. Satu metrik kinerja mungkin terlihat bagus, tetapi ketidakakuratan dapat terungkap dalam metrik lain. Selain itu, membandingkan metrik untuk disparitas di seluruh dataset atau kelompok membantu memberikan wawasan tentang di mana model berkinerja baik atau tidak. Hal ini sangat penting untuk melihat kinerja model di antara fitur sensitif vs tidak sensitif (misalnya, ras pasien, gender, atau usia) untuk mengungkap potensi ketidakadilan yang mungkin dimiliki model. Misalnya, menemukan bahwa model lebih sering salah di kelompok yang memiliki fitur sensitif dapat mengungkap potensi ketidakadilan yang mungkin dimiliki model.
+
+Komponen Ikhtisar Model pada dasbor RAI membantu tidak hanya dalam menganalisis metrik kinerja dari representasi data dalam kelompok, tetapi juga memberikan pengguna kemampuan untuk membandingkan perilaku model di berbagai kelompok.
+
+
+
+Fungsi analisis berbasis fitur dari komponen ini memungkinkan pengguna untuk mempersempit subkelompok data dalam fitur tertentu untuk mengidentifikasi anomali pada tingkat yang lebih rinci. Misalnya, dasbor memiliki kecerdasan bawaan untuk secara otomatis menghasilkan kelompok untuk fitur yang dipilih pengguna (misalnya, *"time_in_hospital < 3"* atau *"time_in_hospital >= 7"*). Hal ini memungkinkan pengguna untuk mengisolasi fitur tertentu dari kelompok data yang lebih besar untuk melihat apakah fitur tersebut merupakan pengaruh utama dari hasil yang salah pada model.
+
+
+
+Komponen Ikhtisar Model mendukung dua kelas metrik disparitas:
+
+**Disparitas dalam kinerja model**: Serangkaian metrik ini menghitung disparitas (perbedaan) dalam nilai metrik kinerja yang dipilih di seluruh subkelompok data. Berikut beberapa contohnya:
+
+* Disparitas dalam tingkat akurasi
+* Disparitas dalam tingkat kesalahan
+* Disparitas dalam presisi
+* Disparitas dalam recall
+* Disparitas dalam mean absolute error (MAE)
+
+**Disparitas dalam tingkat seleksi**: Metrik ini berisi perbedaan dalam tingkat seleksi (prediksi yang menguntungkan) di antara subkelompok. Contohnya adalah disparitas dalam tingkat persetujuan pinjaman. Tingkat seleksi berarti fraksi titik data dalam setiap kelas yang diklasifikasikan sebagai 1 (dalam klasifikasi biner) atau distribusi nilai prediksi (dalam regresi).
+
+## Analisis Data
+
+> "Jika Anda menyiksa data cukup lama, data akan mengaku apa saja" - Ronald Coase
+
+Pernyataan ini terdengar ekstrem, tetapi benar bahwa data dapat dimanipulasi untuk mendukung kesimpulan apa pun. Manipulasi semacam itu terkadang terjadi secara tidak sengaja. Sebagai manusia, kita semua memiliki bias, dan sering kali sulit untuk secara sadar mengetahui kapan kita memperkenalkan bias dalam data. Menjamin keadilan dalam AI dan pembelajaran mesin tetap menjadi tantangan yang kompleks.
+
+Data adalah titik buta besar untuk metrik kinerja model tradisional. Anda mungkin memiliki skor akurasi tinggi, tetapi ini tidak selalu mencerminkan bias data yang mendasari yang mungkin ada dalam dataset Anda. Misalnya, jika dataset karyawan memiliki 27% wanita di posisi eksekutif di sebuah perusahaan dan 73% pria di tingkat yang sama, model AI periklanan pekerjaan yang dilatih pada data ini mungkin menargetkan sebagian besar audiens pria untuk posisi pekerjaan tingkat senior. Ketidakseimbangan dalam data ini membuat prediksi model cenderung menguntungkan satu gender. Hal ini mengungkapkan masalah keadilan di mana terdapat bias gender dalam model AI.
+
+Komponen Analisis Data pada dasbor RAI membantu mengidentifikasi area di mana terdapat representasi berlebihan dan kurang dalam dataset. Ini membantu pengguna mendiagnosis akar penyebab kesalahan dan masalah keadilan yang diperkenalkan dari ketidakseimbangan data atau kurangnya representasi dari kelompok data tertentu. Hal ini memberikan pengguna kemampuan untuk memvisualisasikan dataset berdasarkan hasil prediksi dan aktual, kelompok kesalahan, dan fitur tertentu. Terkadang menemukan kelompok data yang kurang terwakili juga dapat mengungkap bahwa model tidak belajar dengan baik, sehingga tingkat ketidakakuratan tinggi. Memiliki model dengan bias data bukan hanya masalah keadilan tetapi juga menunjukkan bahwa model tidak inklusif atau dapat diandalkan.
+
+
+
+Gunakan analisis data ketika Anda perlu:
+
+* Mengeksplorasi statistik dataset Anda dengan memilih filter berbeda untuk membagi data Anda ke dalam berbagai dimensi (juga dikenal sebagai kelompok).
+* Memahami distribusi dataset Anda di berbagai kelompok dan grup fitur.
+* Menentukan apakah temuan Anda terkait dengan keadilan, analisis kesalahan, dan kausalitas (yang berasal dari komponen dasbor lainnya) adalah hasil dari distribusi dataset Anda.
+* Memutuskan di area mana untuk mengumpulkan lebih banyak data guna mengurangi kesalahan yang berasal dari masalah representasi, kebisingan label, kebisingan fitur, bias label, dan faktor serupa.
+
+## Interpretabilitas Model
+
+Model pembelajaran mesin cenderung menjadi kotak hitam. Memahami fitur data utama mana yang mendorong prediksi model bisa menjadi tantangan. Penting untuk memberikan transparansi mengapa model membuat prediksi tertentu. Misalnya, jika sistem AI memprediksi bahwa seorang pasien diabetes berisiko dirawat kembali di rumah sakit dalam waktu kurang dari 30 hari, sistem tersebut harus dapat memberikan data pendukung yang menyebabkan prediksinya. Memiliki indikator data pendukung memberikan transparansi untuk membantu dokter atau rumah sakit membuat keputusan yang terinformasi dengan baik. Selain itu, mampu menjelaskan mengapa model membuat prediksi untuk pasien individu memungkinkan akuntabilitas dengan regulasi kesehatan. Ketika Anda menggunakan model pembelajaran mesin dengan cara yang memengaruhi kehidupan manusia, sangat penting untuk memahami dan menjelaskan apa yang memengaruhi perilaku model. Penjelasan dan interpretabilitas model membantu menjawab pertanyaan dalam skenario seperti:
+
+* Debugging model: Mengapa model saya membuat kesalahan ini? Bagaimana saya dapat meningkatkan model saya?
+* Kolaborasi manusia-AI: Bagaimana saya dapat memahami dan mempercayai keputusan model?
+* Kepatuhan regulasi: Apakah model saya memenuhi persyaratan hukum?
+
+Komponen Pentingnya Fitur pada dasbor RAI membantu Anda untuk debugging dan mendapatkan pemahaman yang komprehensif tentang bagaimana model membuat prediksi. Ini juga merupakan alat yang berguna bagi profesional pembelajaran mesin dan pengambil keputusan untuk menjelaskan dan menunjukkan bukti fitur yang memengaruhi perilaku model untuk kepatuhan regulasi. Selanjutnya, pengguna dapat mengeksplorasi penjelasan global dan lokal untuk memvalidasi fitur mana yang mendorong prediksi model. Penjelasan global mencantumkan fitur utama yang memengaruhi prediksi keseluruhan model. Penjelasan lokal menampilkan fitur mana yang menyebabkan prediksi model untuk kasus individu. Kemampuan untuk mengevaluasi penjelasan lokal juga berguna dalam debugging atau audit kasus tertentu untuk lebih memahami dan menginterpretasikan mengapa model membuat prediksi yang akurat atau tidak akurat.
+
+
+
+* Penjelasan global: Misalnya, fitur apa yang memengaruhi perilaku keseluruhan model rawat inap diabetes?
+* Penjelasan lokal: Misalnya, mengapa seorang pasien diabetes berusia di atas 60 tahun dengan rawat inap sebelumnya diprediksi akan dirawat kembali atau tidak dirawat kembali dalam waktu 30 hari di rumah sakit?
+
+Dalam proses debugging untuk memeriksa kinerja model di berbagai kelompok, Pentingnya Fitur menunjukkan tingkat dampak fitur di seluruh kelompok. Ini membantu mengungkap anomali saat membandingkan tingkat pengaruh fitur dalam mendorong prediksi model yang salah. Komponen Pentingnya Fitur dapat menunjukkan nilai mana dalam fitur yang secara positif atau negatif memengaruhi hasil model. Misalnya, jika model membuat prediksi yang tidak akurat, komponen ini memberikan kemampuan untuk mengeksplorasi lebih dalam dan mengidentifikasi fitur atau nilai fitur mana yang mendorong prediksi tersebut. Tingkat detail ini tidak hanya membantu dalam debugging tetapi juga memberikan transparansi dan akuntabilitas dalam situasi audit. Akhirnya, komponen ini dapat membantu Anda mengidentifikasi masalah keadilan. Sebagai ilustrasi, jika fitur sensitif seperti etnis atau gender sangat berpengaruh dalam mendorong prediksi model, ini bisa menjadi tanda bias ras atau gender dalam model.
+
+
+
+Gunakan interpretabilitas ketika Anda perlu:
+
+* Menentukan seberapa dapat dipercaya prediksi sistem AI Anda dengan memahami fitur mana yang paling penting untuk prediksi tersebut.
+* Mendekati debugging model Anda dengan terlebih dahulu memahaminya dan mengidentifikasi apakah model menggunakan fitur yang sehat atau hanya korelasi palsu.
+* Mengungkap potensi sumber ketidakadilan dengan memahami apakah model mendasarkan prediksi pada fitur sensitif atau fitur yang sangat berkorelasi dengan fitur sensitif.
+* Membangun kepercayaan pengguna pada keputusan model Anda dengan menghasilkan penjelasan lokal untuk menggambarkan hasilnya.
+* Menyelesaikan audit regulasi sistem AI untuk memvalidasi model dan memantau dampak keputusan model pada manusia.
+
+## Kesimpulan
+
+Semua komponen dasbor RAI adalah alat praktis untuk membantu Anda membangun model pembelajaran mesin yang lebih aman dan lebih dapat dipercaya oleh masyarakat. Ini meningkatkan pencegahan ancaman terhadap hak asasi manusia; diskriminasi atau pengecualian kelompok tertentu terhadap peluang hidup; dan risiko cedera fisik atau psikologis. Ini juga membantu membangun kepercayaan pada keputusan model Anda dengan menghasilkan penjelasan lokal untuk menggambarkan hasilnya. Beberapa potensi kerugian dapat diklasifikasikan sebagai:
+
+- **Distribusi**, jika gender atau etnis misalnya lebih diuntungkan dibandingkan yang lain.
+- **Kualitas layanan**. Jika Anda melatih data untuk satu skenario spesifik tetapi kenyataannya jauh lebih kompleks, hal ini menyebabkan layanan yang berkinerja buruk.
+- **Stereotip**. Mengasosiasikan kelompok tertentu dengan atribut yang telah ditentukan sebelumnya.
+- **Pelecehan**. Mengkritik dan melabeli sesuatu atau seseorang secara tidak adil.
+- **Representasi berlebihan atau kurang**. Ide utamanya adalah bahwa kelompok tertentu tidak terlihat dalam profesi tertentu, dan setiap layanan atau fungsi yang terus mempromosikan hal tersebut berkontribusi pada kerugian.
+
+### 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) dibangun menggunakan alat sumber terbuka yang dikembangkan oleh institusi akademik dan organisasi terkemuka, termasuk Microsoft. Alat ini sangat membantu ilmuwan data dan pengembang AI untuk lebih memahami perilaku model, menemukan, dan mengatasi masalah yang tidak diinginkan dari model AI.
+
+- Pelajari cara menggunakan berbagai komponen dengan melihat [dokumentasi RAI dashboard.](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu)
+
+- Lihat beberapa [notebook contoh RAI dashboard](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) untuk debugging skenario AI yang lebih bertanggung jawab di Azure Machine Learning.
+
+---
+## 🚀 Tantangan
+
+Untuk mencegah bias statistik atau data diperkenalkan sejak awal, kita harus:
+
+- memiliki keragaman latar belakang dan perspektif di antara orang-orang yang bekerja pada sistem
+- berinvestasi dalam dataset yang mencerminkan keragaman masyarakat kita
+- mengembangkan metode yang lebih baik untuk mendeteksi dan memperbaiki bias saat terjadi
+
+Pikirkan skenario kehidupan nyata di mana ketidakadilan terlihat dalam pembangunan dan penggunaan model. Apa lagi yang harus kita pertimbangkan?
+
+## [Kuis setelah kuliah](https://ff-quizzes.netlify.app/en/ml/)
+## Tinjauan & Studi Mandiri
+
+Dalam pelajaran ini, Anda telah mempelajari beberapa alat praktis untuk mengintegrasikan AI yang bertanggung jawab dalam pembelajaran mesin.
+
+Tonton lokakarya ini untuk mendalami topik lebih lanjut:
+
+- Responsible AI Dashboard: Satu tempat untuk mengoperasionalkan RAI dalam praktik oleh Besmira Nushi dan Mehrnoosh Sameki
+
+[](https://www.youtube.com/watch?v=f1oaDNl3djg "Responsible AI Dashboard: Satu tempat untuk mengoperasionalkan RAI dalam praktik")
+
+
+> 🎥 Klik gambar di atas untuk video: Responsible AI Dashboard: Satu tempat untuk mengoperasionalkan RAI dalam praktik oleh Besmira Nushi dan Mehrnoosh Sameki
+
+Referensi materi berikut untuk mempelajari lebih lanjut tentang AI yang bertanggung jawab dan cara membangun model yang lebih dapat dipercaya:
+
+- Alat RAI dashboard Microsoft untuk debugging model ML: [Sumber daya alat AI yang bertanggung jawab](https://aka.ms/rai-dashboard)
+
+- Jelajahi toolkit AI yang bertanggung jawab: [Github](https://github.com/microsoft/responsible-ai-toolbox)
+
+- Pusat sumber daya RAI Microsoft: [Sumber Daya AI yang Bertanggung Jawab – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Kelompok penelitian FATE Microsoft: [FATE: Keadilan, Akuntabilitas, Transparansi, dan Etika dalam AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+## Tugas
+
+[Jelajahi RAI dashboard](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/9-Real-World/2-Debugging-ML-Models/assignment.md b/translations/id/9-Real-World/2-Debugging-ML-Models/assignment.md
new file mode 100644
index 00000000..4d71bd40
--- /dev/null
+++ b/translations/id/9-Real-World/2-Debugging-ML-Models/assignment.md
@@ -0,0 +1,25 @@
+
+# Jelajahi Dasbor Responsible AI (RAI)
+
+## Instruksi
+
+Dalam pelajaran ini, Anda telah mempelajari tentang dasbor RAI, sebuah rangkaian komponen yang dibangun menggunakan alat "open-source" untuk membantu ilmuwan data melakukan analisis kesalahan, eksplorasi data, penilaian keadilan, interpretabilitas model, penilaian counterfact/what-if, dan analisis kausal pada sistem AI. Untuk tugas ini, jelajahi beberapa [notebook](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) contoh dari dasbor RAI dan laporkan temuan Anda dalam bentuk makalah atau presentasi.
+
+## Rubrik
+
+| Kriteria | Unggul | Memadai | Perlu Perbaikan |
+| -------- | ------- | -------- | ---------------- |
+| | Makalah atau presentasi PowerPoint disajikan yang membahas komponen dasbor RAI, notebook yang dijalankan, dan kesimpulan yang diambil dari menjalankannya | Makalah disajikan tanpa kesimpulan | Tidak ada makalah yang disajikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/9-Real-World/README.md b/translations/id/9-Real-World/README.md
new file mode 100644
index 00000000..f2447edb
--- /dev/null
+++ b/translations/id/9-Real-World/README.md
@@ -0,0 +1,32 @@
+
+# Postscript: Aplikasi Dunia Nyata dari Pembelajaran Mesin Klasik
+
+Dalam bagian kurikulum ini, Anda akan diperkenalkan dengan beberapa aplikasi dunia nyata dari pembelajaran mesin klasik. Kami telah menjelajahi internet untuk menemukan makalah dan artikel tentang aplikasi yang menggunakan strategi ini, dengan menghindari jaringan saraf, pembelajaran mendalam, dan AI sejauh mungkin. Pelajari bagaimana pembelajaran mesin digunakan dalam sistem bisnis, aplikasi ekologi, keuangan, seni dan budaya, serta lainnya.
+
+
+
+> Foto oleh Alexis Fauvet di Unsplash
+
+## Pelajaran
+
+1. [Aplikasi Dunia Nyata untuk Pembelajaran Mesin](1-Applications/README.md)
+2. [Debugging Model dalam Pembelajaran Mesin menggunakan Komponen Dasbor AI yang Bertanggung Jawab](2-Debugging-ML-Models/README.md)
+
+## Kredit
+
+"Aplikasi Dunia Nyata" ditulis oleh tim yang terdiri dari beberapa orang, termasuk [Jen Looper](https://twitter.com/jenlooper) dan [Ornella Altunyan](https://twitter.com/ornelladotcom).
+
+"Debugging Model dalam Pembelajaran Mesin menggunakan Komponen Dasbor AI yang Bertanggung Jawab" ditulis oleh [Ruth Yakubu](https://twitter.com/ruthieyakubu)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/CODE_OF_CONDUCT.md b/translations/id/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..b496744d
--- /dev/null
+++ b/translations/id/CODE_OF_CONDUCT.md
@@ -0,0 +1,23 @@
+
+# Kode Etik Sumber Terbuka Microsoft
+
+Proyek ini telah mengadopsi [Kode Etik Sumber Terbuka Microsoft](https://opensource.microsoft.com/codeofconduct/).
+
+Sumber daya:
+
+- [Kode Etik Sumber Terbuka Microsoft](https://opensource.microsoft.com/codeofconduct/)
+- [FAQ Kode Etik Microsoft](https://opensource.microsoft.com/codeofconduct/faq/)
+- Hubungi [opencode@microsoft.com](mailto:opencode@microsoft.com) untuk pertanyaan atau kekhawatiran
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/CONTRIBUTING.md b/translations/id/CONTRIBUTING.md
new file mode 100644
index 00000000..88b33acb
--- /dev/null
+++ b/translations/id/CONTRIBUTING.md
@@ -0,0 +1,30 @@
+
+# Berkontribusi
+
+Proyek ini menyambut kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda
+menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk,
+dan benar-benar memberikan kami hak untuk menggunakan kontribusi Anda. Untuk detail lebih lanjut, kunjungi
+https://cla.microsoft.com.
+
+> Penting: saat menerjemahkan teks dalam repositori ini, pastikan Anda tidak menggunakan terjemahan mesin. Kami akan memverifikasi terjemahan melalui komunitas, jadi hanya sukarelawan untuk menerjemahkan ke bahasa yang Anda kuasai.
+
+Ketika Anda mengirimkan pull request, CLA-bot akan secara otomatis menentukan apakah Anda perlu
+menyediakan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti
+instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repositori yang menggunakan CLA kami.
+
+Proyek ini telah mengadopsi [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+Untuk informasi lebih lanjut, lihat [FAQ Kode Etik](https://opensource.microsoft.com/codeofconduct/faq/)
+atau hubungi [opencode@microsoft.com](mailto:opencode@microsoft.com) untuk pertanyaan atau komentar tambahan.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/README.md b/translations/id/README.md
new file mode 100644
index 00000000..acf9ce5e
--- /dev/null
+++ b/translations/id/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/)
+
+### 🌐 Dukungan Multi-Bahasa
+
+#### Didukung melalui GitHub Action (Otomatis & Selalu Terbaru)
+
+[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](./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](../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)
+
+#### Bergabunglah dengan Komunitas
+
+[](https://discord.gg/kzRShWzttr)
+
+# Pembelajaran Mesin untuk Pemula - Kurikulum
+
+> 🌍 Jelajahi dunia saat kita mempelajari Pembelajaran Mesin melalui budaya dunia 🌍
+
+Cloud Advocates di Microsoft dengan senang hati menawarkan kurikulum 12 minggu, 26 pelajaran tentang **Pembelajaran Mesin**. Dalam kurikulum ini, Anda akan mempelajari apa yang kadang disebut sebagai **pembelajaran mesin klasik**, menggunakan Scikit-learn sebagai pustaka utama dan menghindari pembelajaran mendalam, yang dibahas dalam [kurikulum AI untuk Pemula](https://aka.ms/ai4beginners). Pasangkan pelajaran ini dengan kurikulum kami ['Data Science untuk Pemula'](https://aka.ms/ds4beginners), juga!
+
+Jelajahi dunia bersama kami saat kami menerapkan teknik klasik ini pada data dari berbagai wilayah dunia. Setiap pelajaran mencakup kuis sebelum dan sesudah pelajaran, instruksi tertulis untuk menyelesaikan pelajaran, solusi, tugas, dan lainnya. Pendekatan berbasis proyek kami memungkinkan Anda belajar sambil membangun, cara yang terbukti untuk membuat keterampilan baru 'melekat'.
+
+**✍️ Terima kasih yang tulus kepada penulis kami** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu, dan Amy Boyd
+
+**🎨 Terima kasih juga kepada ilustrator kami** Tomomi Imura, Dasani Madipalli, dan Jen Looper
+
+**🙏 Terima kasih khusus 🙏 kepada penulis, pengulas, dan kontributor konten Microsoft Student Ambassador**, terutama Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, dan Snigdha Agarwal
+
+**🤩 Terima kasih tambahan kepada Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, dan Vidushi Gupta untuk pelajaran R kami!**
+
+# Memulai
+
+Ikuti langkah-langkah ini:
+1. **Fork Repository**: Klik tombol "Fork" di sudut kanan atas halaman ini.
+2. **Clone Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
+
+> [temukan semua sumber daya tambahan untuk kursus ini dalam koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+**[Siswa](https://aka.ms/student-page)**, untuk menggunakan kurikulum ini, fork seluruh repo ke akun GitHub Anda sendiri dan selesaikan latihan secara mandiri atau bersama kelompok:
+
+- Mulailah dengan kuis sebelum pelajaran.
+- Baca pelajaran dan selesaikan aktivitas, berhenti dan refleksi pada setiap pemeriksaan pengetahuan.
+- Cobalah untuk membuat proyek dengan memahami pelajaran daripada menjalankan kode solusi; namun kode tersebut tersedia di folder `/solution` di setiap pelajaran berbasis proyek.
+- Ikuti kuis setelah pelajaran.
+- Selesaikan tantangan.
+- Selesaikan tugas.
+- Setelah menyelesaikan grup pelajaran, kunjungi [Papan Diskusi](https://github.com/microsoft/ML-For-Beginners/discussions) dan "belajar dengan lantang" dengan mengisi rubrik PAT yang sesuai. 'PAT' adalah Alat Penilaian Kemajuan yang merupakan rubrik yang Anda isi untuk memperdalam pembelajaran Anda. Anda juga dapat bereaksi terhadap PAT lain sehingga kita dapat belajar bersama.
+
+> Untuk studi lebih lanjut, kami merekomendasikan mengikuti modul dan jalur pembelajaran [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
+
+**Guru**, kami telah [menyertakan beberapa saran](for-teachers.md) tentang cara menggunakan kurikulum ini.
+
+---
+
+## Panduan video
+
+Beberapa pelajaran tersedia dalam bentuk video pendek. Anda dapat menemukan semuanya di dalam pelajaran, atau di [playlist ML untuk Pemula di saluran YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) dengan mengklik gambar di bawah ini.
+
+[](https://aka.ms/ml-beginners-videos)
+
+---
+
+## Kenali Tim
+
+[](https://youtu.be/Tj1XWrDSYJU)
+
+**Gif oleh** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
+
+> 🎥 Klik gambar di atas untuk video tentang proyek dan orang-orang yang membuatnya!
+
+---
+
+## Pedagogi
+
+Kami telah memilih dua prinsip pedagogis saat membangun kurikulum ini: memastikan bahwa kurikulum ini berbasis proyek **praktis** dan mencakup **kuis yang sering**. Selain itu, kurikulum ini memiliki **tema umum** untuk memberikan kohesi.
+
+Dengan memastikan bahwa konten selaras dengan proyek, proses pembelajaran menjadi lebih menarik bagi siswa dan retensi konsep akan meningkat. Selain itu, kuis dengan risiko rendah sebelum kelas menetapkan niat siswa untuk mempelajari topik, sementara kuis kedua setelah kelas memastikan retensi lebih lanjut. Kurikulum ini dirancang agar fleksibel dan menyenangkan serta dapat diambil secara keseluruhan atau sebagian. Proyek dimulai dari yang kecil dan menjadi semakin kompleks pada akhir siklus 12 minggu. Kurikulum ini juga mencakup postscript tentang aplikasi dunia nyata dari ML, yang dapat digunakan sebagai kredit tambahan atau sebagai dasar untuk diskusi.
+
+> Temukan [Kode Etik](CODE_OF_CONDUCT.md), [Kontribusi](CONTRIBUTING.md), dan panduan [Terjemahan](TRANSLATIONS.md) kami. Kami menyambut umpan balik konstruktif Anda!
+
+## Setiap pelajaran mencakup
+
+- sketchnote opsional
+- video tambahan opsional
+- panduan video (beberapa pelajaran saja)
+- [kuis pemanasan sebelum pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+- pelajaran tertulis
+- untuk pelajaran berbasis proyek, panduan langkah demi langkah tentang cara membangun proyek
+- pemeriksaan pengetahuan
+- tantangan
+- bacaan tambahan
+- tugas
+- [kuis setelah pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> **Catatan tentang bahasa**: Pelajaran ini sebagian besar ditulis dalam Python, tetapi banyak juga yang tersedia dalam R. Untuk menyelesaikan pelajaran R, buka folder `/solution` dan cari pelajaran R. Mereka menyertakan ekstensi .rmd yang mewakili file **R Markdown** yang dapat didefinisikan sebagai penggabungan `code chunks` (dari R atau bahasa lain) dan `YAML header` (yang memandu cara memformat output seperti PDF) dalam dokumen `Markdown`. Dengan demikian, ini berfungsi sebagai kerangka kerja penulisan yang luar biasa untuk ilmu data karena memungkinkan Anda menggabungkan kode Anda, outputnya, dan pemikiran Anda dengan memungkinkan Anda menuliskannya dalam Markdown. Selain itu, dokumen R Markdown dapat dirender ke format output seperti PDF, HTML, atau Word.
+
+> **Catatan tentang kuis**: Semua kuis terdapat dalam [folder Aplikasi Kuis](../../quiz-app), dengan total 52 kuis masing-masing tiga pertanyaan. Mereka terhubung dari dalam pelajaran tetapi aplikasi kuis dapat dijalankan secara lokal; ikuti instruksi di folder `quiz-app` untuk meng-host secara lokal atau menerapkan ke Azure.
+
+| Nomor Pelajaran | Topik | Kelompok Pelajaran | Tujuan Pembelajaran | Pelajaran Terkait | Penulis |
+| :-------------: | :------------------------------------------------------------: | :---------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
+| 01 | Pengantar pembelajaran mesin | [Pengantar](1-Introduction/README.md) | Pelajari konsep dasar di balik pembelajaran mesin | [Pelajaran](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
+| 02 | Sejarah pembelajaran mesin | [Pengantar](1-Introduction/README.md) | Pelajari sejarah yang mendasari bidang ini | [Pelajaran](1-Introduction/2-history-of-ML/README.md) | Jen dan Amy |
+| 03 | Keadilan dalam pembelajaran mesin | [Pengantar](1-Introduction/README.md) | Apa saja isu filosofis penting tentang keadilan yang harus dipertimbangkan siswa saat membangun dan menerapkan model ML? | [Pelajaran](1-Introduction/3-fairness/README.md) | Tomomi |
+| 04 | Teknik untuk pembelajaran mesin | [Introduction](1-Introduction/README.md) | Teknik apa yang digunakan peneliti ML untuk membangun model ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris dan Jen |
+| 05 | Pengantar regresi | [Regression](2-Regression/README.md) | Mulai dengan Python dan Scikit-learn untuk model regresi |
+
|
+| 09 | Aplikasi Web 🔌 | [Web App](3-Web-App/README.md) | Bangun aplikasi web untuk menggunakan model yang telah dilatih | [Python](3-Web-App/1-Web-App/README.md) | Jen |
+| 10 | Pengantar klasifikasi | [Classification](4-Classification/README.md) | Bersihkan, persiapkan, dan visualisasikan data Anda; pengantar klasifikasi |
|
+| 13 | Masakan Asia dan India yang lezat 🍜 | [Classification](4-Classification/README.md) | Bangun aplikasi web rekomendasi menggunakan model Anda | [Python](4-Classification/4-Applied/README.md) | Jen |
+| 14 | Pengantar pengelompokan | [Clustering](5-Clustering/README.md) | Bersihkan, persiapkan, dan visualisasikan data Anda; pengantar pengelompokan |
|
+| 16 | Pengantar pemrosesan bahasa alami ☕️ | [Natural language processing](6-NLP/README.md) | Pelajari dasar-dasar NLP dengan membangun bot sederhana | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
+| 17 | Tugas umum NLP ☕️ | [Natural language processing](6-NLP/README.md) | Perdalam pengetahuan NLP Anda dengan memahami tugas-tugas umum yang diperlukan saat menangani struktur bahasa | [Python](6-NLP/2-Tasks/README.md) | Stephen |
+| 18 | Analisis terjemahan dan sentimen ♥️ | [Natural language processing](6-NLP/README.md) | Analisis terjemahan dan sentimen dengan karya Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
+| 19 | Hotel romantis di Eropa ♥️ | [Natural language processing](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
+| 20 | Hotel romantis di Eropa ♥️ | [Natural language processing](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
+| 21 | Pengantar peramalan deret waktu | [Time series](7-TimeSeries/README.md) | Pengantar peramalan deret waktu | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
+| 22 | ⚡️ Penggunaan daya dunia ⚡️ - peramalan deret waktu dengan ARIMA | [Time series](7-TimeSeries/README.md) | Peramalan deret waktu dengan ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
+| 23 | ⚡️ Penggunaan daya dunia ⚡️ - peramalan deret waktu dengan SVR | [Time series](7-TimeSeries/README.md) | Peramalan deret waktu dengan Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
+| 24 | Pengantar pembelajaran penguatan | [Reinforcement learning](8-Reinforcement/README.md) | Pengantar pembelajaran penguatan dengan Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
+| 25 | Bantu Peter menghindari serigala! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym pembelajaran penguatan | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
+| Postscript | Skenario dan aplikasi ML di dunia nyata | [ML in the Wild](9-Real-World/README.md) | Aplikasi dunia nyata yang menarik dan mengungkapkan tentang ML klasik | [Lesson](9-Real-World/1-Applications/README.md) | Tim |
+| Postscript | Debugging Model ML menggunakan dashboard RAI | [ML in the Wild](9-Real-World/README.md) | Debugging Model dalam Pembelajaran Mesin menggunakan komponen dashboard Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
+
+> [temukan semua sumber daya tambahan untuk kursus ini di koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
+
+## Akses offline
+
+Anda dapat menjalankan dokumentasi ini secara offline dengan menggunakan [Docsify](https://docsify.js.org/#/). Fork repositori ini, [instal Docsify](https://docsify.js.org/#/quickstart) di mesin lokal Anda, lalu di folder root repositori ini, ketik `docsify serve`. Situs web akan disajikan di port 3000 di localhost Anda: `localhost:3000`.
+
+## PDF
+
+Temukan PDF kurikulum dengan tautan [di sini](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
+
+## 🎒 Kursus Lainnya
+
+Tim kami memproduksi kursus lainnya! Lihat:
+
+- [Generative AI untuk Pemula](https://aka.ms/genai-beginners)
+- [Generative AI untuk Pemula .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
+- [Generative AI dengan JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
+- [Generative AI dengan Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
+- [AI untuk Pemula](https://aka.ms/ai-beginners)
+- [Data Science untuk Pemula](https://aka.ms/datascience-beginners)
+- [ML untuk Pemula](https://aka.ms/ml-beginners)
+- [Keamanan Siber untuk Pemula](https://github.com/microsoft/Security-101)
+- [Pengembangan Web untuk Pemula](https://aka.ms/webdev-beginners)
+- [IoT untuk Pemula](https://aka.ms/iot-beginners)
+- [Pengembangan XR untuk Pemula](https://github.com/microsoft/xr-development-for-beginners)
+- [Menguasai GitHub Copilot untuk Pemrograman Berpasangan](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
+- [Menguasai GitHub Copilot untuk Pengembang C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
+- [Pilih Petualangan Copilot Anda Sendiri](https://github.com/microsoft/CopilotAdventures)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/SECURITY.md b/translations/id/SECURITY.md
new file mode 100644
index 00000000..6ab64765
--- /dev/null
+++ b/translations/id/SECURITY.md
@@ -0,0 +1,51 @@
+
+## Keamanan
+
+Microsoft sangat memperhatikan keamanan produk dan layanan perangkat lunaknya, termasuk semua repositori kode sumber yang dikelola melalui organisasi GitHub kami, yang mencakup [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), dan [organisasi GitHub kami](https://opensource.microsoft.com/).
+
+Jika Anda yakin telah menemukan kerentanan keamanan di salah satu repositori milik Microsoft yang sesuai dengan [definisi kerentanan keamanan Microsoft](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)?WT.mc_id=academic-77952-leestott), harap laporkan kepada kami seperti yang dijelaskan di bawah ini.
+
+## Melaporkan Masalah Keamanan
+
+**Harap jangan melaporkan kerentanan keamanan melalui isu publik di GitHub.**
+
+Sebaliknya, laporkan melalui Microsoft Security Response Center (MSRC) di [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
+
+Jika Anda lebih memilih untuk mengirimkan laporan tanpa masuk, kirim email ke [secure@microsoft.com](mailto:secure@microsoft.com). Jika memungkinkan, enkripsi pesan Anda dengan kunci PGP kami; unduh dari [halaman Kunci PGP Microsoft Security Response Center](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
+
+Anda seharusnya menerima respons dalam waktu 24 jam. Jika karena alasan tertentu Anda tidak menerima respons, harap tindak lanjuti melalui email untuk memastikan kami menerima pesan asli Anda. Informasi tambahan dapat ditemukan di [microsoft.com/msrc](https://www.microsoft.com/msrc).
+
+Harap sertakan informasi yang diminta di bawah ini (sebanyak yang dapat Anda berikan) untuk membantu kami memahami sifat dan cakupan masalah yang mungkin terjadi:
+
+ * Jenis masalah (misalnya buffer overflow, injeksi SQL, cross-site scripting, dll.)
+ * Jalur lengkap file sumber yang terkait dengan manifestasi masalah
+ * Lokasi kode sumber yang terpengaruh (tag/cabang/commit atau URL langsung)
+ * Konfigurasi khusus yang diperlukan untuk mereproduksi masalah
+ * Instruksi langkah demi langkah untuk mereproduksi masalah
+ * Bukti konsep atau kode eksploitasi (jika memungkinkan)
+ * Dampak masalah, termasuk bagaimana penyerang dapat mengeksploitasi masalah tersebut
+
+Informasi ini akan membantu kami memproses laporan Anda dengan lebih cepat.
+
+Jika Anda melaporkan untuk program bug bounty, laporan yang lebih lengkap dapat berkontribusi pada penghargaan bounty yang lebih tinggi. Silakan kunjungi halaman [Program Bug Bounty Microsoft](https://microsoft.com/msrc/bounty) untuk informasi lebih lanjut tentang program aktif kami.
+
+## Bahasa yang Disukai
+
+Kami lebih memilih semua komunikasi dilakukan dalam bahasa Inggris.
+
+## Kebijakan
+
+Microsoft mengikuti prinsip [Pengungkapan Kerentanan yang Terkoordinasi](https://www.microsoft.com/en-us/msrc/cvd).
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/SUPPORT.md b/translations/id/SUPPORT.md
new file mode 100644
index 00000000..f042b080
--- /dev/null
+++ b/translations/id/SUPPORT.md
@@ -0,0 +1,24 @@
+
+# Dukungan
+## Cara melaporkan masalah dan mendapatkan bantuan
+
+Proyek ini menggunakan GitHub Issues untuk melacak bug dan permintaan fitur. Harap cari masalah yang sudah ada sebelum melaporkan masalah baru untuk menghindari duplikasi. Untuk masalah baru, laporkan bug atau permintaan fitur Anda sebagai Issue baru.
+
+Untuk bantuan dan pertanyaan tentang penggunaan proyek ini, buatlah sebuah Issue.
+
+## Kebijakan Dukungan Microsoft
+
+Dukungan untuk repositori ini terbatas pada sumber daya yang tercantum di atas.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/docs/_sidebar.md b/translations/id/docs/_sidebar.md
new file mode 100644
index 00000000..50f64cf4
--- /dev/null
+++ b/translations/id/docs/_sidebar.md
@@ -0,0 +1,57 @@
+
+- Pendahuluan
+ - [Pendahuluan tentang Machine Learning](../1-Introduction/1-intro-to-ML/README.md)
+ - [Sejarah Machine Learning](../1-Introduction/2-history-of-ML/README.md)
+ - [ML dan Keadilan](../1-Introduction/3-fairness/README.md)
+ - [Teknik-teknik ML](../1-Introduction/4-techniques-of-ML/README.md)
+
+- Regresi
+ - [Alat yang Digunakan](../2-Regression/1-Tools/README.md)
+ - [Data](../2-Regression/2-Data/README.md)
+ - [Regresi Linear](../2-Regression/3-Linear/README.md)
+ - [Regresi Logistik](../2-Regression/4-Logistic/README.md)
+
+- Membangun Aplikasi Web
+ - [Aplikasi Web](../3-Web-App/1-Web-App/README.md)
+
+- Klasifikasi
+ - [Pendahuluan tentang Klasifikasi](../4-Classification/1-Introduction/README.md)
+ - [Classifier 1](../4-Classification/2-Classifiers-1/README.md)
+ - [Classifier 2](../4-Classification/3-Classifiers-2/README.md)
+ - [ML Terapan](../4-Classification/4-Applied/README.md)
+
+- Klasterisasi
+ - [Visualisasi Data Anda](../5-Clustering/1-Visualize/README.md)
+ - [K-Means](../5-Clustering/2-K-Means/README.md)
+
+- NLP
+ - [Pendahuluan tentang NLP](../6-NLP/1-Introduction-to-NLP/README.md)
+ - [Tugas-tugas NLP](../6-NLP/2-Tasks/README.md)
+ - [Terjemahan dan Sentimen](../6-NLP/3-Translation-Sentiment/README.md)
+ - [Ulasan Hotel 1](../6-NLP/4-Hotel-Reviews-1/README.md)
+ - [Ulasan Hotel 2](../6-NLP/5-Hotel-Reviews-2/README.md)
+
+- Peramalan Deret Waktu
+ - [Pendahuluan tentang Peramalan Deret Waktu](../7-TimeSeries/1-Introduction/README.md)
+ - [ARIMA](../7-TimeSeries/2-ARIMA/README.md)
+ - [SVR](../7-TimeSeries/3-SVR/README.md)
+
+- Pembelajaran Penguatan
+ - [Q-Learning](../8-Reinforcement/1-QLearning/README.md)
+ - [Gym](../8-Reinforcement/2-Gym/README.md)
+
+- ML di Dunia Nyata
+ - [Aplikasi](../9-Real-World/1-Applications/README.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/for-teachers.md b/translations/id/for-teachers.md
new file mode 100644
index 00000000..2d428370
--- /dev/null
+++ b/translations/id/for-teachers.md
@@ -0,0 +1,37 @@
+
+## Untuk Pendidik
+
+Apakah Anda ingin menggunakan kurikulum ini di kelas Anda? Silakan saja!
+
+Faktanya, Anda dapat menggunakannya langsung di GitHub dengan menggunakan GitHub Classroom.
+
+Untuk melakukannya, fork repositori ini. Anda akan perlu membuat repositori untuk setiap pelajaran, jadi Anda harus memisahkan setiap folder ke dalam repositori terpisah. Dengan cara itu, [GitHub Classroom](https://classroom.github.com/classrooms) dapat mengambil setiap pelajaran secara terpisah.
+
+Instruksi lengkap ini [petunjuk lengkap](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) akan memberikan gambaran tentang cara mengatur kelas Anda.
+
+## Menggunakan repositori seperti apa adanya
+
+Jika Anda ingin menggunakan repositori ini seperti yang ada saat ini, tanpa menggunakan GitHub Classroom, itu juga bisa dilakukan. Anda hanya perlu berkomunikasi dengan siswa Anda tentang pelajaran mana yang akan dipelajari bersama.
+
+Dalam format online (Zoom, Teams, atau lainnya), Anda dapat membentuk breakout room untuk kuis, dan membimbing siswa agar siap belajar. Kemudian undang siswa untuk mengikuti kuis dan mengirimkan jawaban mereka sebagai 'issues' pada waktu tertentu. Anda juga dapat melakukan hal yang sama dengan tugas, jika Anda ingin siswa bekerja secara kolaboratif secara terbuka.
+
+Jika Anda lebih suka format yang lebih privat, minta siswa Anda untuk fork kurikulum ini, pelajaran demi pelajaran, ke repositori GitHub mereka sendiri sebagai repositori privat, dan berikan akses kepada Anda. Kemudian mereka dapat menyelesaikan kuis dan tugas secara privat dan mengirimkannya kepada Anda melalui issues di repositori kelas Anda.
+
+Ada banyak cara untuk membuat ini berhasil dalam format kelas online. Beri tahu kami apa yang paling cocok untuk Anda!
+
+## Berikan pendapat Anda kepada kami!
+
+Kami ingin membuat kurikulum ini bekerja untuk Anda dan siswa Anda. Berikan kami [masukan](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u).
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/quiz-app/README.md b/translations/id/quiz-app/README.md
new file mode 100644
index 00000000..2a822b91
--- /dev/null
+++ b/translations/id/quiz-app/README.md
@@ -0,0 +1,127 @@
+
+# Kuis
+
+Kuis ini adalah kuis sebelum dan sesudah kuliah untuk kurikulum ML di https://aka.ms/ml-beginners
+
+## Pengaturan Proyek
+
+```
+npm install
+```
+
+### Kompilasi dan pemuatan ulang untuk pengembangan
+
+```
+npm run serve
+```
+
+### Kompilasi dan minimisasi untuk produksi
+
+```
+npm run build
+```
+
+### Linting dan perbaikan file
+
+```
+npm run lint
+```
+
+### Sesuaikan konfigurasi
+
+Lihat [Referensi Konfigurasi](https://cli.vuejs.org/config/).
+
+Kredit: Terima kasih kepada versi asli dari aplikasi kuis ini: https://github.com/arpan45/simple-quiz-vue
+
+## Penerapan ke Azure
+
+Berikut panduan langkah demi langkah untuk membantu Anda memulai:
+
+1. Fork Repository GitHub
+Pastikan kode aplikasi web statis Anda ada di repository GitHub Anda. Fork repository ini.
+
+2. Buat Azure Static Web App
+- Buat [akun Azure](http://azure.microsoft.com)
+- Pergi ke [portal Azure](https://portal.azure.com)
+- Klik “Create a resource” dan cari “Static Web App”.
+- Klik “Create”.
+
+3. Konfigurasi Static Web App
+- Dasar:
+ - Subscription: Pilih langganan Azure Anda.
+ - Resource Group: Buat grup sumber daya baru atau gunakan yang sudah ada.
+ - Name: Berikan nama untuk aplikasi web statis Anda.
+ - Region: Pilih wilayah yang paling dekat dengan pengguna Anda.
+
+- #### Detail Penerapan:
+ - Source: Pilih “GitHub”.
+ - GitHub Account: Otorisasi Azure untuk mengakses akun GitHub Anda.
+ - Organization: Pilih organisasi GitHub Anda.
+ - Repository: Pilih repository yang berisi aplikasi web statis Anda.
+ - Branch: Pilih cabang yang ingin Anda gunakan untuk penerapan.
+
+- #### Detail Build:
+ - Build Presets: Pilih framework yang digunakan untuk membangun aplikasi Anda (misalnya, React, Angular, Vue, dll.).
+ - App Location: Tentukan folder yang berisi kode aplikasi Anda (misalnya, / jika berada di root).
+ - API Location: Jika Anda memiliki API, tentukan lokasinya (opsional).
+ - Output Location: Tentukan folder tempat output build dihasilkan (misalnya, build atau dist).
+
+4. Tinjau dan Buat
+Tinjau pengaturan Anda dan klik “Create”. Azure akan menyiapkan sumber daya yang diperlukan dan membuat file workflow GitHub Actions di repository Anda.
+
+5. Workflow GitHub Actions
+Azure akan secara otomatis membuat file workflow GitHub Actions di repository Anda (.github/workflows/azure-static-web-apps-.yml). Workflow ini akan menangani proses build dan penerapan.
+
+6. Pantau Penerapan
+Pergi ke tab “Actions” di repository GitHub Anda.
+Anda akan melihat workflow yang sedang berjalan. Workflow ini akan membangun dan menerapkan aplikasi web statis Anda ke Azure.
+Setelah workflow selesai, aplikasi Anda akan aktif di URL Azure yang diberikan.
+
+### Contoh File Workflow
+
+Berikut adalah contoh file 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
+```
+
+### Sumber Daya Tambahan
+- [Dokumentasi Azure Static Web Apps](https://learn.microsoft.com/azure/static-web-apps/getting-started)
+- [Dokumentasi GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/sketchnotes/LICENSE.md b/translations/id/sketchnotes/LICENSE.md
new file mode 100644
index 00000000..00acf7d2
--- /dev/null
+++ b/translations/id/sketchnotes/LICENSE.md
@@ -0,0 +1,175 @@
+
+Hak Atribusi-BerbagiSerupa 4.0 Internasional
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") bukanlah firma hukum dan tidak menyediakan layanan hukum atau nasihat hukum. Distribusi lisensi publik Creative Commons tidak menciptakan hubungan pengacara-klien atau hubungan lainnya. Creative Commons menyediakan lisensi dan informasi terkaitnya dalam kondisi "apa adanya". Creative Commons tidak memberikan jaminan terkait lisensinya, materi apa pun yang dilisensikan di bawah syarat dan ketentuannya, atau informasi terkait lainnya. Creative Commons menolak semua tanggung jawab atas kerugian yang diakibatkan oleh penggunaannya sejauh yang diizinkan oleh hukum.
+
+Menggunakan Lisensi Publik Creative Commons
+
+Lisensi publik Creative Commons menyediakan serangkaian syarat dan ketentuan standar yang dapat digunakan oleh pencipta dan pemegang hak lainnya untuk berbagi karya asli dan materi lain yang tunduk pada hak cipta serta hak tertentu lainnya yang ditentukan dalam lisensi publik di bawah ini. Pertimbangan berikut hanya untuk tujuan informasi, tidak mencakup semua hal, dan bukan bagian dari lisensi kami.
+
+ Pertimbangan untuk pemberi lisensi: Lisensi publik kami
+ dimaksudkan untuk digunakan oleh mereka yang berwenang memberikan
+ izin kepada publik untuk menggunakan materi dengan cara yang
+ seharusnya dibatasi oleh hak cipta dan hak tertentu lainnya.
+ Lisensi kami tidak dapat dibatalkan. Pemberi lisensi harus membaca
+ dan memahami syarat dan ketentuan lisensi yang mereka pilih
+ sebelum menerapkannya. Pemberi lisensi juga harus memastikan
+ semua hak yang diperlukan sebelum menerapkan lisensi kami agar
+ publik dapat menggunakan materi sebagaimana yang diharapkan.
+ Pemberi lisensi harus dengan jelas menandai materi apa pun yang
+ tidak tunduk pada lisensi. Ini termasuk materi lain yang
+ dilisensikan oleh CC, atau materi yang digunakan berdasarkan
+ pengecualian atau pembatasan hak cipta. Pertimbangan lebih lanjut
+ untuk pemberi lisensi:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Pertimbangan untuk publik: Dengan menggunakan salah satu lisensi
+ publik kami, pemberi lisensi memberikan izin kepada publik untuk
+ menggunakan materi yang dilisensikan di bawah syarat dan ketentuan
+ yang ditentukan. Jika izin pemberi lisensi tidak diperlukan untuk
+ alasan apa pun—misalnya, karena pengecualian atau pembatasan hak
+ cipta yang berlaku—maka penggunaan tersebut tidak diatur oleh
+ lisensi. Lisensi kami hanya memberikan izin di bawah hak cipta
+ dan hak tertentu lainnya yang berwenang diberikan oleh pemberi
+ lisensi. Penggunaan materi yang dilisensikan mungkin masih
+ dibatasi karena alasan lain, termasuk karena pihak lain memiliki
+ hak cipta atau hak lainnya atas materi tersebut. Pemberi lisensi
+ dapat membuat permintaan khusus, seperti meminta agar semua
+ perubahan ditandai atau dijelaskan. Meskipun tidak diwajibkan
+ oleh lisensi kami, Anda dianjurkan untuk menghormati permintaan
+ tersebut jika memungkinkan. Pertimbangan lebih lanjut untuk
+ publik:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Lisensi Publik Creative Commons Atribusi-BerbagiSerupa 4.0 Internasional
+
+Dengan menggunakan Hak yang Dilisensikan (didefinisikan di bawah), Anda menerima dan setuju untuk terikat oleh syarat dan ketentuan Lisensi Publik Creative Commons Atribusi-BerbagiSerupa 4.0 Internasional ("Lisensi Publik"). Sejauh Lisensi Publik ini dapat ditafsirkan sebagai kontrak, Anda diberikan Hak yang Dilisensikan sebagai pertimbangan atas penerimaan Anda terhadap syarat dan ketentuan ini, dan Pemberi Lisensi memberikan hak tersebut kepada Anda sebagai pertimbangan atas manfaat yang diterima oleh Pemberi Lisensi dari membuat Materi yang Dilisensikan tersedia di bawah syarat dan ketentuan ini.
+
+Bagian 1 -- Definisi.
+
+ a. Materi yang Diadaptasi berarti materi yang tunduk pada Hak Cipta dan Hak Serupa yang berasal dari atau didasarkan pada Materi yang Dilisensikan dan di mana Materi yang Dilisensikan diterjemahkan, diubah, diatur, diubah bentuk, atau dimodifikasi dengan cara lain yang memerlukan izin di bawah Hak Cipta dan Hak Serupa yang dimiliki oleh Pemberi Lisensi. Untuk tujuan Lisensi Publik ini, jika Materi yang Dilisensikan adalah karya musik, pertunjukan, atau rekaman suara, Materi yang Diadaptasi selalu dihasilkan ketika Materi yang Dilisensikan disinkronkan dalam hubungan waktu dengan gambar bergerak.
+
+ b. Lisensi Adapter berarti lisensi yang Anda terapkan pada Hak Cipta dan Hak Serupa Anda dalam kontribusi Anda pada Materi yang Diadaptasi sesuai dengan syarat dan ketentuan Lisensi Publik ini.
+
+ c. Lisensi yang Kompatibel dengan BY-SA berarti lisensi yang tercantum di creativecommons.org/compatiblelicenses, disetujui oleh Creative Commons sebagai setara dengan Lisensi Publik ini.
+
+ d. Hak Cipta dan Hak Serupa berarti hak cipta dan/atau hak serupa yang terkait erat dengan hak cipta termasuk, tanpa batasan, hak pertunjukan, penyiaran, rekaman suara, dan Hak Basis Data Sui Generis, tanpa memperhatikan bagaimana hak tersebut diberi label atau dikategorikan. Untuk tujuan Lisensi Publik ini, hak yang ditentukan dalam Bagian 2(b)(1)-(2) bukanlah Hak Cipta dan Hak Serupa.
+
+ e. Langkah Teknologi yang Efektif berarti langkah-langkah yang, tanpa otoritas yang tepat, tidak dapat dihindari di bawah hukum yang memenuhi kewajiban berdasarkan Pasal 11 Perjanjian Hak Cipta WIPO yang diadopsi pada 20 Desember 1996, dan/atau perjanjian internasional serupa.
+
+ f. Pengecualian dan Pembatasan berarti penggunaan wajar, transaksi wajar, dan/atau pengecualian atau pembatasan lain terhadap Hak Cipta dan Hak Serupa yang berlaku untuk penggunaan Anda atas Materi yang Dilisensikan.
+
+ g. Elemen Lisensi berarti atribut lisensi yang tercantum dalam nama Lisensi Publik Creative Commons. Elemen Lisensi dari Lisensi Publik ini adalah Atribusi dan BerbagiSerupa.
+
+ h. Materi yang Dilisensikan berarti karya seni atau sastra, basis data, atau materi lain yang diterapkan oleh Pemberi Lisensi pada Lisensi Publik ini.
+
+ i. Hak yang Dilisensikan berarti hak yang diberikan kepada Anda sesuai dengan syarat dan ketentuan Lisensi Publik ini, yang terbatas pada semua Hak Cipta dan Hak Serupa yang berlaku untuk penggunaan Anda atas Materi yang Dilisensikan dan yang berwenang dilisensikan oleh Pemberi Lisensi.
+
+ j. Pemberi Lisensi berarti individu atau entitas yang memberikan hak di bawah Lisensi Publik ini.
+
+ k. Berbagi berarti menyediakan materi kepada publik dengan cara atau proses apa pun yang memerlukan izin di bawah Hak yang Dilisensikan, seperti reproduksi, tampilan publik, pertunjukan publik, distribusi, penyebaran, komunikasi, atau impor, dan membuat materi tersedia kepada publik termasuk dengan cara yang memungkinkan anggota masyarakat mengakses materi dari tempat dan waktu yang mereka pilih secara individu.
+
+ l. Hak Basis Data Sui Generis berarti hak selain hak cipta yang dihasilkan dari Directive 96/9/EC dari Parlemen Eropa dan Dewan pada 11 Maret 1996 tentang perlindungan hukum basis data, sebagaimana diubah dan/atau digantikan, serta hak lain yang pada dasarnya setara di mana pun di dunia.
+
+ m. Anda berarti individu atau entitas yang menggunakan Hak yang Dilisensikan di bawah Lisensi Publik ini. "Anda" memiliki arti yang sesuai.
+
+Bagian 2 -- Lingkup.
+
+ a. Pemberian lisensi.
+
+ 1. Sesuai dengan syarat dan ketentuan Lisensi Publik ini, Pemberi Lisensi dengan ini memberikan kepada Anda lisensi global, bebas royalti, tidak dapat disublisensikan, tidak eksklusif, dan tidak dapat dibatalkan untuk menggunakan Hak yang Dilisensikan dalam Materi yang Dilisensikan untuk:
+
+ a. mereproduksi dan Berbagi Materi yang Dilisensikan, baik secara keseluruhan maupun sebagian; dan
+
+ b. menghasilkan, mereproduksi, dan Berbagi Materi yang Diadaptasi.
+
+ 2. Pengecualian dan Pembatasan. Untuk menghindari keraguan, di mana Pengecualian dan Pembatasan berlaku untuk penggunaan Anda, Lisensi Publik ini tidak berlaku, dan Anda tidak perlu mematuhi syarat dan ketentuannya.
+
+ 3. Jangka waktu. Jangka waktu Lisensi Publik ini ditentukan dalam Bagian 6(a).
+
+ 4. Media dan format; modifikasi teknis yang diizinkan. Pemberi Lisensi mengizinkan Anda untuk menggunakan Hak yang Dilisensikan dalam semua media dan format baik yang sudah ada maupun yang akan dibuat, serta melakukan modifikasi teknis yang diperlukan untuk melakukannya. Pemberi Lisensi melepaskan dan/atau setuju untuk tidak menegaskan hak atau otoritas apa pun untuk melarang Anda melakukan modifikasi teknis yang diperlukan untuk menggunakan Hak yang Dilisensikan, termasuk modifikasi teknis yang diperlukan untuk menghindari Langkah Teknologi yang Efektif. Untuk tujuan Lisensi Publik ini, hanya melakukan modifikasi yang diizinkan oleh Bagian 2(a)(4) tidak pernah menghasilkan Materi yang Diadaptasi.
+
+ 5. Penerima berikutnya.
+
+ a. Penawaran dari Pemberi Lisensi -- Materi yang Dilisensikan. Setiap penerima Materi yang Dilisensikan secara otomatis menerima penawaran dari Pemberi Lisensi untuk menggunakan Hak yang Dilisensikan di bawah syarat dan ketentuan Lisensi Publik ini.
+
+ b. Penawaran tambahan dari Pemberi Lisensi -- Materi yang Diadaptasi. Setiap penerima Materi yang Diadaptasi dari Anda secara otomatis menerima penawaran dari Pemberi Lisensi untuk menggunakan Hak yang Dilisensikan dalam Materi yang Diadaptasi di bawah syarat Lisensi Adapter yang Anda terapkan.
+
+ c. Tidak ada pembatasan penerima berikutnya. Anda tidak boleh menawarkan atau memberlakukan syarat atau ketentuan tambahan atau berbeda pada, atau menerapkan Langkah Teknologi yang Efektif pada, Materi yang Dilisensikan jika hal tersebut membatasi penggunaan Hak yang Dilisensikan oleh penerima Materi yang Dilisensikan.
+
+ 6. Tidak ada dukungan. Tidak ada dalam Lisensi Publik ini yang merupakan atau dapat ditafsirkan sebagai izin untuk menyatakan atau menyiratkan bahwa Anda, atau bahwa penggunaan Anda atas Materi yang Dilisensikan, terhubung dengan, atau disponsori, didukung, atau diberikan status resmi oleh, Pemberi Lisensi atau pihak lain yang ditunjuk untuk menerima atribusi sebagaimana yang disediakan dalam Bagian 3(a)(1)(A)(i).
+
+ b. Hak lainnya.
+
+ 1. Hak moral, seperti hak integritas, tidak dilisensikan di bawah Lisensi Publik ini, begitu juga hak publisitas, privasi, dan/atau hak kepribadian serupa lainnya; namun, sejauh yang memungkinkan, Pemberi Lisensi melepaskan dan/atau setuju untuk tidak menegaskan hak-hak tersebut yang dimiliki oleh Pemberi Lisensi sejauh yang diperlukan untuk memungkinkan Anda menggunakan Hak yang Dilisensikan, tetapi tidak lebih dari itu.
+
+ 2. Hak paten dan merek dagang tidak dilisensikan di bawah Lisensi Publik ini.
+
+ 3. Sejauh yang memungkinkan, Pemberi Lisensi melepaskan hak untuk mengumpulkan royalti dari Anda atas penggunaan Hak yang Dilisensikan, baik secara langsung maupun melalui badan pengumpul di bawah skema lisensi sukarela atau wajib yang dapat dilepaskan. Dalam semua kasus lainnya, Pemberi Lisensi secara tegas mempertahankan hak untuk mengumpulkan royalti tersebut.
+Hak atas Sui Generis Database Rights, kemudian basis data di mana Anda memiliki Sui Generis Database Rights (tetapi bukan konten individualnya) adalah Materi yang Diadaptasi,
+
+termasuk untuk tujuan Bagian 3(b); dan
+c. Anda harus mematuhi ketentuan dalam Bagian 3(a) jika Anda Membagikan seluruh atau sebagian besar konten dari basis data.
+
+Untuk menghindari keraguan, Bagian 4 ini melengkapi dan tidak menggantikan kewajiban Anda berdasarkan Lisensi Publik ini di mana Hak Berlisensi mencakup hak cipta dan hak serupa lainnya.
+
+### Bagian 5 -- Penafian Jaminan dan Pembatasan Tanggung Jawab
+
+a. KECUALI JIKA SECARA TERPISAH DIJAMIN OLEH PEMBERI LISENSI, SEJAUH MUNGKIN, PEMBERI LISENSI MENYEDIAKAN MATERI BERLISENSI SEBAGAIMANA ADANYA DAN SEBAGAIMANA TERSEDIA, DAN TIDAK MEMBERIKAN PERNYATAAN ATAU JAMINAN DALAM BENTUK APA PUN TERKAIT MATERI BERLISENSI, BAIK SECARA TERSURAT, TERSIRAT, BERDASARKAN UNDANG-UNDANG, ATAU LAINNYA. INI TERMASUK, TANPA BATASAN, JAMINAN ATAS KEPEMILIKAN, KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, TIDAK MELANGGAR, KETIADAAN CACAT TERSEMBUNYI ATAU LAINNYA, AKURASI, ATAU KEHADIRAN ATAU KETIADAAN KESALAHAN, BAIK DIKETAHUI ATAU DAPAT DIKETAHUI. DI MANA PENAFIAN JAMINAN TIDAK DIIZINKAN SECARA PENUH ATAU SEBAGIAN, PENAFIAN INI MUNGKIN TIDAK BERLAKU UNTUK ANDA.
+
+b. SEJAUH MUNGKIN, DALAM KEADAAN APA PUN PEMBERI LISENSI TIDAK AKAN BERTANGGUNG JAWAB KEPADA ANDA BERDASARKAN TEORI HUKUM APA PUN (TERMASUK, TANPA BATASAN, KELALAIAN) ATAU LAINNYA ATAS KERUGIAN LANGSUNG, KHUSUS, TIDAK LANGSUNG, INSIDENTAL, KONSEKUENSIAL, PUNITIF, CONTOH, ATAU KERUGIAN LAINNYA, BIAYA, PENGELUARAN, ATAU KERUSAKAN YANG TIMBUL DARI LISENSI PUBLIK INI ATAU PENGGUNAAN MATERI BERLISENSI, MESKIPUN PEMBERI LISENSI TELAH DIBERITAHU TENTANG KEMUNGKINAN KERUGIAN, BIAYA, PENGELUARAN, ATAU KERUSAKAN TERSEBUT. DI MANA PEMBATASAN TANGGUNG JAWAB TIDAK DIIZINKAN SECARA PENUH ATAU SEBAGIAN, PEMBATASAN INI MUNGKIN TIDAK BERLAKU UNTUK ANDA.
+
+c. Penafian jaminan dan pembatasan tanggung jawab yang diberikan di atas harus ditafsirkan sedemikian rupa sehingga, sejauh mungkin, paling mendekati penafian mutlak dan pelepasan semua tanggung jawab.
+
+### Bagian 6 -- Masa Berlaku dan Pengakhiran
+
+a. Lisensi Publik ini berlaku selama masa Hak Cipta dan Hak Serupa yang dilisensikan di sini. Namun, jika Anda gagal mematuhi Lisensi Publik ini, maka hak Anda berdasarkan Lisensi Publik ini akan berakhir secara otomatis.
+
+b. Di mana hak Anda untuk menggunakan Materi Berlisensi telah berakhir berdasarkan Bagian 6(a), hak tersebut akan dipulihkan:
+ 1. secara otomatis pada tanggal pelanggaran diperbaiki, asalkan diperbaiki dalam waktu 30 hari sejak Anda mengetahui pelanggaran tersebut; atau
+ 2. melalui pemulihan secara tegas oleh Pemberi Lisensi.
+
+ Untuk menghindari keraguan, Bagian 6(b) ini tidak memengaruhi hak Pemberi Lisensi untuk mencari solusi atas pelanggaran Anda terhadap Lisensi Publik ini.
+
+c. Untuk menghindari keraguan, Pemberi Lisensi juga dapat menawarkan Materi Berlisensi di bawah syarat atau ketentuan terpisah atau menghentikan distribusi Materi Berlisensi kapan saja; namun, tindakan tersebut tidak akan mengakhiri Lisensi Publik ini.
+
+d. Bagian 1, 5, 6, 7, dan 8 tetap berlaku setelah pengakhiran Lisensi Publik ini.
+
+### Bagian 7 -- Ketentuan dan Syarat Lain
+
+a. Pemberi Lisensi tidak akan terikat oleh ketentuan atau syarat tambahan atau berbeda yang disampaikan oleh Anda kecuali secara tegas disetujui.
+
+b. Pengaturan, pemahaman, atau perjanjian apa pun terkait Materi Berlisensi yang tidak dinyatakan di sini adalah terpisah dari dan independen dari ketentuan dan syarat Lisensi Publik ini.
+
+### Bagian 8 -- Penafsiran
+
+a. Untuk menghindari keraguan, Lisensi Publik ini tidak, dan tidak boleh ditafsirkan untuk, mengurangi, membatasi, membatasi, atau memberlakukan syarat pada penggunaan Materi Berlisensi yang dapat dilakukan secara sah tanpa izin berdasarkan Lisensi Publik ini.
+
+b. Sejauh mungkin, jika ketentuan apa pun dari Lisensi Publik ini dianggap tidak dapat diberlakukan, ketentuan tersebut akan secara otomatis direformasi sejauh minimum yang diperlukan agar dapat diberlakukan. Jika ketentuan tersebut tidak dapat direformasi, ketentuan tersebut akan dipisahkan dari Lisensi Publik ini tanpa memengaruhi keberlakuan ketentuan dan syarat lainnya.
+
+c. Tidak ada ketentuan atau syarat dari Lisensi Publik ini yang akan diabaikan dan tidak ada kegagalan untuk mematuhi yang disetujui kecuali secara tegas disetujui oleh Pemberi Lisensi.
+
+d. Tidak ada dalam Lisensi Publik ini yang merupakan atau dapat ditafsirkan sebagai pembatasan atas, atau pelepasan, hak istimewa dan kekebalan yang berlaku untuk Pemberi Lisensi atau Anda, termasuk dari proses hukum di yurisdiksi atau otoritas mana pun.
+
+---
+
+Creative Commons bukan merupakan pihak dalam lisensi publiknya. Meskipun demikian, Creative Commons dapat memilih untuk menerapkan salah satu lisensi publiknya pada materi yang diterbitkannya dan dalam kasus tersebut akan dianggap sebagai "Pemberi Lisensi." Teks lisensi publik Creative Commons didedikasikan untuk domain publik di bawah CC0 Public Domain Dedication. Kecuali untuk tujuan terbatas menunjukkan bahwa materi dibagikan di bawah lisensi publik Creative Commons atau sebagaimana diizinkan oleh kebijakan Creative Commons yang diterbitkan di creativecommons.org/policies, Creative Commons tidak mengizinkan penggunaan merek dagang "Creative Commons" atau merek dagang atau logo lainnya dari Creative Commons tanpa persetujuan tertulis sebelumnya, termasuk, tanpa batasan, sehubungan dengan modifikasi tidak sah apa pun terhadap lisensi publiknya atau pengaturan, pemahaman, atau perjanjian lainnya terkait penggunaan materi berlisensi. Untuk menghindari keraguan, paragraf ini bukan bagian dari lisensi publik.
+
+Creative Commons dapat dihubungi di creativecommons.org.
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/id/sketchnotes/README.md b/translations/id/sketchnotes/README.md
new file mode 100644
index 00000000..a422eedd
--- /dev/null
+++ b/translations/id/sketchnotes/README.md
@@ -0,0 +1,21 @@
+
+Semua sketchnote kurikulum dapat diunduh di sini.
+
+🖨 Untuk mencetak dalam resolusi tinggi, versi TIFF tersedia di [repo ini](https://github.com/girliemac/a-picture-is-worth-a-1000-words/tree/main/ml/tiff).
+
+🎨 Dibuat oleh: [Tomomi Imura](https://github.com/girliemac) (Twitter: [@girlie_mac](https://twitter.com/girlie_mac))
+
+[](https://creativecommons.org/licenses/by-sa/4.0/)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diingat bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/1-intro-to-ML/README.md b/translations/ms/1-Introduction/1-intro-to-ML/README.md
new file mode 100644
index 00000000..9bc4f5c5
--- /dev/null
+++ b/translations/ms/1-Introduction/1-intro-to-ML/README.md
@@ -0,0 +1,159 @@
+
+# Pengenalan kepada pembelajaran mesin
+
+## [Kuiz sebelum kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/6mSx_KJxcHI "ML untuk pemula - Pengenalan kepada Pembelajaran Mesin untuk Pemula")
+
+> 🎥 Klik imej di atas untuk video pendek yang menerangkan pelajaran ini.
+
+Selamat datang ke kursus ini tentang pembelajaran mesin klasik untuk pemula! Sama ada anda benar-benar baru dalam topik ini, atau seorang pengamal ML berpengalaman yang ingin menyegarkan pengetahuan dalam bidang tertentu, kami gembira anda menyertai kami! Kami ingin mencipta tempat permulaan yang mesra untuk kajian ML anda dan akan gembira untuk menilai, memberi maklum balas, dan menggabungkan [maklum balas](https://github.com/microsoft/ML-For-Beginners/discussions) anda.
+
+[](https://youtu.be/h0e2HAPTGF4 "Pengenalan kepada ML")
+
+> 🎥 Klik imej di atas untuk video: John Guttag dari MIT memperkenalkan pembelajaran mesin
+
+---
+## Memulakan pembelajaran mesin
+
+Sebelum memulakan kurikulum ini, anda perlu menyediakan komputer anda dan bersedia untuk menjalankan notebook secara tempatan.
+
+- **Konfigurasikan mesin anda dengan video ini**. Gunakan pautan berikut untuk belajar [cara memasang Python](https://youtu.be/CXZYvNRIAKM) dalam sistem anda dan [menyediakan editor teks](https://youtu.be/EU8eayHWoZg) untuk pembangunan.
+- **Belajar Python**. Adalah disyorkan untuk mempunyai pemahaman asas tentang [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), bahasa pengaturcaraan yang berguna untuk saintis data yang kami gunakan dalam kursus ini.
+- **Belajar Node.js dan JavaScript**. Kami juga menggunakan JavaScript beberapa kali dalam kursus ini semasa membina aplikasi web, jadi anda perlu mempunyai [node](https://nodejs.org) dan [npm](https://www.npmjs.com/) dipasang, serta [Visual Studio Code](https://code.visualstudio.com/) tersedia untuk pembangunan Python dan JavaScript.
+- **Buat akaun GitHub**. Oleh kerana anda menemui kami di [GitHub](https://github.com), anda mungkin sudah mempunyai akaun, tetapi jika tidak, buat satu dan kemudian fork kurikulum ini untuk digunakan sendiri. (Jangan lupa beri kami bintang juga 😊)
+- **Terokai Scikit-learn**. Biasakan diri dengan [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), satu set perpustakaan ML yang kami rujuk dalam pelajaran ini.
+
+---
+## Apa itu pembelajaran mesin?
+
+Istilah 'pembelajaran mesin' adalah salah satu istilah yang paling popular dan sering digunakan hari ini. Terdapat kemungkinan besar anda pernah mendengar istilah ini sekurang-kurangnya sekali jika anda mempunyai sedikit pengetahuan tentang teknologi, tidak kira bidang kerja anda. Walau bagaimanapun, mekanik pembelajaran mesin adalah misteri bagi kebanyakan orang. Bagi pemula pembelajaran mesin, subjek ini kadangkala boleh terasa mengelirukan. Oleh itu, adalah penting untuk memahami apa sebenarnya pembelajaran mesin, dan mempelajarinya langkah demi langkah, melalui contoh praktikal.
+
+---
+## Kurva hype
+
+
+
+> Google Trends menunjukkan 'kurva hype' terkini istilah 'pembelajaran mesin'
+
+---
+## Alam semesta yang misteri
+
+Kita hidup dalam alam semesta yang penuh dengan misteri yang menarik. Saintis hebat seperti Stephen Hawking, Albert Einstein, dan ramai lagi telah mendedikasikan hidup mereka untuk mencari maklumat bermakna yang membongkar misteri dunia di sekeliling kita. Ini adalah keadaan manusia untuk belajar: seorang kanak-kanak manusia belajar perkara baru dan membongkar struktur dunia mereka tahun demi tahun semasa mereka membesar menjadi dewasa.
+
+---
+## Otak kanak-kanak
+
+Otak dan deria seorang kanak-kanak memerhatikan fakta-fakta di sekeliling mereka dan secara beransur-ansur mempelajari corak tersembunyi kehidupan yang membantu kanak-kanak itu mencipta peraturan logik untuk mengenal pasti corak yang dipelajari. Proses pembelajaran otak manusia menjadikan manusia makhluk hidup yang paling canggih di dunia ini. Belajar secara berterusan dengan menemui corak tersembunyi dan kemudian berinovasi berdasarkan corak tersebut membolehkan kita menjadi lebih baik sepanjang hayat kita. Keupayaan pembelajaran dan kemampuan berkembang ini berkaitan dengan konsep yang dipanggil [keplastikan otak](https://www.simplypsychology.org/brain-plasticity.html). Secara luaran, kita boleh menarik beberapa persamaan motivasi antara proses pembelajaran otak manusia dan konsep pembelajaran mesin.
+
+---
+## Otak manusia
+
+[Otak manusia](https://www.livescience.com/29365-human-brain.html) memerhatikan perkara dari dunia nyata, memproses maklumat yang diperhatikan, membuat keputusan rasional, dan melakukan tindakan tertentu berdasarkan keadaan. Inilah yang kita panggil berkelakuan secara pintar. Apabila kita memprogramkan tiruan proses tingkah laku pintar kepada mesin, ia dipanggil kecerdasan buatan (AI).
+
+---
+## Beberapa istilah
+
+Walaupun istilah-istilah ini boleh mengelirukan, pembelajaran mesin (ML) adalah subset penting dalam kecerdasan buatan. **ML berkaitan dengan penggunaan algoritma khusus untuk mencari maklumat bermakna dan menemui corak tersembunyi daripada data yang diperhatikan untuk menyokong proses membuat keputusan secara rasional**.
+
+---
+## AI, ML, Pembelajaran Mendalam
+
+
+
+> Diagram menunjukkan hubungan antara AI, ML, pembelajaran mendalam, dan sains data. Infografik oleh [Jen Looper](https://twitter.com/jenlooper) yang diilhamkan oleh [grafik ini](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
+
+---
+## Konsep yang akan dibincangkan
+
+Dalam kurikulum ini, kita akan membincangkan hanya konsep asas pembelajaran mesin yang mesti diketahui oleh pemula. Kami membincangkan apa yang kami panggil 'pembelajaran mesin klasik' terutamanya menggunakan Scikit-learn, perpustakaan yang sangat baik yang digunakan oleh ramai pelajar untuk mempelajari asas-asas. Untuk memahami konsep yang lebih luas tentang kecerdasan buatan atau pembelajaran mendalam, pengetahuan asas yang kukuh tentang pembelajaran mesin adalah sangat penting, dan kami ingin menawarkannya di sini.
+
+---
+## Dalam kursus ini anda akan belajar:
+
+- konsep asas pembelajaran mesin
+- sejarah ML
+- ML dan keadilan
+- teknik regresi ML
+- teknik klasifikasi ML
+- teknik pengelompokan ML
+- teknik pemprosesan bahasa semula jadi ML
+- teknik ramalan siri masa ML
+- pembelajaran pengukuhan
+- aplikasi dunia nyata untuk ML
+
+---
+## Apa yang tidak akan dibincangkan
+
+- pembelajaran mendalam
+- rangkaian neural
+- AI
+
+Untuk pengalaman pembelajaran yang lebih baik, kami akan mengelakkan kerumitan rangkaian neural, 'pembelajaran mendalam' - pembinaan model berlapis-lapis menggunakan rangkaian neural - dan AI, yang akan kami bincangkan dalam kurikulum yang berbeza. Kami juga akan menawarkan kurikulum sains data yang akan datang untuk memberi fokus kepada aspek tersebut dalam bidang yang lebih besar ini.
+
+---
+## Mengapa belajar pembelajaran mesin?
+
+Pembelajaran mesin, dari perspektif sistem, didefinisikan sebagai penciptaan sistem automatik yang dapat mempelajari corak tersembunyi dari data untuk membantu membuat keputusan pintar.
+
+Motivasi ini secara longgar diilhamkan oleh bagaimana otak manusia mempelajari perkara tertentu berdasarkan data yang diperhatikan dari dunia luar.
+
+✅ Fikirkan sejenak mengapa sesebuah perniagaan ingin menggunakan strategi pembelajaran mesin berbanding mencipta enjin berasaskan peraturan yang dikodkan secara keras.
+
+---
+## Aplikasi pembelajaran mesin
+
+Aplikasi pembelajaran mesin kini hampir di mana-mana, dan sama meluasnya dengan data yang mengalir di sekitar masyarakat kita, yang dihasilkan oleh telefon pintar, peranti yang disambungkan, dan sistem lain. Memandangkan potensi besar algoritma pembelajaran mesin terkini, penyelidik telah meneroka keupayaannya untuk menyelesaikan masalah kehidupan nyata yang pelbagai dimensi dan pelbagai disiplin dengan hasil yang sangat positif.
+
+---
+## Contoh ML yang diterapkan
+
+**Anda boleh menggunakan pembelajaran mesin dalam pelbagai cara**:
+
+- Untuk meramalkan kemungkinan penyakit daripada sejarah perubatan atau laporan pesakit.
+- Untuk memanfaatkan data cuaca bagi meramalkan kejadian cuaca.
+- Untuk memahami sentimen dalam teks.
+- Untuk mengesan berita palsu bagi menghentikan penyebaran propaganda.
+
+Kewangan, ekonomi, sains bumi, penerokaan angkasa, kejuruteraan bioperubatan, sains kognitif, dan bahkan bidang dalam kemanusiaan telah menyesuaikan pembelajaran mesin untuk menyelesaikan masalah berat pemprosesan data dalam domain mereka.
+
+---
+## Kesimpulan
+
+Pembelajaran mesin mengautomasi proses penemuan corak dengan mencari wawasan bermakna daripada data dunia nyata atau data yang dihasilkan. Ia telah membuktikan dirinya sangat berharga dalam aplikasi perniagaan, kesihatan, dan kewangan, antara lain.
+
+Dalam masa terdekat, memahami asas pembelajaran mesin akan menjadi keperluan bagi orang dari mana-mana bidang kerana penerimaannya yang meluas.
+
+---
+# 🚀 Cabaran
+
+Lukiskan, di atas kertas atau menggunakan aplikasi dalam talian seperti [Excalidraw](https://excalidraw.com/), pemahaman anda tentang perbezaan antara AI, ML, pembelajaran mendalam, dan sains data. Tambahkan beberapa idea tentang masalah yang sesuai untuk diselesaikan oleh setiap teknik ini.
+
+# [Kuiz selepas kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+# Ulasan & Kajian Kendiri
+
+Untuk mengetahui lebih lanjut tentang cara anda boleh bekerja dengan algoritma ML di awan, ikuti [Laluan Pembelajaran](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
+
+Ikuti [Laluan Pembelajaran](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) tentang asas-asas ML.
+
+---
+# Tugasan
+
+[Mulakan](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/1-intro-to-ML/assignment.md b/translations/ms/1-Introduction/1-intro-to-ML/assignment.md
new file mode 100644
index 00000000..4671bf4c
--- /dev/null
+++ b/translations/ms/1-Introduction/1-intro-to-ML/assignment.md
@@ -0,0 +1,23 @@
+
+# Mula dan Beroperasi
+
+## Arahan
+
+Dalam tugasan yang tidak dinilai ini, anda perlu mengasah kemahiran Python dan menyediakan persekitaran anda agar dapat menjalankan notebook.
+
+Ikuti [Laluan Pembelajaran Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), dan kemudian sediakan sistem anda dengan menonton video pengenalan berikut:
+
+https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/2-history-of-ML/README.md b/translations/ms/1-Introduction/2-history-of-ML/README.md
new file mode 100644
index 00000000..ab711881
--- /dev/null
+++ b/translations/ms/1-Introduction/2-history-of-ML/README.md
@@ -0,0 +1,164 @@
+
+# Sejarah pembelajaran mesin
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kuiz pra-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+
+[](https://youtu.be/N6wxM4wZ7V0 "ML untuk pemula - Sejarah Pembelajaran Mesin")
+
+> 🎥 Klik imej di atas untuk video pendek yang menerangkan pelajaran ini.
+
+Dalam pelajaran ini, kita akan melalui pencapaian utama dalam sejarah pembelajaran mesin dan kecerdasan buatan.
+
+Sejarah kecerdasan buatan (AI) sebagai satu bidang berkait rapat dengan sejarah pembelajaran mesin, kerana algoritma dan kemajuan pengiraan yang mendasari ML menyumbang kepada pembangunan AI. Adalah berguna untuk diingat bahawa, walaupun bidang ini sebagai kawasan penyelidikan yang berbeza mula terbentuk pada tahun 1950-an, penemuan [algoritma, statistik, matematik, pengiraan dan teknikal yang penting](https://wikipedia.org/wiki/Timeline_of_machine_learning) telah mendahului dan bertindih dengan era ini. Malah, manusia telah memikirkan persoalan ini selama [ratusan tahun](https://wikipedia.org/wiki/History_of_artificial_intelligence): artikel ini membincangkan asas intelektual sejarah idea 'mesin yang berfikir.'
+
+---
+## Penemuan penting
+
+- 1763, 1812 [Teorem Bayes](https://wikipedia.org/wiki/Bayes%27_theorem) dan pendahulunya. Teorem ini dan aplikasinya mendasari inferens, menerangkan kebarangkalian sesuatu peristiwa berlaku berdasarkan pengetahuan sebelumnya.
+- 1805 [Teori Kuadrat Terkecil](https://wikipedia.org/wiki/Least_squares) oleh ahli matematik Perancis Adrien-Marie Legendre. Teori ini, yang akan anda pelajari dalam unit Regresi kami, membantu dalam penyesuaian data.
+- 1913 [Rantai Markov](https://wikipedia.org/wiki/Markov_chain), dinamakan sempena ahli matematik Rusia Andrey Markov, digunakan untuk menerangkan urutan peristiwa yang mungkin berlaku berdasarkan keadaan sebelumnya.
+- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) ialah sejenis pengklasifikasi linear yang dicipta oleh ahli psikologi Amerika Frank Rosenblatt yang mendasari kemajuan dalam pembelajaran mendalam.
+
+---
+
+- 1967 [Jiran Terdekat](https://wikipedia.org/wiki/Nearest_neighbor) ialah algoritma yang pada asalnya direka untuk memetakan laluan. Dalam konteks ML, ia digunakan untuk mengesan corak.
+- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) digunakan untuk melatih [rangkaian neural feedforward](https://wikipedia.org/wiki/Feedforward_neural_network).
+- 1982 [Rangkaian Neural Berulang](https://wikipedia.org/wiki/Recurrent_neural_network) ialah rangkaian neural tiruan yang berasal daripada rangkaian neural feedforward yang mencipta graf temporal.
+
+✅ Lakukan sedikit penyelidikan. Apakah tarikh lain yang menonjol sebagai titik penting dalam sejarah ML dan AI?
+
+---
+## 1950: Mesin yang berfikir
+
+Alan Turing, seorang individu yang benar-benar luar biasa yang telah diundi [oleh orang awam pada tahun 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) sebagai saintis terhebat abad ke-20, dikreditkan sebagai membantu meletakkan asas untuk konsep 'mesin yang boleh berfikir.' Beliau bergelut dengan skeptik dan keperluannya sendiri untuk bukti empirik tentang konsep ini sebahagiannya dengan mencipta [Ujian Turing](https://www.bbc.com/news/technology-18475646), yang akan anda terokai dalam pelajaran NLP kami.
+
+---
+## 1956: Projek Penyelidikan Musim Panas Dartmouth
+
+"Projek Penyelidikan Musim Panas Dartmouth mengenai kecerdasan buatan adalah acara penting untuk kecerdasan buatan sebagai satu bidang," dan di sinilah istilah 'kecerdasan buatan' dicipta ([sumber](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
+
+> Setiap aspek pembelajaran atau mana-mana ciri kecerdasan boleh pada prinsipnya diterangkan dengan begitu tepat sehingga mesin boleh dibuat untuk mensimulasikannya.
+
+---
+
+Penyelidik utama, profesor matematik John McCarthy, berharap "untuk meneruskan berdasarkan andaian bahawa setiap aspek pembelajaran atau mana-mana ciri kecerdasan boleh pada prinsipnya diterangkan dengan begitu tepat sehingga mesin boleh dibuat untuk mensimulasikannya." Para peserta termasuk seorang lagi tokoh terkenal dalam bidang ini, Marvin Minsky.
+
+Bengkel ini dikreditkan dengan memulakan dan menggalakkan beberapa perbincangan termasuk "kemunculan kaedah simbolik, sistem yang tertumpu pada domain terhad (sistem pakar awal), dan sistem deduktif berbanding sistem induktif." ([sumber](https://wikipedia.org/wiki/Dartmouth_workshop)).
+
+---
+## 1956 - 1974: "Tahun-tahun emas"
+
+Dari tahun 1950-an hingga pertengahan '70-an, optimisme tinggi dalam harapan bahawa AI boleh menyelesaikan banyak masalah. Pada tahun 1967, Marvin Minsky menyatakan dengan yakin bahawa "Dalam satu generasi ... masalah mencipta 'kecerdasan buatan' akan diselesaikan secara substansial." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall)
+
+Penyelidikan pemprosesan bahasa semula jadi berkembang pesat, carian diperhalusi dan menjadi lebih berkuasa, dan konsep 'dunia mikro' dicipta, di mana tugas mudah diselesaikan menggunakan arahan bahasa biasa.
+
+---
+
+Penyelidikan dibiayai dengan baik oleh agensi kerajaan, kemajuan dibuat dalam pengiraan dan algoritma, dan prototaip mesin pintar dibina. Beberapa mesin ini termasuk:
+
+* [Shakey the robot](https://wikipedia.org/wiki/Shakey_the_robot), yang boleh bergerak dan memutuskan cara melaksanakan tugas secara 'bijak'.
+
+ 
+ > Shakey pada tahun 1972
+
+---
+
+* Eliza, 'chatterbot' awal, boleh berbual dengan orang dan bertindak sebagai 'terapis' primitif. Anda akan belajar lebih lanjut tentang Eliza dalam pelajaran NLP.
+
+ 
+ > Versi Eliza, chatbot
+
+---
+
+* "Blocks world" adalah contoh dunia mikro di mana blok boleh disusun dan diatur, dan eksperimen dalam mengajar mesin untuk membuat keputusan boleh diuji. Kemajuan yang dibina dengan perpustakaan seperti [SHRDLU](https://wikipedia.org/wiki/SHRDLU) membantu memacu pemprosesan bahasa ke hadapan.
+
+ [](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world dengan SHRDLU")
+
+ > 🎥 Klik imej di atas untuk video: Blocks world dengan SHRDLU
+
+---
+## 1974 - 1980: "Musim sejuk AI"
+
+Menjelang pertengahan tahun 1970-an, menjadi jelas bahawa kerumitan membuat 'mesin pintar' telah diremehkan dan janji yang diberikan, memandangkan kuasa pengiraan yang tersedia, telah dibesar-besarkan. Pembiayaan terhenti dan keyakinan dalam bidang ini perlahan. Beberapa isu yang menjejaskan keyakinan termasuk:
+---
+- **Keterbatasan**. Kuasa pengiraan terlalu terhad.
+- **Letupan kombinatorial**. Jumlah parameter yang perlu dilatih meningkat secara eksponen apabila lebih banyak diminta daripada komputer, tanpa evolusi selari kuasa dan keupayaan pengiraan.
+- **Kekurangan data**. Kekurangan data menghalang proses pengujian, pembangunan, dan penambahbaikan algoritma.
+- **Adakah kita bertanya soalan yang betul?**. Soalan yang diajukan mula dipersoalkan. Penyelidik mula menghadapi kritikan tentang pendekatan mereka:
+ - Ujian Turing dipersoalkan melalui, antara lain, teori 'bilik Cina' yang menyatakan bahawa, "memprogram komputer digital mungkin membuatnya kelihatan memahami bahasa tetapi tidak dapat menghasilkan pemahaman sebenar." ([sumber](https://plato.stanford.edu/entries/chinese-room/))
+ - Etika memperkenalkan kecerdasan buatan seperti "terapis" ELIZA ke dalam masyarakat dicabar.
+
+---
+
+Pada masa yang sama, pelbagai aliran pemikiran AI mula terbentuk. Satu dikotomi ditubuhkan antara amalan ["AI scruffy" vs. "AI neat"](https://wikipedia.org/wiki/Neats_and_scruffies). Makmal _scruffy_ menyesuaikan program selama berjam-jam sehingga mereka mendapat hasil yang diinginkan. Makmal _neat_ "fokus pada logik dan penyelesaian masalah formal". ELIZA dan SHRDLU adalah sistem _scruffy_ yang terkenal. Pada tahun 1980-an, apabila permintaan muncul untuk menjadikan sistem ML boleh dihasilkan semula, pendekatan _neat_ secara beransur-ansur mengambil tempat utama kerana hasilnya lebih boleh dijelaskan.
+
+---
+## Sistem pakar tahun 1980-an
+
+Apabila bidang ini berkembang, manfaatnya kepada perniagaan menjadi lebih jelas, dan pada tahun 1980-an begitu juga dengan penyebaran 'sistem pakar'. "Sistem pakar adalah antara bentuk perisian kecerdasan buatan (AI) yang pertama benar-benar berjaya." ([sumber](https://wikipedia.org/wiki/Expert_system)).
+
+Jenis sistem ini sebenarnya _hibrid_, terdiri daripada enjin peraturan yang mentakrifkan keperluan perniagaan, dan enjin inferens yang memanfaatkan sistem peraturan untuk membuat deduksi fakta baharu.
+
+Era ini juga menyaksikan perhatian yang semakin meningkat terhadap rangkaian neural.
+
+---
+## 1987 - 1993: 'Kedinginan' AI
+
+Penyebaran perkakasan sistem pakar khusus mempunyai kesan malang menjadi terlalu khusus. Kebangkitan komputer peribadi juga bersaing dengan sistem besar, khusus, berpusat ini. Demokratisasi pengkomputeran telah bermula, dan akhirnya membuka jalan untuk letupan moden data besar.
+
+---
+## 1993 - 2011
+
+Era ini menyaksikan zaman baharu untuk ML dan AI untuk dapat menyelesaikan beberapa masalah yang telah disebabkan sebelum ini oleh kekurangan data dan kuasa pengiraan. Jumlah data mula meningkat dengan pesat dan menjadi lebih mudah diakses, baik dan buruk, terutamanya dengan kemunculan telefon pintar sekitar tahun 2007. Kuasa pengiraan berkembang secara eksponen, dan algoritma berkembang seiring. Bidang ini mula mencapai kematangan apabila zaman bebas masa lalu mula mengkristal menjadi satu disiplin yang sebenar.
+
+---
+## Kini
+
+Hari ini pembelajaran mesin dan AI menyentuh hampir setiap bahagian kehidupan kita. Era ini memerlukan pemahaman yang teliti tentang risiko dan kesan berpotensi algoritma ini terhadap kehidupan manusia. Seperti yang dinyatakan oleh Brad Smith dari Microsoft, "Teknologi maklumat menimbulkan isu yang menyentuh inti perlindungan hak asasi manusia seperti privasi dan kebebasan bersuara. Isu-isu ini meningkatkan tanggungjawab syarikat teknologi yang mencipta produk ini. Pada pandangan kami, ia juga memerlukan peraturan kerajaan yang bijak dan pembangunan norma tentang penggunaan yang boleh diterima" ([sumber](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
+
+---
+
+Masih belum dapat dipastikan apa yang akan berlaku pada masa depan, tetapi adalah penting untuk memahami sistem komputer ini serta perisian dan algoritma yang mereka jalankan. Kami berharap kurikulum ini akan membantu anda mendapatkan pemahaman yang lebih baik supaya anda boleh membuat keputusan sendiri.
+
+[](https://www.youtube.com/watch?v=mTtDfKgLm54 "Sejarah pembelajaran mendalam")
+> 🎥 Klik imej di atas untuk video: Yann LeCun membincangkan sejarah pembelajaran mendalam dalam kuliah ini
+
+---
+## 🚀Cabaran
+
+Selidiki salah satu momen sejarah ini dan pelajari lebih lanjut tentang orang di sebaliknya. Terdapat watak-watak yang menarik, dan tiada penemuan saintifik yang pernah dicipta dalam vakum budaya. Apa yang anda temui?
+
+## [Kuiz selepas pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+---
+## Ulasan & Kajian Kendiri
+
+Berikut adalah item untuk ditonton dan didengar:
+
+[Podcast ini di mana Amy Boyd membincangkan evolusi AI](http://runasradio.com/Shows/Show/739)
+
+[](https://www.youtube.com/watch?v=EJt3_bFYKss "Sejarah AI oleh Amy Boyd")
+
+---
+
+## Tugasan
+
+[Cipta garis masa](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/2-history-of-ML/assignment.md b/translations/ms/1-Introduction/2-history-of-ML/assignment.md
new file mode 100644
index 00000000..eb4d570c
--- /dev/null
+++ b/translations/ms/1-Introduction/2-history-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Buat Garis Masa
+
+## Arahan
+
+Menggunakan [repo ini](https://github.com/Digital-Humanities-Toolkit/timeline-builder), buat garis masa tentang aspek sejarah algoritma, matematik, statistik, AI, atau ML, atau gabungan daripadanya. Anda boleh memberi tumpuan kepada satu individu, satu idea, atau tempoh masa pemikiran yang panjang. Pastikan untuk menambah elemen multimedia.
+
+## Rubrik
+
+| Kriteria | Cemerlang | Memadai | Perlu Penambahbaikan |
+| -------- | ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- |
+| | Garis masa yang telah diterbitkan sebagai halaman GitHub | Kod tidak lengkap dan tidak diterbitkan | Garis masa tidak lengkap, kurang penyelidikan dan tidak diterbitkan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/3-fairness/README.md b/translations/ms/1-Introduction/3-fairness/README.md
new file mode 100644
index 00000000..eadb46ff
--- /dev/null
+++ b/translations/ms/1-Introduction/3-fairness/README.md
@@ -0,0 +1,170 @@
+
+# Membina Penyelesaian Pembelajaran Mesin dengan AI yang Bertanggungjawab
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kuiz Pra-Kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Pengenalan
+
+Dalam kurikulum ini, anda akan mula meneroka bagaimana pembelajaran mesin boleh dan sedang memberi kesan kepada kehidupan seharian kita. Pada masa kini, sistem dan model terlibat dalam tugas membuat keputusan harian seperti diagnosis kesihatan, kelulusan pinjaman, atau pengesanan penipuan. Oleh itu, adalah penting bahawa model ini berfungsi dengan baik untuk memberikan hasil yang boleh dipercayai. Sama seperti mana-mana aplikasi perisian, sistem AI mungkin tidak memenuhi jangkaan atau menghasilkan hasil yang tidak diingini. Itulah sebabnya penting untuk memahami dan menjelaskan tingkah laku model AI.
+
+Bayangkan apa yang boleh berlaku apabila data yang anda gunakan untuk membina model ini kekurangan demografi tertentu seperti bangsa, jantina, pandangan politik, agama, atau secara tidak seimbang mewakili demografi tersebut. Bagaimana pula apabila output model ditafsirkan untuk memihak kepada sesetengah demografi? Apakah akibatnya kepada aplikasi tersebut? Selain itu, apa yang berlaku apabila model menghasilkan hasil yang buruk dan membahayakan orang? Siapa yang bertanggungjawab terhadap tingkah laku sistem AI? Ini adalah beberapa soalan yang akan kita terokai dalam kurikulum ini.
+
+Dalam pelajaran ini, anda akan:
+
+- Meningkatkan kesedaran tentang kepentingan keadilan dalam pembelajaran mesin dan bahaya berkaitan keadilan.
+- Mengenali amalan meneroka outlier dan senario luar biasa untuk memastikan kebolehpercayaan dan keselamatan.
+- Memahami keperluan untuk memperkasakan semua orang dengan mereka bentuk sistem yang inklusif.
+- Meneroka betapa pentingnya melindungi privasi dan keselamatan data serta individu.
+- Melihat kepentingan pendekatan kotak kaca untuk menjelaskan tingkah laku model AI.
+- Berhati-hati tentang bagaimana akauntabiliti adalah penting untuk membina kepercayaan dalam sistem AI.
+
+## Prasyarat
+
+Sebagai prasyarat, sila ambil Laluan Pembelajaran "Prinsip AI yang Bertanggungjawab" dan tonton video di bawah mengenai topik ini:
+
+Ketahui lebih lanjut tentang AI yang Bertanggungjawab dengan mengikuti [Laluan Pembelajaran](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott)
+
+[](https://youtu.be/dnC8-uUZXSc "Pendekatan Microsoft terhadap AI yang Bertanggungjawab")
+
+> 🎥 Klik imej di atas untuk video: Pendekatan Microsoft terhadap AI yang Bertanggungjawab
+
+## Keadilan
+
+Sistem AI harus melayan semua orang dengan adil dan mengelakkan memberi kesan yang berbeza kepada kumpulan orang yang serupa. Sebagai contoh, apabila sistem AI memberikan panduan tentang rawatan perubatan, permohonan pinjaman, atau pekerjaan, ia harus memberikan cadangan yang sama kepada semua orang dengan simptom, keadaan kewangan, atau kelayakan profesional yang serupa. Setiap daripada kita sebagai manusia membawa bias yang diwarisi yang mempengaruhi keputusan dan tindakan kita. Bias ini boleh kelihatan dalam data yang kita gunakan untuk melatih sistem AI. Manipulasi sedemikian kadang-kadang berlaku secara tidak sengaja. Selalunya sukar untuk secara sedar mengetahui bila anda memperkenalkan bias dalam data.
+
+**“Ketidakadilan”** merangkumi kesan negatif, atau “bahaya”, kepada sekumpulan orang, seperti yang ditakrifkan dalam istilah bangsa, jantina, umur, atau status kecacatan. Bahaya berkaitan keadilan utama boleh diklasifikasikan sebagai:
+
+- **Peruntukan**, jika jantina atau etnik, sebagai contoh, lebih diutamakan berbanding yang lain.
+- **Kualiti perkhidmatan**. Jika anda melatih data untuk satu senario tertentu tetapi realiti jauh lebih kompleks, ia membawa kepada perkhidmatan yang kurang berprestasi. Sebagai contoh, dispenser sabun tangan yang tidak dapat mengesan orang dengan kulit gelap. [Rujukan](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773)
+- **Pencemaran nama baik**. Mengkritik dan melabel sesuatu atau seseorang secara tidak adil. Sebagai contoh, teknologi pelabelan imej secara terkenal melabelkan imej orang berkulit gelap sebagai gorila.
+- **Perwakilan berlebihan atau kurang**. Idea bahawa kumpulan tertentu tidak dilihat dalam profesion tertentu, dan mana-mana perkhidmatan atau fungsi yang terus mempromosikan itu menyumbang kepada bahaya.
+- **Stereotaip**. Mengaitkan kumpulan tertentu dengan atribut yang telah ditetapkan. Sebagai contoh, sistem terjemahan bahasa antara Bahasa Inggeris dan Bahasa Turki mungkin mempunyai ketidaktepatan disebabkan oleh perkataan dengan kaitan stereotaip kepada jantina.
+
+
+> terjemahan ke Bahasa Turki
+
+
+> terjemahan kembali ke Bahasa Inggeris
+
+Apabila mereka bentuk dan menguji sistem AI, kita perlu memastikan bahawa AI adalah adil dan tidak diprogramkan untuk membuat keputusan yang berat sebelah atau diskriminasi, yang juga dilarang untuk dibuat oleh manusia. Menjamin keadilan dalam AI dan pembelajaran mesin kekal sebagai cabaran sosio-teknikal yang kompleks.
+
+### Kebolehpercayaan dan keselamatan
+
+Untuk membina kepercayaan, sistem AI perlu boleh dipercayai, selamat, dan konsisten di bawah keadaan biasa dan luar jangka. Adalah penting untuk mengetahui bagaimana sistem AI akan berkelakuan dalam pelbagai situasi, terutamanya apabila ia adalah outlier. Apabila membina penyelesaian AI, perlu ada fokus yang besar pada cara menangani pelbagai keadaan yang mungkin dihadapi oleh penyelesaian AI. Sebagai contoh, kereta pandu sendiri perlu meletakkan keselamatan orang sebagai keutamaan utama. Akibatnya, AI yang menggerakkan kereta perlu mempertimbangkan semua senario yang mungkin dihadapi oleh kereta seperti waktu malam, ribut petir atau salji, kanak-kanak berlari melintasi jalan, haiwan peliharaan, pembinaan jalan, dan sebagainya. Sejauh mana sistem AI boleh menangani pelbagai keadaan dengan kebolehpercayaan dan keselamatan mencerminkan tahap jangkaan yang dipertimbangkan oleh saintis data atau pembangun AI semasa mereka bentuk atau menguji sistem.
+
+> [🎥 Klik di sini untuk video: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
+
+### Inklusiviti
+
+Sistem AI harus direka untuk melibatkan dan memperkasakan semua orang. Apabila mereka bentuk dan melaksanakan sistem AI, saintis data dan pembangun AI mengenal pasti dan menangani halangan yang berpotensi dalam sistem yang boleh secara tidak sengaja mengecualikan orang. Sebagai contoh, terdapat 1 bilion orang kurang upaya di seluruh dunia. Dengan kemajuan AI, mereka boleh mengakses pelbagai maklumat dan peluang dengan lebih mudah dalam kehidupan seharian mereka. Dengan menangani halangan, ia mencipta peluang untuk berinovasi dan membangunkan produk AI dengan pengalaman yang lebih baik yang memberi manfaat kepada semua orang.
+
+> [🎥 Klik di sini untuk video: inklusiviti dalam AI](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
+
+### Keselamatan dan privasi
+
+Sistem AI harus selamat dan menghormati privasi orang. Orang kurang percaya kepada sistem yang meletakkan privasi, maklumat, atau nyawa mereka dalam risiko. Apabila melatih model pembelajaran mesin, kita bergantung pada data untuk menghasilkan hasil terbaik. Dalam melakukannya, asal usul data dan integriti mesti dipertimbangkan. Sebagai contoh, adakah data dihantar oleh pengguna atau tersedia secara umum? Seterusnya, semasa bekerja dengan data, adalah penting untuk membangunkan sistem AI yang boleh melindungi maklumat sulit dan menahan serangan. Apabila AI menjadi lebih meluas, melindungi privasi dan mengamankan maklumat peribadi dan perniagaan yang penting menjadi semakin kritikal dan kompleks. Isu privasi dan keselamatan data memerlukan perhatian yang sangat teliti untuk AI kerana akses kepada data adalah penting untuk sistem AI membuat ramalan dan keputusan yang tepat dan bermaklumat tentang orang.
+
+> [🎥 Klik di sini untuk video: keselamatan dalam AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Sebagai industri, kita telah membuat kemajuan yang ketara dalam privasi & keselamatan, yang didorong secara signifikan oleh peraturan seperti GDPR (Peraturan Perlindungan Data Umum).
+- Namun dengan sistem AI, kita mesti mengakui ketegangan antara keperluan untuk lebih banyak data peribadi untuk menjadikan sistem lebih peribadi dan berkesan – dan privasi.
+- Sama seperti kelahiran komputer yang disambungkan dengan internet, kita juga melihat peningkatan besar dalam jumlah isu keselamatan yang berkaitan dengan AI.
+- Pada masa yang sama, kita telah melihat AI digunakan untuk meningkatkan keselamatan. Sebagai contoh, kebanyakan pengimbas anti-virus moden didorong oleh heuristik AI hari ini.
+- Kita perlu memastikan bahawa proses Sains Data kita bergabung secara harmoni dengan amalan privasi dan keselamatan terkini.
+
+### Ketelusan
+
+Sistem AI harus dapat difahami. Bahagian penting ketelusan adalah menjelaskan tingkah laku sistem AI dan komponennya. Meningkatkan pemahaman tentang sistem AI memerlukan pihak berkepentingan memahami bagaimana dan mengapa ia berfungsi supaya mereka dapat mengenal pasti isu prestasi yang berpotensi, kebimbangan keselamatan dan privasi, bias, amalan pengecualian, atau hasil yang tidak diingini. Kami juga percaya bahawa mereka yang menggunakan sistem AI harus jujur dan terbuka tentang bila, mengapa, dan bagaimana mereka memilih untuk menggunakannya. Serta batasan sistem yang mereka gunakan. Sebagai contoh, jika sebuah bank menggunakan sistem AI untuk menyokong keputusan pemberian pinjaman kepada pengguna, adalah penting untuk memeriksa hasilnya dan memahami data mana yang mempengaruhi cadangan sistem. Kerajaan mula mengawal selia AI merentasi industri, jadi saintis data dan organisasi mesti menjelaskan jika sistem AI memenuhi keperluan peraturan, terutamanya apabila terdapat hasil yang tidak diingini.
+
+> [🎥 Klik di sini untuk video: ketelusan dalam AI](https://www.microsoft.com/videoplayer/embed/RE4voJF)
+
+- Oleh kerana sistem AI sangat kompleks, sukar untuk memahami bagaimana ia berfungsi dan mentafsir hasilnya.
+- Kekurangan pemahaman ini mempengaruhi cara sistem ini diuruskan, dioperasikan, dan didokumentasikan.
+- Kekurangan pemahaman ini lebih penting lagi mempengaruhi keputusan yang dibuat menggunakan hasil yang dihasilkan oleh sistem ini.
+
+### Akauntabiliti
+
+Orang yang mereka bentuk dan menggunakan sistem AI mesti bertanggungjawab terhadap cara sistem mereka beroperasi. Keperluan untuk akauntabiliti amat penting dengan teknologi penggunaan sensitif seperti pengecaman wajah. Baru-baru ini, terdapat permintaan yang semakin meningkat untuk teknologi pengecaman wajah, terutamanya daripada organisasi penguatkuasaan undang-undang yang melihat potensi teknologi dalam kegunaan seperti mencari kanak-kanak yang hilang. Walau bagaimanapun, teknologi ini berpotensi digunakan oleh kerajaan untuk meletakkan kebebasan asas rakyat mereka dalam risiko dengan, sebagai contoh, membolehkan pengawasan berterusan terhadap individu tertentu. Oleh itu, saintis data dan organisasi perlu bertanggungjawab terhadap bagaimana sistem AI mereka memberi kesan kepada individu atau masyarakat.
+
+[](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Pendekatan Microsoft terhadap AI yang Bertanggungjawab")
+
+> 🎥 Klik imej di atas untuk video: Amaran tentang Pengawasan Massa Melalui Pengecaman Wajah
+
+Akhirnya, salah satu soalan terbesar untuk generasi kita, sebagai generasi pertama yang membawa AI kepada masyarakat, adalah bagaimana memastikan komputer akan kekal bertanggungjawab kepada manusia dan bagaimana memastikan orang yang mereka bentuk komputer kekal bertanggungjawab kepada semua orang.
+
+## Penilaian Impak
+
+Sebelum melatih model pembelajaran mesin, adalah penting untuk menjalankan penilaian impak untuk memahami tujuan sistem AI; apa kegunaan yang dimaksudkan; di mana ia akan digunakan; dan siapa yang akan berinteraksi dengan sistem tersebut. Ini berguna untuk pengulas atau penguji yang menilai sistem untuk mengetahui faktor apa yang perlu dipertimbangkan semasa mengenal pasti risiko yang berpotensi dan akibat yang dijangkakan.
+
+Berikut adalah kawasan fokus semasa menjalankan penilaian impak:
+
+* **Kesan buruk terhadap individu**. Menyedari sebarang sekatan atau keperluan, penggunaan yang tidak disokong atau sebarang batasan yang diketahui yang menghalang prestasi sistem adalah penting untuk memastikan sistem tidak digunakan dengan cara yang boleh menyebabkan bahaya kepada individu.
+* **Keperluan data**. Memahami bagaimana dan di mana sistem akan menggunakan data membolehkan pengulas meneroka sebarang keperluan data yang perlu anda perhatikan (contohnya, peraturan data GDPR atau HIPPA). Selain itu, periksa sama ada sumber atau kuantiti data adalah mencukupi untuk latihan.
+* **Ringkasan impak**. Kumpulkan senarai potensi bahaya yang boleh timbul daripada menggunakan sistem. Sepanjang kitaran hayat ML, semak sama ada isu yang dikenal pasti telah dikurangkan atau ditangani.
+* **Matlamat yang boleh digunakan** untuk setiap enam prinsip teras. Nilai sama ada matlamat daripada setiap prinsip telah dicapai dan jika terdapat sebarang jurang.
+
+## Debugging dengan AI yang Bertanggungjawab
+
+Sama seperti debugging aplikasi perisian, debugging sistem AI adalah proses yang diperlukan untuk mengenal pasti dan menyelesaikan isu dalam sistem. Terdapat banyak faktor yang boleh mempengaruhi model tidak berprestasi seperti yang diharapkan atau bertanggungjawab. Kebanyakan metrik prestasi model tradisional adalah agregat kuantitatif prestasi model, yang tidak mencukupi untuk menganalisis bagaimana model melanggar prinsip AI yang bertanggungjawab. Tambahan pula, model pembelajaran mesin adalah kotak hitam yang menjadikannya sukar untuk memahami apa yang mendorong hasilnya atau memberikan penjelasan apabila ia membuat kesilapan. Kemudian dalam kursus ini, kita akan belajar bagaimana menggunakan papan pemuka AI yang Bertanggungjawab untuk membantu debugging sistem AI. Papan pemuka menyediakan alat holistik untuk saintis data dan pembangun AI untuk melaksanakan:
+
+* **Analisis ralat**. Untuk mengenal pasti pengedaran ralat model yang boleh menjejaskan keadilan atau kebolehpercayaan sistem.
+* **Gambaran keseluruhan model**. Untuk menemui di mana terdapat perbezaan dalam prestasi model merentasi kohort data.
+* **Analisis data**. Untuk memahami pengedaran data dan mengenal pasti sebarang potensi bias dalam data yang boleh membawa kepada isu keadilan, inklusiviti, dan kebolehpercayaan.
+* **Kebolehinterpretasian model**. Untuk memahami apa yang mempengaruhi atau mempengaruhi ramalan model. Ini membantu dalam menjelaskan tingkah laku model, yang penting untuk ketelusan dan akauntabiliti.
+
+## 🚀 Cabaran
+
+Untuk mengelakkan bahaya daripada diperkenalkan sejak awal, kita harus:
+
+- mempunyai kepelbagaian latar belakang dan perspektif di kalangan orang yang bekerja pada sistem
+- melabur dalam set data yang mencerminkan kepelbagaian masyarakat kita
+- membangunkan kaedah yang lebih baik sepanjang kitaran hayat pembelajaran mesin untuk mengesan dan membetulkan AI yang bertanggungjawab apabila ia berlaku
+
+Fikirkan tentang senario kehidupan sebenar di mana ketidakpercayaan model jelas dalam pembinaan dan penggunaan model. Apa lagi yang perlu kita pertimbangkan?
+
+## [Kuiz Pasca-Kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Ulasan & Kajian Kendiri
+
+Dalam pelajaran ini, anda telah mempelajari beberapa asas konsep keadilan dan ketidakadilan dalam pembelajaran mesin.
+Tonton bengkel ini untuk mendalami topik:
+
+- Dalam usaha AI yang bertanggungjawab: Membawa prinsip ke amalan oleh Besmira Nushi, Mehrnoosh Sameki dan Amit Sharma
+
+[](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: Kerangka sumber terbuka untuk membina AI yang bertanggungjawab")
+
+> 🎥 Klik imej di atas untuk video: RAI Toolbox: Kerangka sumber terbuka untuk membina AI yang bertanggungjawab oleh Besmira Nushi, Mehrnoosh Sameki, dan Amit Sharma
+
+Juga, baca:
+
+- Pusat sumber RAI Microsoft: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
+
+- Kumpulan penyelidikan FATE Microsoft: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
+
+RAI Toolbox:
+
+- [Repositori GitHub Responsible AI Toolbox](https://github.com/microsoft/responsible-ai-toolbox)
+
+Baca tentang alat Azure Machine Learning untuk memastikan keadilan:
+
+- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott)
+
+## Tugasan
+
+[Terokai RAI Toolbox](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/3-fairness/assignment.md b/translations/ms/1-Introduction/3-fairness/assignment.md
new file mode 100644
index 00000000..a802c8ac
--- /dev/null
+++ b/translations/ms/1-Introduction/3-fairness/assignment.md
@@ -0,0 +1,25 @@
+
+# Terokai Alat AI Bertanggungjawab
+
+## Arahan
+
+Dalam pelajaran ini, anda telah mempelajari tentang Alat AI Bertanggungjawab, sebuah "projek sumber terbuka yang didorong oleh komuniti untuk membantu saintis data menganalisis dan memperbaiki sistem AI." Untuk tugasan ini, terokai salah satu [notebook](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) RAI Toolbox dan laporkan penemuan anda dalam bentuk kertas kerja atau pembentangan.
+
+## Rubrik
+
+| Kriteria | Cemerlang | Memadai | Perlu Penambahbaikan |
+| -------- | --------- | -------- | -------------------- |
+| | Kertas kerja atau pembentangan PowerPoint disediakan yang membincangkan sistem Fairlearn, notebook yang dijalankan, dan kesimpulan yang diperoleh daripada menjalankannya | Kertas kerja disediakan tanpa kesimpulan | Tiada kertas kerja disediakan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/4-techniques-of-ML/README.md b/translations/ms/1-Introduction/4-techniques-of-ML/README.md
new file mode 100644
index 00000000..a4e7efa7
--- /dev/null
+++ b/translations/ms/1-Introduction/4-techniques-of-ML/README.md
@@ -0,0 +1,132 @@
+
+# Teknik Pembelajaran Mesin
+
+Proses membina, menggunakan, dan mengekalkan model pembelajaran mesin serta data yang digunakan adalah sangat berbeza daripada banyak aliran kerja pembangunan lain. Dalam pelajaran ini, kita akan menjelaskan proses tersebut dan menggariskan teknik utama yang perlu anda ketahui. Anda akan:
+
+- Memahami proses yang mendasari pembelajaran mesin pada tahap tinggi.
+- Meneroka konsep asas seperti 'model', 'ramalan', dan 'data latihan'.
+
+## [Kuiz pra-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+[](https://youtu.be/4NGM0U2ZSHU "ML untuk pemula - Teknik Pembelajaran Mesin")
+
+> 🎥 Klik imej di atas untuk video pendek yang menerangkan pelajaran ini.
+
+## Pengenalan
+
+Secara umum, seni mencipta proses pembelajaran mesin (ML) terdiri daripada beberapa langkah:
+
+1. **Tentukan soalan**. Kebanyakan proses ML bermula dengan menanyakan soalan yang tidak dapat dijawab oleh program bersyarat atau enjin berasaskan peraturan yang mudah. Soalan-soalan ini sering berkisar pada ramalan berdasarkan koleksi data.
+2. **Kumpul dan sediakan data**. Untuk menjawab soalan anda, anda memerlukan data. Kualiti dan, kadangkala, kuantiti data anda akan menentukan sejauh mana anda dapat menjawab soalan awal anda. Memvisualkan data adalah aspek penting dalam fasa ini. Fasa ini juga termasuk membahagikan data kepada kumpulan latihan dan ujian untuk membina model.
+3. **Pilih kaedah latihan**. Bergantung pada soalan anda dan sifat data anda, anda perlu memilih cara untuk melatih model agar mencerminkan data anda dengan baik dan membuat ramalan yang tepat. Bahagian proses ML ini memerlukan kepakaran khusus dan, sering kali, sejumlah besar eksperimen.
+4. **Latih model**. Menggunakan data latihan anda, anda akan menggunakan pelbagai algoritma untuk melatih model agar mengenali pola dalam data. Model mungkin menggunakan berat dalaman yang boleh disesuaikan untuk memberi keutamaan kepada bahagian tertentu data berbanding yang lain untuk membina model yang lebih baik.
+5. **Nilai model**. Anda menggunakan data yang belum pernah dilihat sebelumnya (data ujian anda) daripada set yang dikumpulkan untuk melihat bagaimana prestasi model.
+6. **Penalaan parameter**. Berdasarkan prestasi model anda, anda boleh mengulangi proses menggunakan parameter atau pembolehubah yang berbeza yang mengawal tingkah laku algoritma yang digunakan untuk melatih model.
+7. **Ramalkan**. Gunakan input baru untuk menguji ketepatan model anda.
+
+## Soalan yang perlu ditanya
+
+Komputer sangat mahir dalam menemui pola tersembunyi dalam data. Kegunaan ini sangat membantu penyelidik yang mempunyai soalan tentang domain tertentu yang tidak dapat dijawab dengan mudah dengan mencipta enjin peraturan bersyarat. Sebagai contoh, dalam tugas aktuari, seorang saintis data mungkin dapat membina peraturan buatan tangan tentang kadar kematian perokok berbanding bukan perokok.
+
+Namun, apabila banyak pembolehubah lain dimasukkan ke dalam persamaan, model ML mungkin lebih efisien untuk meramalkan kadar kematian masa depan berdasarkan sejarah kesihatan masa lalu. Contoh yang lebih ceria mungkin membuat ramalan cuaca untuk bulan April di lokasi tertentu berdasarkan data yang merangkumi latitud, longitud, perubahan iklim, jarak ke laut, pola aliran jet, dan banyak lagi.
+
+✅ [Slide ini](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) tentang model cuaca menawarkan perspektif sejarah untuk menggunakan ML dalam analisis cuaca.
+
+## Tugas sebelum membina
+
+Sebelum memulakan pembinaan model anda, terdapat beberapa tugas yang perlu anda selesaikan. Untuk menguji soalan anda dan membentuk hipotesis berdasarkan ramalan model, anda perlu mengenal pasti dan mengkonfigurasi beberapa elemen.
+
+### Data
+
+Untuk menjawab soalan anda dengan sebarang kepastian, anda memerlukan sejumlah data yang mencukupi dan jenis yang betul. Terdapat dua perkara yang perlu dilakukan pada tahap ini:
+
+- **Kumpul data**. Mengambil kira pelajaran sebelumnya tentang keadilan dalam analisis data, kumpulkan data anda dengan berhati-hati. Sedar akan sumber data ini, sebarang bias yang mungkin ada, dan dokumentasikan asal usulnya.
+- **Sediakan data**. Terdapat beberapa langkah dalam proses penyediaan data. Anda mungkin perlu menggabungkan data dan menormalkannya jika ia berasal dari sumber yang pelbagai. Anda boleh meningkatkan kualiti dan kuantiti data melalui pelbagai kaedah seperti menukar string kepada nombor (seperti yang kita lakukan dalam [Pengelompokan](../../5-Clustering/1-Visualize/README.md)). Anda juga boleh menghasilkan data baru berdasarkan data asal (seperti yang kita lakukan dalam [Klasifikasi](../../4-Classification/1-Introduction/README.md)). Anda boleh membersihkan dan mengedit data (seperti yang akan kita lakukan sebelum pelajaran [Aplikasi Web](../../3-Web-App/README.md)). Akhirnya, anda mungkin juga perlu mengacak dan mencampurkannya, bergantung pada teknik latihan anda.
+
+✅ Selepas mengumpul dan memproses data anda, luangkan masa untuk melihat sama ada bentuknya akan membolehkan anda menangani soalan yang dimaksudkan. Mungkin data tersebut tidak akan berfungsi dengan baik dalam tugas yang diberikan, seperti yang kita temui dalam pelajaran [Pengelompokan](../../5-Clustering/1-Visualize/README.md)!
+
+### Ciri dan Sasaran
+
+[Ciri](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) adalah sifat yang boleh diukur daripada data anda. Dalam banyak set data, ia dinyatakan sebagai tajuk lajur seperti 'tarikh', 'saiz', atau 'warna'. Pembolehubah ciri anda, biasanya diwakili sebagai `X` dalam kod, mewakili pembolehubah input yang akan digunakan untuk melatih model.
+
+Sasaran adalah perkara yang anda cuba ramalkan. Sasaran, biasanya diwakili sebagai `y` dalam kod, mewakili jawapan kepada soalan yang anda cuba tanyakan kepada data anda: pada bulan Disember, **warna** labu mana yang akan paling murah? Di San Francisco, kawasan kejiranan mana yang akan mempunyai **harga** hartanah terbaik? Kadangkala sasaran juga dirujuk sebagai atribut label.
+
+### Memilih pembolehubah ciri anda
+
+🎓 **Pemilihan Ciri dan Ekstraksi Ciri** Bagaimana anda tahu pembolehubah mana yang perlu dipilih semasa membina model? Anda mungkin akan melalui proses pemilihan ciri atau ekstraksi ciri untuk memilih pembolehubah yang betul untuk model yang paling berprestasi. Walau bagaimanapun, mereka tidak sama: "Ekstraksi ciri mencipta ciri baru daripada fungsi ciri asal, manakala pemilihan ciri mengembalikan subset ciri." ([sumber](https://wikipedia.org/wiki/Feature_selection))
+
+### Visualkan data anda
+
+Aspek penting dalam alat saintis data adalah kuasa untuk memvisualkan data menggunakan beberapa pustaka yang sangat baik seperti Seaborn atau MatPlotLib. Mewakili data anda secara visual mungkin membolehkan anda menemui korelasi tersembunyi yang boleh anda manfaatkan. Visualisasi anda juga mungkin membantu anda menemui bias atau data yang tidak seimbang (seperti yang kita temui dalam [Klasifikasi](../../4-Classification/2-Classifiers-1/README.md)).
+
+### Bahagikan set data anda
+
+Sebelum latihan, anda perlu membahagikan set data anda kepada dua atau lebih bahagian yang tidak sama saiz tetapi masih mewakili data dengan baik.
+
+- **Latihan**. Bahagian set data ini digunakan untuk melatih model anda. Set ini membentuk sebahagian besar daripada set data asal.
+- **Ujian**. Set ujian adalah kumpulan data bebas, sering kali diambil daripada data asal, yang anda gunakan untuk mengesahkan prestasi model yang dibina.
+- **Pengesahan**. Set pengesahan adalah kumpulan contoh bebas yang lebih kecil yang anda gunakan untuk menala parameter hiper model, atau seni bina, untuk meningkatkan model. Bergantung pada saiz data anda dan soalan yang anda tanyakan, anda mungkin tidak perlu membina set ketiga ini (seperti yang kita perhatikan dalam [Ramalan Siri Masa](../../7-TimeSeries/1-Introduction/README.md)).
+
+## Membina model
+
+Menggunakan data latihan anda, matlamat anda adalah untuk membina model, atau representasi statistik data anda, menggunakan pelbagai algoritma untuk **melatih**nya. Melatih model mendedahkannya kepada data dan membolehkan ia membuat andaian tentang pola yang ditemui, disahkan, dan diterima atau ditolak.
+
+### Tentukan kaedah latihan
+
+Bergantung pada soalan anda dan sifat data anda, anda akan memilih kaedah untuk melatihnya. Melalui [dokumentasi Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - yang kita gunakan dalam kursus ini - anda boleh meneroka banyak cara untuk melatih model. Bergantung pada pengalaman anda, anda mungkin perlu mencuba beberapa kaedah yang berbeza untuk membina model terbaik. Anda mungkin akan melalui proses di mana saintis data menilai prestasi model dengan memberinya data yang belum dilihat, memeriksa ketepatan, bias, dan isu lain yang merosakkan kualiti, serta memilih kaedah latihan yang paling sesuai untuk tugas yang diberikan.
+
+### Latih model
+
+Dengan data latihan anda, anda bersedia untuk 'memasangkannya' untuk mencipta model. Anda akan perasan bahawa dalam banyak pustaka ML, anda akan menemui kod 'model.fit' - pada masa ini anda menghantar pembolehubah ciri anda sebagai array nilai (biasanya 'X') dan pembolehubah sasaran (biasanya 'y').
+
+### Nilai model
+
+Setelah proses latihan selesai (ia boleh mengambil banyak iterasi, atau 'epoch', untuk melatih model besar), anda akan dapat menilai kualiti model dengan menggunakan data ujian untuk mengukur prestasinya. Data ini adalah subset daripada data asal yang belum dianalisis oleh model. Anda boleh mencetak jadual metrik tentang kualiti model anda.
+
+🎓 **Pemasangan model**
+
+Dalam konteks pembelajaran mesin, pemasangan model merujuk kepada ketepatan fungsi asas model semasa ia cuba menganalisis data yang tidak dikenali.
+
+🎓 **Underfitting** dan **overfitting** adalah masalah biasa yang merosakkan kualiti model, kerana model sama ada tidak cukup baik atau terlalu baik. Ini menyebabkan model membuat ramalan yang terlalu selaras atau terlalu longgar dengan data latihannya. Model yang terlalu sesuai meramalkan data latihan terlalu baik kerana ia telah mempelajari butiran dan bunyi data terlalu baik. Model yang kurang sesuai tidak tepat kerana ia tidak dapat menganalisis data latihannya atau data yang belum 'dilihat' dengan tepat.
+
+
+> Infografik oleh [Jen Looper](https://twitter.com/jenlooper)
+
+## Penalaan parameter
+
+Setelah latihan awal anda selesai, perhatikan kualiti model dan pertimbangkan untuk meningkatkannya dengan menyesuaikan 'parameter hiper'nya. Baca lebih lanjut tentang proses ini [dalam dokumentasi](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+
+## Ramalan
+
+Ini adalah saat di mana anda boleh menggunakan data yang benar-benar baru untuk menguji ketepatan model anda. Dalam tetapan ML 'terapan', di mana anda membina aset web untuk menggunakan model dalam pengeluaran, proses ini mungkin melibatkan pengumpulan input pengguna (tekanan butang, sebagai contoh) untuk menetapkan pembolehubah dan menghantarnya kepada model untuk inferens, atau penilaian.
+
+Dalam pelajaran ini, anda akan menemui cara menggunakan langkah-langkah ini untuk menyediakan, membina, menguji, menilai, dan meramalkan - semua gerakan seorang saintis data dan banyak lagi, semasa anda maju dalam perjalanan anda untuk menjadi jurutera ML 'full stack'.
+
+---
+
+## 🚀Cabaran
+
+Lukiskan carta alir yang mencerminkan langkah-langkah seorang pengamal ML. Di mana anda melihat diri anda sekarang dalam proses ini? Di mana anda meramalkan anda akan menghadapi kesukaran? Apa yang kelihatan mudah bagi anda?
+
+## [Kuiz selepas pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+## Ulasan & Kajian Kendiri
+
+Cari dalam talian untuk temu bual dengan saintis data yang membincangkan kerja harian mereka. Berikut adalah [satu](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+
+## Tugasan
+
+[Temu bual seorang saintis data](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/4-techniques-of-ML/assignment.md b/translations/ms/1-Introduction/4-techniques-of-ML/assignment.md
new file mode 100644
index 00000000..411dfbd6
--- /dev/null
+++ b/translations/ms/1-Introduction/4-techniques-of-ML/assignment.md
@@ -0,0 +1,25 @@
+
+# Temu bual seorang saintis data
+
+## Arahan
+
+Di syarikat anda, dalam kumpulan pengguna, atau di kalangan rakan atau pelajar lain, berbincanglah dengan seseorang yang bekerja secara profesional sebagai saintis data. Tulis sebuah kertas pendek (500 perkataan) tentang pekerjaan harian mereka. Adakah mereka pakar, atau adakah mereka bekerja secara 'full stack'?
+
+## Rubrik
+
+| Kriteria | Cemerlang | Memadai | Perlu Penambahbaikan |
+| -------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------------------- | --------------------- |
+| | Sebuah esei dengan panjang yang betul, dengan sumber yang dinyatakan, disediakan sebagai fail .doc | Esei kurang dinyatakan sumbernya atau lebih pendek daripada panjang yang diperlukan | Tiada esei disediakan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/1-Introduction/README.md b/translations/ms/1-Introduction/README.md
new file mode 100644
index 00000000..5986860a
--- /dev/null
+++ b/translations/ms/1-Introduction/README.md
@@ -0,0 +1,37 @@
+
+# Pengenalan kepada pembelajaran mesin
+
+Dalam bahagian kurikulum ini, anda akan diperkenalkan kepada konsep asas yang mendasari bidang pembelajaran mesin, apa itu pembelajaran mesin, serta mempelajari sejarahnya dan teknik yang digunakan oleh para penyelidik untuk bekerja dengannya. Mari kita terokai dunia baru ML ini bersama-sama!
+
+
+> Foto oleh Bill Oxford di Unsplash
+
+### Pelajaran
+
+1. [Pengenalan kepada pembelajaran mesin](1-intro-to-ML/README.md)
+1. [Sejarah pembelajaran mesin dan AI](2-history-of-ML/README.md)
+1. [Keadilan dan pembelajaran mesin](3-fairness/README.md)
+1. [Teknik pembelajaran mesin](4-techniques-of-ML/README.md)
+
+### Kredit
+
+"Pengenalan kepada Pembelajaran Mesin" ditulis dengan ♥️ oleh pasukan yang termasuk [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) dan [Jen Looper](https://twitter.com/jenlooper)
+
+"Sejarah Pembelajaran Mesin" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Amy Boyd](https://twitter.com/AmyKateNicho)
+
+"Keadilan dan Pembelajaran Mesin" ditulis dengan ♥️ oleh [Tomomi Imura](https://twitter.com/girliemac)
+
+"Teknik Pembelajaran Mesin" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Chris Noring](https://twitter.com/softchris)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/1-Tools/README.md b/translations/ms/2-Regression/1-Tools/README.md
new file mode 100644
index 00000000..253e83c2
--- /dev/null
+++ b/translations/ms/2-Regression/1-Tools/README.md
@@ -0,0 +1,239 @@
+
+# Bermula dengan Python dan Scikit-learn untuk model regresi
+
+
+
+> Sketchnote oleh [Tomomi Imura](https://www.twitter.com/girlie_mac)
+
+## [Kuiz sebelum kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
+
+## Pengenalan
+
+Dalam empat pelajaran ini, anda akan belajar cara membina model regresi. Kita akan membincangkan kegunaannya sebentar lagi. Tetapi sebelum memulakan apa-apa, pastikan anda mempunyai alat yang betul untuk memulakan proses ini!
+
+Dalam pelajaran ini, anda akan belajar cara:
+
+- Mengkonfigurasi komputer anda untuk tugas pembelajaran mesin secara tempatan.
+- Bekerja dengan Jupyter notebooks.
+- Menggunakan Scikit-learn, termasuk pemasangan.
+- Meneroka regresi linear melalui latihan praktikal.
+
+## Pemasangan dan konfigurasi
+
+[](https://youtu.be/-DfeD2k2Kj0 "ML untuk pemula - Sediakan alat anda untuk membina model Pembelajaran Mesin")
+
+> 🎥 Klik imej di atas untuk video pendek tentang cara mengkonfigurasi komputer anda untuk ML.
+
+1. **Pasang Python**. Pastikan [Python](https://www.python.org/downloads/) dipasang pada komputer anda. Anda akan menggunakan Python untuk banyak tugas sains data dan pembelajaran mesin. Kebanyakan sistem komputer sudah mempunyai Python yang dipasang. Terdapat juga [Pakej Pengkodan Python](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) yang berguna untuk memudahkan pemasangan bagi sesetengah pengguna.
+
+ Walau bagaimanapun, beberapa penggunaan Python memerlukan satu versi perisian, manakala yang lain memerlukan versi yang berbeza. Oleh itu, adalah berguna untuk bekerja dalam [persekitaran maya](https://docs.python.org/3/library/venv.html).
+
+2. **Pasang Visual Studio Code**. Pastikan anda mempunyai Visual Studio Code yang dipasang pada komputer anda. Ikuti arahan ini untuk [memasang Visual Studio Code](https://code.visualstudio.com/) untuk pemasangan asas. Anda akan menggunakan Python dalam Visual Studio Code dalam kursus ini, jadi anda mungkin ingin menyegarkan pengetahuan anda tentang cara [mengkonfigurasi Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) untuk pembangunan Python.
+
+ > Biasakan diri dengan Python dengan melalui koleksi [modul pembelajaran ini](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott)
+ >
+ > [](https://youtu.be/yyQM70vi7V8 "Sediakan Python dengan Visual Studio Code")
+ >
+ > 🎥 Klik imej di atas untuk video: menggunakan Python dalam VS Code.
+
+3. **Pasang Scikit-learn**, dengan mengikuti [arahan ini](https://scikit-learn.org/stable/install.html). Oleh kerana anda perlu memastikan bahawa anda menggunakan Python 3, disarankan agar anda menggunakan persekitaran maya. Perhatikan, jika anda memasang pustaka ini pada Mac M1, terdapat arahan khas pada halaman yang dipautkan di atas.
+
+4. **Pasang Jupyter Notebook**. Anda perlu [memasang pakej Jupyter](https://pypi.org/project/jupyter/).
+
+## Persekitaran pengarang ML anda
+
+Anda akan menggunakan **notebooks** untuk membangunkan kod Python anda dan mencipta model pembelajaran mesin. Jenis fail ini adalah alat biasa untuk saintis data, dan ia boleh dikenalpasti melalui akhiran atau sambungan `.ipynb`.
+
+Notebooks adalah persekitaran interaktif yang membolehkan pembangun untuk menulis kod serta menambah nota dan dokumentasi di sekitar kod, yang sangat berguna untuk projek eksperimen atau berorientasikan penyelidikan.
+
+[](https://youtu.be/7E-jC8FLA2E "ML untuk pemula - Sediakan Jupyter Notebooks untuk mula membina model regresi")
+
+> 🎥 Klik imej di atas untuk video pendek melalui latihan ini.
+
+### Latihan - bekerja dengan notebook
+
+Dalam folder ini, anda akan menemui fail _notebook.ipynb_.
+
+1. Buka _notebook.ipynb_ dalam Visual Studio Code.
+
+ Pelayan Jupyter akan bermula dengan Python 3+ dimulakan. Anda akan menemui kawasan dalam notebook yang boleh `dijalankan`, iaitu potongan kod. Anda boleh menjalankan blok kod dengan memilih ikon yang kelihatan seperti butang main.
+
+2. Pilih ikon `md` dan tambahkan sedikit markdown, serta teks berikut **# Selamat datang ke notebook anda**.
+
+ Seterusnya, tambahkan beberapa kod Python.
+
+3. Taip **print('hello notebook')** dalam blok kod.
+4. Pilih anak panah untuk menjalankan kod.
+
+ Anda sepatutnya melihat kenyataan yang dicetak:
+
+ ```output
+ hello notebook
+ ```
+
+
+
+Anda boleh menyelitkan kod anda dengan komen untuk mendokumentasikan notebook secara sendiri.
+
+✅ Fikirkan sebentar tentang betapa berbezanya persekitaran kerja pembangun web berbanding dengan saintis data.
+
+## Memulakan dengan Scikit-learn
+
+Sekarang Python telah disediakan dalam persekitaran tempatan anda, dan anda sudah selesa dengan Jupyter notebooks, mari kita menjadi sama selesa dengan Scikit-learn (disebut `sci` seperti dalam `science`). Scikit-learn menyediakan [API yang luas](https://scikit-learn.org/stable/modules/classes.html#api-ref) untuk membantu anda melaksanakan tugas ML.
+
+Menurut [laman web mereka](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn adalah pustaka pembelajaran mesin sumber terbuka yang menyokong pembelajaran terarah dan tidak terarah. Ia juga menyediakan pelbagai alat untuk pemasangan model, prapemprosesan data, pemilihan model dan penilaian, serta banyak utiliti lain."
+
+Dalam kursus ini, anda akan menggunakan Scikit-learn dan alat lain untuk membina model pembelajaran mesin untuk melaksanakan apa yang kita panggil tugas 'pembelajaran mesin tradisional'. Kami sengaja mengelakkan rangkaian neural dan pembelajaran mendalam, kerana ia lebih sesuai diliputi dalam kurikulum 'AI untuk Pemula' kami yang akan datang.
+
+Scikit-learn memudahkan untuk membina model dan menilai mereka untuk digunakan. Ia terutamanya memberi tumpuan kepada penggunaan data berangka dan mengandungi beberapa dataset siap sedia untuk digunakan sebagai alat pembelajaran. Ia juga termasuk model pra-bina untuk pelajar mencuba. Mari kita terokai proses memuatkan data yang telah dipakejkan dan menggunakan estimator terbina untuk model ML pertama dengan Scikit-learn menggunakan data asas.
+
+## Latihan - notebook Scikit-learn pertama anda
+
+> Tutorial ini diilhamkan oleh [contoh regresi linear](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) di laman web Scikit-learn.
+
+[](https://youtu.be/2xkXL5EUpS0 "ML untuk pemula - Projek Regresi Linear Pertama Anda dalam Python")
+
+> 🎥 Klik imej di atas untuk video pendek melalui latihan ini.
+
+Dalam fail _notebook.ipynb_ yang berkaitan dengan pelajaran ini, kosongkan semua sel dengan menekan ikon 'tong sampah'.
+
+Dalam bahagian ini, anda akan bekerja dengan dataset kecil tentang diabetes yang dibina dalam Scikit-learn untuk tujuan pembelajaran. Bayangkan anda ingin menguji rawatan untuk pesakit diabetes. Model Pembelajaran Mesin mungkin membantu anda menentukan pesakit mana yang akan memberi tindak balas lebih baik terhadap rawatan, berdasarkan gabungan pembolehubah. Malah model regresi yang sangat asas, apabila divisualisasikan, mungkin menunjukkan maklumat tentang pembolehubah yang akan membantu anda mengatur ujian klinikal teori anda.
+
+✅ Terdapat banyak jenis kaedah regresi, dan yang mana anda pilih bergantung pada jawapan yang anda cari. Jika anda ingin meramalkan ketinggian yang mungkin untuk seseorang berdasarkan umur tertentu, anda akan menggunakan regresi linear, kerana anda mencari **nilai berangka**. Jika anda berminat untuk mengetahui sama ada jenis masakan harus dianggap vegan atau tidak, anda mencari **penugasan kategori**, jadi anda akan menggunakan regresi logistik. Anda akan belajar lebih lanjut tentang regresi logistik kemudian. Fikirkan sedikit tentang beberapa soalan yang boleh anda tanyakan kepada data, dan kaedah mana yang lebih sesuai.
+
+Mari kita mulakan tugas ini.
+
+### Import pustaka
+
+Untuk tugas ini, kita akan mengimport beberapa pustaka:
+
+- **matplotlib**. Ia adalah alat [grafik yang berguna](https://matplotlib.org/) dan kita akan menggunakannya untuk mencipta plot garis.
+- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) adalah pustaka berguna untuk mengendalikan data berangka dalam Python.
+- **sklearn**. Ini adalah pustaka [Scikit-learn](https://scikit-learn.org/stable/user_guide.html).
+
+Import beberapa pustaka untuk membantu tugas anda.
+
+1. Tambahkan import dengan menaip kod berikut:
+
+ ```python
+ import matplotlib.pyplot as plt
+ import numpy as np
+ from sklearn import datasets, linear_model, model_selection
+ ```
+
+ Di atas, anda mengimport `matplotlib`, `numpy` dan anda mengimport `datasets`, `linear_model` dan `model_selection` dari `sklearn`. `model_selection` digunakan untuk membahagikan data kepada set latihan dan ujian.
+
+### Dataset diabetes
+
+Dataset [diabetes](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) yang dibina dalam Scikit-learn termasuk 442 sampel data tentang diabetes, dengan 10 pembolehubah ciri, beberapa daripadanya termasuk:
+
+- age: umur dalam tahun
+- bmi: indeks jisim badan
+- bp: tekanan darah purata
+- s1 tc: T-Cells (sejenis sel darah putih)
+
+✅ Dataset ini termasuk konsep 'sex' sebagai pembolehubah ciri yang penting untuk penyelidikan tentang diabetes. Banyak dataset perubatan termasuk jenis klasifikasi binari ini. Fikirkan sedikit tentang bagaimana pengkategorian seperti ini mungkin mengecualikan bahagian tertentu populasi daripada rawatan.
+
+Sekarang, muatkan data X dan y.
+
+> 🎓 Ingat, ini adalah pembelajaran terarah, dan kita memerlukan sasaran 'y' yang bernama.
+
+Dalam sel kod baru, muatkan dataset diabetes dengan memanggil `load_diabetes()`. Input `return_X_y=True` menandakan bahawa `X` akan menjadi matriks data, dan `y` akan menjadi sasaran regresi.
+
+1. Tambahkan beberapa arahan cetak untuk menunjukkan bentuk matriks data dan elemen pertamanya:
+
+ ```python
+ X, y = datasets.load_diabetes(return_X_y=True)
+ print(X.shape)
+ print(X[0])
+ ```
+
+ Apa yang anda dapat sebagai respons adalah tuple. Apa yang anda lakukan adalah menetapkan dua nilai pertama tuple kepada `X` dan `y` masing-masing. Ketahui lebih lanjut [tentang tuple](https://wikipedia.org/wiki/Tuple).
+
+ Anda boleh melihat bahawa data ini mempunyai 442 item yang dibentuk dalam array 10 elemen:
+
+ ```text
+ (442, 10)
+ [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076
+ -0.04340085 -0.00259226 0.01990842 -0.01764613]
+ ```
+
+ ✅ Fikirkan sedikit tentang hubungan antara data dan sasaran regresi. Regresi linear meramalkan hubungan antara ciri X dan pembolehubah sasaran y. Bolehkah anda mencari [sasaran](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) untuk dataset diabetes dalam dokumentasi? Apa yang dataset ini tunjukkan, memandangkan sasaran?
+
+2. Seterusnya, pilih sebahagian dataset ini untuk diplot dengan memilih lajur ke-3 dataset. Anda boleh melakukannya dengan menggunakan operator `:` untuk memilih semua baris, dan kemudian memilih lajur ke-3 menggunakan indeks (2). Anda juga boleh membentuk semula data menjadi array 2D - seperti yang diperlukan untuk plot - dengan menggunakan `reshape(n_rows, n_columns)`. Jika salah satu parameter adalah -1, dimensi yang sepadan dikira secara automatik.
+
+ ```python
+ X = X[:, 2]
+ X = X.reshape((-1,1))
+ ```
+
+ ✅ Pada bila-bila masa, cetak data untuk memeriksa bentuknya.
+
+3. Sekarang setelah anda mempunyai data yang siap untuk diplot, anda boleh melihat sama ada mesin dapat membantu menentukan pemisahan logik antara nombor dalam dataset ini. Untuk melakukan ini, anda perlu membahagikan kedua-dua data (X) dan sasaran (y) kepada set ujian dan latihan. Scikit-learn mempunyai cara yang mudah untuk melakukan ini; anda boleh membahagikan data ujian anda pada titik tertentu.
+
+ ```python
+ X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
+ ```
+
+4. Sekarang anda bersedia untuk melatih model anda! Muatkan model regresi linear dan latih dengan set latihan X dan y anda menggunakan `model.fit()`:
+
+ ```python
+ model = linear_model.LinearRegression()
+ model.fit(X_train, y_train)
+ ```
+
+ ✅ `model.fit()` adalah fungsi yang akan anda lihat dalam banyak pustaka ML seperti TensorFlow.
+
+5. Kemudian, buat ramalan menggunakan data ujian, dengan menggunakan fungsi `predict()`. Ini akan digunakan untuk melukis garis antara kumpulan data model.
+
+ ```python
+ y_pred = model.predict(X_test)
+ ```
+
+6. Sekarang tiba masanya untuk menunjukkan data dalam plot. Matplotlib adalah alat yang sangat berguna untuk tugas ini. Buat scatterplot semua data ujian X dan y, dan gunakan ramalan untuk melukis garis di tempat yang paling sesuai, antara kumpulan data model.
+
+ ```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()
+ ```
+
+ 
+✅ Fikirkan sedikit tentang apa yang sedang berlaku di sini. Garis lurus sedang melalui banyak titik kecil data, tetapi apa sebenarnya yang sedang dilakukan? Bolehkah anda melihat bagaimana anda sepatutnya dapat menggunakan garis ini untuk meramalkan di mana titik data baru yang belum dilihat sepatutnya sesuai dalam hubungan dengan paksi y plot? Cuba nyatakan dalam kata-kata kegunaan praktikal model ini.
+
+Tahniah, anda telah membina model regresi linear pertama anda, mencipta ramalan dengannya, dan memaparkannya dalam plot!
+
+---
+## 🚀Cabaran
+
+Plotkan pemboleh ubah yang berbeza daripada dataset ini. Petunjuk: edit baris ini: `X = X[:,2]`. Berdasarkan sasaran dataset ini, apakah yang anda dapat temui tentang perkembangan diabetes sebagai penyakit?
+
+## [Kuiz selepas kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Ulasan & Kajian Kendiri
+
+Dalam tutorial ini, anda bekerja dengan regresi linear mudah, bukannya regresi univariat atau regresi berganda. Baca sedikit tentang perbezaan antara kaedah-kaedah ini, atau lihat [video ini](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef).
+
+Baca lebih lanjut tentang konsep regresi dan fikirkan tentang jenis soalan yang boleh dijawab oleh teknik ini. Ambil [tutorial ini](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) untuk mendalami pemahaman anda.
+
+## Tugasan
+
+[Dataset yang berbeza](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/1-Tools/assignment.md b/translations/ms/2-Regression/1-Tools/assignment.md
new file mode 100644
index 00000000..3ace92d0
--- /dev/null
+++ b/translations/ms/2-Regression/1-Tools/assignment.md
@@ -0,0 +1,27 @@
+
+# Regresi dengan Scikit-learn
+
+## Arahan
+
+Lihat dataset [Linnerud](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) dalam Scikit-learn. Dataset ini mempunyai pelbagai [sasaran](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset): 'Ia terdiri daripada tiga pemboleh ubah senaman (data) dan tiga pemboleh ubah fisiologi (sasaran) yang dikumpulkan daripada dua puluh lelaki pertengahan umur di sebuah kelab kecergasan'.
+
+Dengan menggunakan kata-kata anda sendiri, terangkan cara untuk mencipta model Regresi yang boleh memplotkan hubungan antara ukuran pinggang dan jumlah sit-up yang dilakukan. Lakukan perkara yang sama untuk titik data lain dalam dataset ini.
+
+## Rubrik
+
+| Kriteria | Cemerlang | Memadai | Perlu Penambahbaikan |
+| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- |
+| Hantar perenggan deskriptif | Perenggan yang ditulis dengan baik dihantar | Beberapa ayat dihantar | Tiada penerangan diberikan |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/1-Tools/solution/Julia/README.md b/translations/ms/2-Regression/1-Tools/solution/Julia/README.md
new file mode 100644
index 00000000..4a663c77
--- /dev/null
+++ b/translations/ms/2-Regression/1-Tools/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/2-Data/README.md b/translations/ms/2-Regression/2-Data/README.md
new file mode 100644
index 00000000..3ec9c3d5
--- /dev/null
+++ b/translations/ms/2-Regression/2-Data/README.md
@@ -0,0 +1,226 @@
+
+# Bina model regresi menggunakan Scikit-learn: sediakan dan visualisasikan data
+
+
+
+Infografik oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+## [Kuiz sebelum kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/2-Data/solution/R/lesson_2.html)
+
+## Pengenalan
+
+Sekarang anda telah bersedia dengan alat yang diperlukan untuk mula membina model pembelajaran mesin menggunakan Scikit-learn, anda sudah bersedia untuk mula bertanya soalan kepada data anda. Semasa anda bekerja dengan data dan menerapkan penyelesaian ML, adalah sangat penting untuk memahami cara bertanya soalan yang betul untuk membuka potensi dataset anda dengan tepat.
+
+Dalam pelajaran ini, anda akan belajar:
+
+- Cara menyediakan data anda untuk pembinaan model.
+- Cara menggunakan Matplotlib untuk visualisasi data.
+
+## Bertanya soalan yang betul kepada data anda
+
+Soalan yang anda perlukan jawapannya akan menentukan jenis algoritma ML yang akan anda gunakan. Dan kualiti jawapan yang anda peroleh sangat bergantung pada sifat data anda.
+
+Lihat [data](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) yang disediakan untuk pelajaran ini. Anda boleh membuka fail .csv ini dalam VS Code. Sekilas pandang menunjukkan terdapat kekosongan dan campuran data string dan numerik. Terdapat juga kolum yang pelik dipanggil 'Package' di mana datanya adalah campuran antara 'sacks', 'bins' dan nilai lain. Data ini, sebenarnya, agak bersepah.
+
+[](https://youtu.be/5qGjczWTrDQ "ML untuk pemula - Cara Menganalisis dan Membersihkan Dataset")
+
+> 🎥 Klik imej di atas untuk video pendek yang menunjukkan cara menyediakan data untuk pelajaran ini.
+
+Sebenarnya, adalah tidak biasa untuk menerima dataset yang sepenuhnya siap digunakan untuk mencipta model ML secara langsung. Dalam pelajaran ini, anda akan belajar cara menyediakan dataset mentah menggunakan pustaka Python standard. Anda juga akan belajar pelbagai teknik untuk memvisualisasikan data.
+
+## Kajian kes: 'pasaran labu'
+
+Dalam folder ini, anda akan menemui fail .csv dalam folder root `data` yang dipanggil [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) yang mengandungi 1757 baris data tentang pasaran labu, disusun mengikut kumpulan berdasarkan bandar. Ini adalah data mentah yang diekstrak daripada [Laporan Standard Pasaran Terminal Tanaman Khas](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) yang diedarkan oleh Jabatan Pertanian Amerika Syarikat.
+
+### Menyediakan data
+
+Data ini adalah dalam domain awam. Ia boleh dimuat turun dalam banyak fail berasingan, mengikut bandar, dari laman web USDA. Untuk mengelakkan terlalu banyak fail berasingan, kami telah menggabungkan semua data bandar ke dalam satu spreadsheet, jadi kami telah _menyediakan_ data sedikit. Seterusnya, mari kita lihat lebih dekat data ini.
+
+### Data labu - kesimpulan awal
+
+Apa yang anda perhatikan tentang data ini? Anda sudah melihat bahawa terdapat campuran string, nombor, kekosongan dan nilai pelik yang perlu anda fahami.
+
+Soalan apa yang boleh anda tanyakan kepada data ini, menggunakan teknik Regresi? Bagaimana dengan "Meramalkan harga labu yang dijual pada bulan tertentu". Melihat semula data, terdapat beberapa perubahan yang perlu anda lakukan untuk mencipta struktur data yang diperlukan untuk tugas ini.
+
+## Latihan - analisis data labu
+
+Mari gunakan [Pandas](https://pandas.pydata.org/), (nama ini bermaksud `Python Data Analysis`) alat yang sangat berguna untuk membentuk data, untuk menganalisis dan menyediakan data labu ini.
+
+### Pertama, periksa tarikh yang hilang
+
+Anda perlu mengambil langkah untuk memeriksa tarikh yang hilang:
+
+1. Tukarkan tarikh kepada format bulan (ini adalah tarikh AS, jadi formatnya adalah `MM/DD/YYYY`).
+2. Ekstrak bulan ke kolum baru.
+
+Buka fail _notebook.ipynb_ dalam Visual Studio Code dan import spreadsheet ke dalam dataframe Pandas yang baru.
+
+1. Gunakan fungsi `head()` untuk melihat lima baris pertama.
+
+ ```python
+ import pandas as pd
+ pumpkins = pd.read_csv('../data/US-pumpkins.csv')
+ pumpkins.head()
+ ```
+
+ ✅ Fungsi apa yang akan anda gunakan untuk melihat lima baris terakhir?
+
+1. Periksa jika terdapat data yang hilang dalam dataframe semasa:
+
+ ```python
+ pumpkins.isnull().sum()
+ ```
+
+ Terdapat data yang hilang, tetapi mungkin ia tidak akan menjadi masalah untuk tugas ini.
+
+1. Untuk memudahkan dataframe anda bekerja, pilih hanya kolum yang anda perlukan, menggunakan fungsi `loc` yang mengekstrak dari dataframe asal sekumpulan baris (diberikan sebagai parameter pertama) dan kolum (diberikan sebagai parameter kedua). Ungkapan `:` dalam kes di bawah bermaksud "semua baris".
+
+ ```python
+ columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
+ pumpkins = pumpkins.loc[:, columns_to_select]
+ ```
+
+### Kedua, tentukan harga purata labu
+
+Fikirkan cara menentukan harga purata labu dalam bulan tertentu. Kolum apa yang akan anda pilih untuk tugas ini? Petunjuk: anda memerlukan 3 kolum.
+
+Penyelesaian: ambil purata kolum `Low Price` dan `High Price` untuk mengisi kolum Harga baru, dan tukarkan kolum Tarikh untuk hanya menunjukkan bulan. Nasib baik, menurut pemeriksaan di atas, tiada data yang hilang untuk tarikh atau harga.
+
+1. Untuk mengira purata, tambahkan kod berikut:
+
+ ```python
+ price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
+
+ month = pd.DatetimeIndex(pumpkins['Date']).month
+
+ ```
+
+ ✅ Anda bebas untuk mencetak sebarang data yang anda ingin periksa menggunakan `print(month)`.
+
+2. Sekarang, salin data yang telah ditukar ke dalam dataframe Pandas yang baru:
+
+ ```python
+ new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
+ ```
+
+ Mencetak dataframe anda akan menunjukkan dataset yang bersih dan kemas di mana anda boleh membina model regresi baru anda.
+
+### Tetapi tunggu! Ada sesuatu yang pelik di sini
+
+Jika anda melihat kolum `Package`, labu dijual dalam pelbagai konfigurasi. Ada yang dijual dalam ukuran '1 1/9 bushel', ada yang dalam ukuran '1/2 bushel', ada yang per labu, ada yang per pound, dan ada yang dalam kotak besar dengan lebar yang berbeza.
+
+> Labu nampaknya sangat sukar untuk ditimbang secara konsisten
+
+Menggali data asal, menarik bahawa apa-apa dengan `Unit of Sale` yang sama dengan 'EACH' atau 'PER BIN' juga mempunyai jenis `Package` per inci, per bin, atau 'each'. Labu nampaknya sangat sukar untuk ditimbang secara konsisten, jadi mari kita tapis mereka dengan memilih hanya labu dengan string 'bushel' dalam kolum `Package`.
+
+1. Tambahkan penapis di bahagian atas fail, di bawah import .csv awal:
+
+ ```python
+ pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
+ ```
+
+ Jika anda mencetak data sekarang, anda boleh melihat bahawa anda hanya mendapatkan sekitar 415 baris data yang mengandungi labu mengikut bushel.
+
+### Tetapi tunggu! Ada satu lagi perkara yang perlu dilakukan
+
+Adakah anda perasan bahawa jumlah bushel berbeza setiap baris? Anda perlu menormalkan harga supaya anda menunjukkan harga per bushel, jadi lakukan beberapa pengiraan untuk menyeragamkannya.
+
+1. Tambahkan baris ini selepas blok yang mencipta 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)
+ ```
+
+✅ Menurut [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), berat bushel bergantung pada jenis hasil, kerana ia adalah ukuran volum. "Bushel tomato, sebagai contoh, sepatutnya beratnya 56 paun... Daun dan sayur-sayuran mengambil lebih banyak ruang dengan berat yang lebih sedikit, jadi bushel bayam hanya 20 paun." Semuanya agak rumit! Mari kita tidak bersusah payah membuat penukaran bushel-ke-paun, dan sebaliknya harga mengikut bushel. Semua kajian tentang bushel labu ini, bagaimanapun, menunjukkan betapa pentingnya memahami sifat data anda!
+
+Sekarang, anda boleh menganalisis harga per unit berdasarkan ukuran bushel mereka. Jika anda mencetak data sekali lagi, anda boleh melihat bagaimana ia telah diseragamkan.
+
+✅ Adakah anda perasan bahawa labu yang dijual mengikut setengah bushel sangat mahal? Bolehkah anda mengetahui sebabnya? Petunjuk: labu kecil jauh lebih mahal daripada yang besar, mungkin kerana terdapat lebih banyak daripadanya per bushel, memandangkan ruang yang tidak digunakan yang diambil oleh satu labu pai besar yang berongga.
+
+## Strategi Visualisasi
+
+Sebahagian daripada peranan saintis data adalah untuk menunjukkan kualiti dan sifat data yang mereka kerjakan. Untuk melakukan ini, mereka sering mencipta visualisasi yang menarik, seperti plot, graf, dan carta, yang menunjukkan aspek data yang berbeza. Dengan cara ini, mereka dapat menunjukkan secara visual hubungan dan jurang yang sukar untuk ditemui.
+
+[](https://youtu.be/SbUkxH6IJo0 "ML untuk pemula - Cara Memvisualisasikan Data dengan Matplotlib")
+
+> 🎥 Klik imej di atas untuk video pendek yang menunjukkan cara memvisualisasikan data untuk pelajaran ini.
+
+Visualisasi juga boleh membantu menentukan teknik pembelajaran mesin yang paling sesuai untuk data. Plot taburan yang kelihatan mengikuti garis, sebagai contoh, menunjukkan bahawa data adalah calon yang baik untuk latihan regresi linear.
+
+Satu pustaka visualisasi data yang berfungsi dengan baik dalam Jupyter notebooks ialah [Matplotlib](https://matplotlib.org/) (yang juga anda lihat dalam pelajaran sebelumnya).
+
+> Dapatkan lebih banyak pengalaman dengan visualisasi data dalam [tutorial ini](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott).
+
+## Latihan - eksperimen dengan Matplotlib
+
+Cuba buat beberapa plot asas untuk memaparkan dataframe baru yang baru anda cipta. Apa yang akan ditunjukkan oleh plot garis asas?
+
+1. Import Matplotlib di bahagian atas fail, di bawah import Pandas:
+
+ ```python
+ import matplotlib.pyplot as plt
+ ```
+
+1. Jalankan semula keseluruhan notebook untuk menyegarkan.
+1. Di bahagian bawah notebook, tambahkan sel untuk plot data sebagai kotak:
+
+ ```python
+ price = new_pumpkins.Price
+ month = new_pumpkins.Month
+ plt.scatter(price, month)
+ plt.show()
+ ```
+
+ 
+
+ Adakah ini plot yang berguna? Adakah sesuatu mengenainya mengejutkan anda?
+
+ Ia tidak begitu berguna kerana ia hanya memaparkan data anda sebagai taburan titik dalam bulan tertentu.
+
+### Jadikannya berguna
+
+Untuk mendapatkan carta yang memaparkan data berguna, anda biasanya perlu mengelompokkan data dengan cara tertentu. Mari cuba buat plot di mana paksi y menunjukkan bulan dan data menunjukkan taburan data.
+
+1. Tambahkan sel untuk mencipta carta bar yang dikelompokkan:
+
+ ```python
+ new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
+ plt.ylabel("Pumpkin Price")
+ ```
+
+ 
+
+ Ini adalah visualisasi data yang lebih berguna! Ia nampaknya menunjukkan bahawa harga tertinggi untuk labu berlaku pada bulan September dan Oktober. Adakah itu memenuhi jangkaan anda? Mengapa atau mengapa tidak?
+
+---
+
+## 🚀Cabaran
+
+Terokai pelbagai jenis visualisasi yang ditawarkan oleh Matplotlib. Jenis mana yang paling sesuai untuk masalah regresi?
+
+## [Kuiz selepas kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Ulasan & Kajian Kendiri
+
+Lihat pelbagai cara untuk memvisualisasikan data. Buat senarai pustaka yang tersedia dan catatkan mana yang terbaik untuk jenis tugas tertentu, contohnya visualisasi 2D vs. visualisasi 3D. Apa yang anda temui?
+
+## Tugasan
+
+[Menjelajahi visualisasi](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/2-Data/assignment.md b/translations/ms/2-Regression/2-Data/assignment.md
new file mode 100644
index 00000000..d60d7a4b
--- /dev/null
+++ b/translations/ms/2-Regression/2-Data/assignment.md
@@ -0,0 +1,23 @@
+
+# Meneroka Visualisasi
+
+Terdapat beberapa perpustakaan yang tersedia untuk visualisasi data. Cipta beberapa visualisasi menggunakan data Labu dalam pelajaran ini dengan matplotlib dan seaborn dalam buku nota sampel. Perpustakaan mana yang lebih mudah digunakan?
+
+## Rubrik
+
+| Kriteria | Cemerlang | Memadai | Perlu Penambahbaikan |
+| -------- | --------- | -------- | -------------------- |
+| | Buku nota dihantar dengan dua penerokaan/visualisasi | Buku nota dihantar dengan satu penerokaan/visualisasi | Buku nota tidak dihantar |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/2-Data/solution/Julia/README.md b/translations/ms/2-Regression/2-Data/solution/Julia/README.md
new file mode 100644
index 00000000..c633e9c6
--- /dev/null
+++ b/translations/ms/2-Regression/2-Data/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/3-Linear/README.md b/translations/ms/2-Regression/3-Linear/README.md
new file mode 100644
index 00000000..4dacbd90
--- /dev/null
+++ b/translations/ms/2-Regression/3-Linear/README.md
@@ -0,0 +1,380 @@
+
+# Bina model regresi menggunakan Scikit-learn: empat cara regresi
+
+
+> Infografik oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+## [Kuiz pra-pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### Pengenalan
+
+Setakat ini, anda telah meneroka apa itu regresi dengan data sampel yang dikumpulkan daripada dataset harga labu yang akan kita gunakan sepanjang pelajaran ini. Anda juga telah memvisualisasikannya menggunakan Matplotlib.
+
+Kini anda bersedia untuk mendalami regresi untuk ML. Walaupun visualisasi membolehkan anda memahami data, kekuatan sebenar Pembelajaran Mesin datang daripada _melatih model_. Model dilatih menggunakan data sejarah untuk secara automatik menangkap pergantungan data, dan ia membolehkan anda meramalkan hasil untuk data baharu yang belum pernah dilihat oleh model.
+
+Dalam pelajaran ini, anda akan mempelajari lebih lanjut tentang dua jenis regresi: _regresi linear asas_ dan _regresi polinomial_, bersama-sama dengan beberapa matematik yang mendasari teknik ini. Model-model ini akan membolehkan kita meramalkan harga labu bergantung pada data input yang berbeza.
+
+[](https://youtu.be/CRxFT8oTDMg "ML untuk pemula - Memahami Regresi Linear")
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai regresi linear.
+
+> Sepanjang kurikulum ini, kami mengandaikan pengetahuan matematik yang minimum, dan berusaha untuk menjadikannya mudah diakses oleh pelajar dari bidang lain, jadi perhatikan nota, 🧮 panggilan, diagram, dan alat pembelajaran lain untuk membantu pemahaman.
+
+### Prasyarat
+
+Anda seharusnya sudah biasa dengan struktur data labu yang sedang kita kaji. Anda boleh menemukannya telah dimuatkan dan dibersihkan dalam fail _notebook.ipynb_ pelajaran ini. Dalam fail tersebut, harga labu dipaparkan per gantang dalam bingkai data baharu. Pastikan anda boleh menjalankan notebook ini dalam kernel di Visual Studio Code.
+
+### Persediaan
+
+Sebagai peringatan, anda memuatkan data ini untuk bertanya soalan mengenainya.
+
+- Bilakah masa terbaik untuk membeli labu?
+- Berapakah harga yang boleh saya jangkakan untuk satu kotak labu mini?
+- Haruskah saya membelinya dalam bakul setengah gantang atau dalam kotak 1 1/9 gantang?
+Mari kita teruskan menyelidiki data ini.
+
+Dalam pelajaran sebelumnya, anda telah mencipta bingkai data Pandas dan mengisinya dengan sebahagian daripada dataset asal, menstandardkan harga mengikut gantang. Dengan melakukan itu, bagaimanapun, anda hanya dapat mengumpulkan kira-kira 400 titik data dan hanya untuk bulan-bulan musim luruh.
+
+Lihat data yang telah dimuatkan dalam notebook yang disertakan dengan pelajaran ini. Data telah dimuatkan dan plot penyebaran awal telah dibuat untuk menunjukkan data bulan. Mungkin kita boleh mendapatkan sedikit lebih banyak perincian tentang sifat data dengan membersihkannya lebih lanjut.
+
+## Garis regresi linear
+
+Seperti yang anda pelajari dalam Pelajaran 1, tujuan latihan regresi linear adalah untuk dapat memplot garis untuk:
+
+- **Menunjukkan hubungan pemboleh ubah**. Menunjukkan hubungan antara pemboleh ubah
+- **Membuat ramalan**. Membuat ramalan yang tepat tentang di mana titik data baharu akan berada dalam hubungan dengan garis tersebut.
+
+Adalah biasa bagi **Regresi Kuadrat Terkecil** untuk melukis jenis garis ini. Istilah 'kuadrat terkecil' bermaksud bahawa semua titik data di sekitar garis regresi dikwadratkan dan kemudian dijumlahkan. Sebaiknya, jumlah akhir itu sekecil mungkin, kerana kita mahukan bilangan kesalahan yang rendah, atau `kuadrat terkecil`.
+
+Kita melakukan ini kerana kita ingin memodelkan garis yang mempunyai jarak kumulatif paling kecil dari semua titik data kita. Kita juga mengkwadratkan istilah sebelum menjumlahkannya kerana kita lebih peduli dengan magnitudnya daripada arahnya.
+
+> **🧮 Tunjukkan matematiknya**
+>
+> Garis ini, yang disebut _garis terbaik_, dapat dinyatakan dengan [persamaan](https://en.wikipedia.org/wiki/Simple_linear_regression):
+>
+> ```
+> Y = a + bX
+> ```
+>
+> `X` adalah 'pemboleh ubah penjelasan'. `Y` adalah 'pemboleh ubah bergantung'. Kecerunan garis adalah `b` dan `a` adalah pemintas-y, yang merujuk kepada nilai `Y` apabila `X = 0`.
+>
+>
+>
+> Pertama, kira kecerunan `b`. Infografik oleh [Jen Looper](https://twitter.com/jenlooper)
+>
+> Dalam kata lain, dan merujuk kepada soalan asal data labu kita: "ramalkan harga labu per gantang mengikut bulan", `X` akan merujuk kepada harga dan `Y` akan merujuk kepada bulan jualan.
+>
+>
+>
+> Kira nilai Y. Jika anda membayar sekitar $4, itu mesti bulan April! Infografik oleh [Jen Looper](https://twitter.com/jenlooper)
+>
+> Matematik yang mengira garis mesti menunjukkan kecerunan garis, yang juga bergantung pada pemintas, atau di mana `Y` terletak apabila `X = 0`.
+>
+> Anda boleh melihat kaedah pengiraan untuk nilai-nilai ini di laman web [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Juga lawati [kalkulator Kuadrat Terkecil](https://www.mathsisfun.com/data/least-squares-calculator.html) untuk melihat bagaimana nilai-nilai angka mempengaruhi garis.
+
+## Korelasi
+
+Satu lagi istilah yang perlu difahami ialah **Pekali Korelasi** antara pemboleh ubah X dan Y yang diberikan. Menggunakan plot penyebaran, anda boleh dengan cepat memvisualisasikan pekali ini. Plot dengan titik data yang tersebar dalam garis rapi mempunyai korelasi tinggi, tetapi plot dengan titik data yang tersebar di mana-mana antara X dan Y mempunyai korelasi rendah.
+
+Model regresi linear yang baik adalah model yang mempunyai Pekali Korelasi tinggi (lebih dekat kepada 1 daripada 0) menggunakan kaedah Regresi Kuadrat Terkecil dengan garis regresi.
+
+✅ Jalankan notebook yang disertakan dengan pelajaran ini dan lihat plot penyebaran Bulan ke Harga. Adakah data yang mengaitkan Bulan ke Harga untuk jualan labu kelihatan mempunyai korelasi tinggi atau rendah, menurut tafsiran visual anda terhadap plot penyebaran? Adakah itu berubah jika anda menggunakan ukuran yang lebih terperinci daripada `Bulan`, contohnya *hari dalam tahun* (iaitu bilangan hari sejak awal tahun)?
+
+Dalam kod di bawah, kita akan mengandaikan bahawa kita telah membersihkan data, dan memperoleh bingkai data yang disebut `new_pumpkins`, serupa dengan yang berikut:
+
+ID | Bulan | HariDalamTahun | Jenis | Bandar | Pakej | Harga Rendah | Harga Tinggi | Harga
+---|-------|----------------|-------|--------|-------|--------------|--------------|------
+70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
+
+> Kod untuk membersihkan data tersedia dalam [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Kami telah melakukan langkah pembersihan yang sama seperti dalam pelajaran sebelumnya, dan telah mengira lajur `HariDalamTahun` menggunakan ekspresi berikut:
+
+```python
+day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
+```
+
+Sekarang setelah anda memahami matematik di sebalik regresi linear, mari kita buat model Regresi untuk melihat sama ada kita boleh meramalkan pakej labu mana yang akan mempunyai harga labu terbaik. Seseorang yang membeli labu untuk ladang labu percutian mungkin mahukan maklumat ini untuk mengoptimumkan pembelian pakej labu untuk ladang tersebut.
+
+## Mencari Korelasi
+
+[](https://youtu.be/uoRq-lW2eQo "ML untuk pemula - Mencari Korelasi: Kunci kepada Regresi Linear")
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai korelasi.
+
+Daripada pelajaran sebelumnya, anda mungkin telah melihat bahawa harga purata untuk bulan-bulan yang berbeza kelihatan seperti ini:
+
+
+
+Ini menunjukkan bahawa mungkin terdapat beberapa korelasi, dan kita boleh mencuba melatih model regresi linear untuk meramalkan hubungan antara `Bulan` dan `Harga`, atau antara `HariDalamTahun` dan `Harga`. Berikut adalah plot penyebaran yang menunjukkan hubungan yang terakhir:
+
+
+
+Mari kita lihat sama ada terdapat korelasi menggunakan fungsi `corr`:
+
+```python
+print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
+print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
+```
+
+Nampaknya korelasi agak kecil, -0.15 mengikut `Bulan` dan -0.17 mengikut `HariDalamTahun`, tetapi mungkin terdapat hubungan penting yang lain. Nampaknya terdapat kelompok harga yang berbeza yang sesuai dengan jenis labu yang berbeza. Untuk mengesahkan hipotesis ini, mari kita plot setiap kategori labu menggunakan warna yang berbeza. Dengan memberikan parameter `ax` kepada fungsi plot `scatter`, kita boleh memplot semua titik pada graf yang sama:
+
+```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)
+```
+
+
+
+Penyelidikan kita menunjukkan bahawa jenis labu mempunyai lebih banyak kesan terhadap harga keseluruhan daripada tarikh jualan sebenar. Kita boleh melihat ini dengan graf bar:
+
+```python
+new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
+```
+
+
+
+Mari kita fokus buat sementara waktu hanya pada satu jenis labu, 'pie type', dan lihat kesan tarikh terhadap harga:
+
+```python
+pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
+pie_pumpkins.plot.scatter('DayOfYear','Price')
+```
+
+
+Jika kita kini mengira korelasi antara `Harga` dan `HariDalamTahun` menggunakan fungsi `corr`, kita akan mendapat sesuatu seperti `-0.27` - yang bermaksud bahawa melatih model ramalan masuk akal.
+
+> Sebelum melatih model regresi linear, adalah penting untuk memastikan data kita bersih. Regresi linear tidak berfungsi dengan baik dengan nilai yang hilang, oleh itu masuk akal untuk membuang semua sel kosong:
+
+```python
+pie_pumpkins.dropna(inplace=True)
+pie_pumpkins.info()
+```
+
+Pendekatan lain adalah dengan mengisi nilai kosong tersebut dengan nilai purata dari lajur yang sesuai.
+
+## Regresi Linear Mudah
+
+[](https://youtu.be/e4c_UP2fSjg "ML untuk pemula - Regresi Linear dan Polinomial menggunakan Scikit-learn")
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai regresi linear dan polinomial.
+
+Untuk melatih model Regresi Linear kita, kita akan menggunakan perpustakaan **Scikit-learn**.
+
+```python
+from sklearn.linear_model import LinearRegression
+from sklearn.metrics import mean_squared_error
+from sklearn.model_selection import train_test_split
+```
+
+Kita mulakan dengan memisahkan nilai input (ciri) dan output yang dijangkakan (label) ke dalam array numpy yang berasingan:
+
+```python
+X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
+y = pie_pumpkins['Price']
+```
+
+> Perhatikan bahawa kita perlu melakukan `reshape` pada data input agar pakej Regresi Linear memahaminya dengan betul. Regresi Linear mengharapkan array 2D sebagai input, di mana setiap baris array sesuai dengan vektor ciri input. Dalam kes kita, kerana kita hanya mempunyai satu input - kita memerlukan array dengan bentuk N×1, di mana N adalah saiz dataset.
+
+Kemudian, kita perlu membahagikan data kepada dataset latihan dan ujian, supaya kita boleh mengesahkan model kita selepas latihan:
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
+```
+
+Akhirnya, melatih model Regresi Linear sebenar hanya memerlukan dua baris kod. Kita mendefinisikan objek `LinearRegression`, dan melatihnya dengan data kita menggunakan kaedah `fit`:
+
+```python
+lin_reg = LinearRegression()
+lin_reg.fit(X_train,y_train)
+```
+
+Objek `LinearRegression` selepas `fit`-ting mengandungi semua pekali regresi, yang boleh diakses menggunakan sifat `.coef_`. Dalam kes kita, hanya ada satu pekali, yang seharusnya sekitar `-0.017`. Ini bermaksud bahawa harga nampaknya menurun sedikit dengan masa, tetapi tidak terlalu banyak, sekitar 2 sen sehari. Kita juga boleh mengakses titik persilangan regresi dengan paksi Y menggunakan `lin_reg.intercept_` - ia akan sekitar `21` dalam kes kita, menunjukkan harga pada awal tahun.
+
+Untuk melihat sejauh mana ketepatan model kita, kita boleh meramalkan harga pada dataset ujian, dan kemudian mengukur sejauh mana ramalan kita mendekati nilai yang dijangkakan. Ini boleh dilakukan menggunakan metrik ralat kuadrat purata (MSE), yang merupakan purata semua perbezaan kuadrat antara nilai yang dijangkakan dan yang diramalkan.
+
+```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}%)')
+```
+Kesalahan kita nampaknya berkisar pada 2 titik, iaitu ~17%. Tidak begitu baik. Satu lagi penunjuk kualiti model ialah **koefisien penentuan**, yang boleh diperoleh seperti ini:
+
+```python
+score = lin_reg.score(X_train,y_train)
+print('Model determination: ', score)
+```
+Jika nilainya 0, ini bermakna model tidak mengambil kira data input, dan bertindak sebagai *peramal linear paling buruk*, iaitu hanya nilai purata hasil. Nilai 1 bermakna kita dapat meramal semua output yang dijangka dengan sempurna. Dalam kes kita, koefisien adalah sekitar 0.06, yang agak rendah.
+
+Kita juga boleh memplot data ujian bersama dengan garis regresi untuk melihat dengan lebih jelas bagaimana regresi berfungsi dalam kes kita:
+
+```python
+plt.scatter(X_test,y_test)
+plt.plot(X_test,pred)
+```
+
+
+
+## Regresi Polinomial
+
+Satu lagi jenis Regresi Linear ialah Regresi Polinomial. Walaupun kadangkala terdapat hubungan linear antara pemboleh ubah - semakin besar labu dalam isi padu, semakin tinggi harganya - kadangkala hubungan ini tidak boleh diplot sebagai satah atau garis lurus.
+
+✅ Berikut adalah [beberapa contoh lagi](https://online.stat.psu.edu/stat501/lesson/9/9.8) data yang boleh menggunakan Regresi Polinomial.
+
+Lihat semula hubungan antara Tarikh dan Harga. Adakah scatterplot ini kelihatan seperti ia semestinya dianalisis oleh garis lurus? Bukankah harga boleh berubah-ubah? Dalam kes ini, anda boleh mencuba regresi polinomial.
+
+✅ Polinomial adalah ekspresi matematik yang mungkin terdiri daripada satu atau lebih pemboleh ubah dan koefisien.
+
+Regresi polinomial mencipta garis melengkung untuk lebih sesuai dengan data tidak linear. Dalam kes kita, jika kita memasukkan pemboleh ubah `DayOfYear` kuasa dua ke dalam data input, kita sepatutnya dapat menyesuaikan data kita dengan lengkung parabola, yang akan mempunyai minimum pada titik tertentu dalam tahun tersebut.
+
+Scikit-learn termasuk [API pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) yang berguna untuk menggabungkan pelbagai langkah pemprosesan data bersama-sama. **Pipeline** ialah rangkaian **estimators**. Dalam kes kita, kita akan mencipta pipeline yang pertama menambah ciri polinomial kepada model kita, dan kemudian melatih regresi:
+
+```python
+from sklearn.preprocessing import PolynomialFeatures
+from sklearn.pipeline import make_pipeline
+
+pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
+
+pipeline.fit(X_train,y_train)
+```
+
+Menggunakan `PolynomialFeatures(2)` bermakna kita akan memasukkan semua polinomial darjah kedua daripada data input. Dalam kes kita, ini hanya bermakna `DayOfYear`2, tetapi dengan dua pemboleh ubah input X dan Y, ini akan menambah X2, XY dan Y2. Kita juga boleh menggunakan polinomial darjah lebih tinggi jika kita mahu.
+
+Pipeline boleh digunakan dengan cara yang sama seperti objek `LinearRegression` asal, iaitu kita boleh `fit` pipeline, dan kemudian menggunakan `predict` untuk mendapatkan hasil ramalan. Berikut adalah graf yang menunjukkan data ujian, dan lengkung anggaran:
+
+
+
+Menggunakan Regresi Polinomial, kita boleh mendapatkan MSE yang sedikit lebih rendah dan penentuan yang lebih tinggi, tetapi tidak secara signifikan. Kita perlu mengambil kira ciri-ciri lain!
+
+> Anda boleh melihat bahawa harga labu paling rendah diperhatikan sekitar Halloween. Bagaimana anda boleh menjelaskan ini?
+
+🎃 Tahniah, anda baru sahaja mencipta model yang boleh membantu meramal harga labu pai. Anda mungkin boleh mengulangi prosedur yang sama untuk semua jenis labu, tetapi itu akan menjadi membosankan. Mari kita belajar sekarang bagaimana mengambil kira jenis labu dalam model kita!
+
+## Ciri Kategori
+
+Dalam dunia ideal, kita mahu dapat meramal harga untuk pelbagai jenis labu menggunakan model yang sama. Walau bagaimanapun, lajur `Variety` agak berbeza daripada lajur seperti `Month`, kerana ia mengandungi nilai bukan numerik. Lajur seperti ini dipanggil **kategori**.
+
+[](https://youtu.be/DYGliioIAE0 "ML untuk pemula - Ramalan Ciri Kategori dengan Regresi Linear")
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai penggunaan ciri kategori.
+
+Di sini anda boleh melihat bagaimana harga purata bergantung pada jenis:
+
+
+
+Untuk mengambil kira jenis, kita perlu menukarnya kepada bentuk numerik terlebih dahulu, atau **encode**. Terdapat beberapa cara kita boleh melakukannya:
+
+* **Pengekodan numerik** yang mudah akan membina jadual pelbagai jenis, dan kemudian menggantikan nama jenis dengan indeks dalam jadual tersebut. Ini bukan idea terbaik untuk regresi linear, kerana regresi linear mengambil nilai numerik sebenar indeks, dan menambahnya kepada hasil, dengan mendarabkan dengan beberapa koefisien. Dalam kes kita, hubungan antara nombor indeks dan harga jelas tidak linear, walaupun kita memastikan bahawa indeks diatur dalam cara tertentu.
+* **Pengekodan one-hot** akan menggantikan lajur `Variety` dengan 4 lajur berbeza, satu untuk setiap jenis. Setiap lajur akan mengandungi `1` jika baris yang sepadan adalah daripada jenis tertentu, dan `0` jika tidak. Ini bermakna akan ada empat koefisien dalam regresi linear, satu untuk setiap jenis labu, yang bertanggungjawab untuk "harga permulaan" (atau lebih tepat "harga tambahan") untuk jenis tertentu.
+
+Kod di bawah menunjukkan bagaimana kita boleh melakukan pengekodan one-hot untuk jenis:
+
+```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
+
+Untuk melatih regresi linear menggunakan jenis yang telah dikodkan one-hot sebagai input, kita hanya perlu memulakan data `X` dan `y` dengan betul:
+
+```python
+X = pd.get_dummies(new_pumpkins['Variety'])
+y = new_pumpkins['Price']
+```
+
+Selebihnya kod adalah sama seperti yang kita gunakan di atas untuk melatih Regresi Linear. Jika anda mencubanya, anda akan melihat bahawa ralat kuasa dua min adalah hampir sama, tetapi kita mendapat koefisien penentuan yang jauh lebih tinggi (~77%). Untuk mendapatkan ramalan yang lebih tepat, kita boleh mengambil kira lebih banyak ciri kategori, serta ciri numerik seperti `Month` atau `DayOfYear`. Untuk mendapatkan satu array besar ciri-ciri, kita boleh menggunakan `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']
+```
+
+Di sini kita juga mengambil kira `City` dan jenis `Package`, yang memberikan kita MSE 2.84 (10%), dan penentuan 0.94!
+
+## Menggabungkan semuanya
+
+Untuk mencipta model terbaik, kita boleh menggunakan data gabungan (kategori yang dikodkan one-hot + numerik) daripada contoh di atas bersama dengan Regresi Polinomial. Berikut adalah kod lengkap untuk kemudahan anda:
+
+```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)
+```
+
+Ini sepatutnya memberikan kita koefisien penentuan terbaik hampir 97%, dan MSE=2.23 (~8% ralat ramalan).
+
+| Model | MSE | Penentuan |
+|-------|-----|-----------|
+| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
+| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
+| `Variety` Linear | 5.24 (19.7%) | 0.77 |
+| Semua ciri Linear | 2.84 (10.5%) | 0.94 |
+| Semua ciri Polynomial | 2.23 (8.25%) | 0.97 |
+
+🏆 Syabas! Anda telah mencipta empat model Regresi dalam satu pelajaran, dan meningkatkan kualiti model kepada 97%. Dalam bahagian terakhir mengenai Regresi, anda akan belajar tentang Regresi Logistik untuk menentukan kategori.
+
+---
+## 🚀Cabaran
+
+Uji beberapa pemboleh ubah berbeza dalam notebook ini untuk melihat bagaimana korelasi berkait dengan ketepatan model.
+
+## [Kuiz selepas kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Kajian & Pembelajaran Kendiri
+
+Dalam pelajaran ini kita belajar tentang Regresi Linear. Terdapat jenis Regresi lain yang penting. Baca tentang teknik Stepwise, Ridge, Lasso dan Elasticnet. Kursus yang baik untuk belajar lebih lanjut ialah [Kursus Pembelajaran Statistik Stanford](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
+
+## Tugasan
+
+[Bina Model](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/3-Linear/assignment.md b/translations/ms/2-Regression/3-Linear/assignment.md
new file mode 100644
index 00000000..1c77891d
--- /dev/null
+++ b/translations/ms/2-Regression/3-Linear/assignment.md
@@ -0,0 +1,25 @@
+
+# Membina Model Regresi
+
+## Arahan
+
+Dalam pelajaran ini, anda telah ditunjukkan cara membina model menggunakan Regresi Linear dan Regresi Polinomial. Berdasarkan pengetahuan ini, cari satu set data atau gunakan salah satu set terbina dalam Scikit-learn untuk membina model baharu. Terangkan dalam buku nota anda mengapa anda memilih teknik tersebut, dan tunjukkan ketepatan model anda. Jika ia tidak tepat, terangkan sebabnya.
+
+## Rubrik
+
+| Kriteria | Cemerlang | Memadai | Perlu Penambahbaikan |
+| -------- | ------------------------------------------------------------ | -------------------------- | ------------------------------- |
+| | menyampaikan buku nota lengkap dengan penyelesaian yang didokumentasikan dengan baik | penyelesaian tidak lengkap | penyelesaian mempunyai kelemahan atau pepijat |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/3-Linear/solution/Julia/README.md b/translations/ms/2-Regression/3-Linear/solution/Julia/README.md
new file mode 100644
index 00000000..26d05ff1
--- /dev/null
+++ b/translations/ms/2-Regression/3-Linear/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/4-Logistic/README.md b/translations/ms/2-Regression/4-Logistic/README.md
new file mode 100644
index 00000000..85a5c235
--- /dev/null
+++ b/translations/ms/2-Regression/4-Logistic/README.md
@@ -0,0 +1,408 @@
+
+# Regresi Logistik untuk Meramal Kategori
+
+
+
+## [Kuiz Pra-Pelajaran](https://ff-quizzes.netlify.app/en/ml/)
+
+> ### [Pelajaran ini tersedia dalam R!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html)
+
+## Pengenalan
+
+Dalam pelajaran terakhir mengenai Regresi, salah satu teknik asas _klasik_ ML, kita akan melihat Regresi Logistik. Anda boleh menggunakan teknik ini untuk mengenal pasti pola bagi meramal kategori binari. Adakah gula-gula ini coklat atau tidak? Adakah penyakit ini berjangkit atau tidak? Adakah pelanggan ini akan memilih produk ini atau tidak?
+
+Dalam pelajaran ini, anda akan belajar:
+
+- Perpustakaan baru untuk visualisasi data
+- Teknik untuk regresi logistik
+
+✅ Tingkatkan pemahaman anda tentang bekerja dengan jenis regresi ini dalam [modul pembelajaran ini](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott)
+
+## Prasyarat
+
+Setelah bekerja dengan data labu, kita kini cukup biasa dengannya untuk menyedari bahawa terdapat satu kategori binari yang boleh kita gunakan: `Color`.
+
+Mari bina model regresi logistik untuk meramal, berdasarkan beberapa pemboleh ubah, _warna labu yang mungkin_ (oren 🎃 atau putih 👻).
+
+> Mengapa kita bercakap tentang klasifikasi binari dalam pelajaran mengenai regresi? Hanya untuk kemudahan linguistik, kerana regresi logistik adalah [sebenarnya kaedah klasifikasi](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), walaupun berasaskan linear. Ketahui cara lain untuk mengklasifikasikan data dalam kumpulan pelajaran seterusnya.
+
+## Tentukan Soalan
+
+Untuk tujuan kita, kita akan menyatakannya sebagai binari: 'Putih' atau 'Bukan Putih'. Terdapat juga kategori 'berjalur' dalam dataset kita tetapi terdapat sedikit contoh, jadi kita tidak akan menggunakannya. Ia akan hilang apabila kita membuang nilai null daripada dataset, bagaimanapun.
+
+> 🎃 Fakta menarik, kita kadang-kadang memanggil labu putih sebagai labu 'hantu'. Ia tidak mudah untuk diukir, jadi ia tidak sepopular labu oren tetapi ia kelihatan menarik! Jadi kita juga boleh merumuskan semula soalan kita sebagai: 'Hantu' atau 'Bukan Hantu'. 👻
+
+## Mengenai Regresi Logistik
+
+Regresi logistik berbeza daripada regresi linear, yang telah anda pelajari sebelum ini, dalam beberapa cara penting.
+
+[](https://youtu.be/KpeCT6nEpBY "ML untuk pemula - Memahami Regresi Logistik untuk Klasifikasi Pembelajaran Mesin")
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai regresi logistik.
+
+### Klasifikasi Binari
+
+Regresi logistik tidak menawarkan ciri yang sama seperti regresi linear. Yang pertama menawarkan ramalan tentang kategori binari ("putih atau bukan putih") manakala yang kedua mampu meramal nilai berterusan, contohnya berdasarkan asal labu dan masa penuaian, _berapa banyak harganya akan meningkat_.
+
+
+> Infografik oleh [Dasani Madipalli](https://twitter.com/dasani_decoded)
+
+### Klasifikasi Lain
+
+Terdapat jenis regresi logistik lain, termasuk multinomial dan ordinal:
+
+- **Multinomial**, yang melibatkan lebih daripada satu kategori - "Oren, Putih, dan Berjalur".
+- **Ordinal**, yang melibatkan kategori yang diatur, berguna jika kita ingin mengatur hasil kita secara logik, seperti labu kita yang diatur mengikut bilangan saiz terhingga (mini, sm, med, lg, xl, xxl).
+
+
+
+### Pemboleh ubah TIDAK Perlu Berkorelasi
+
+Ingat bagaimana regresi linear berfungsi lebih baik dengan pemboleh ubah yang lebih berkorelasi? Regresi logistik adalah sebaliknya - pemboleh ubah tidak perlu sejajar. Ini berfungsi untuk data ini yang mempunyai korelasi yang agak lemah.
+
+### Anda Memerlukan Banyak Data Bersih
+
+Regresi logistik akan memberikan hasil yang lebih tepat jika anda menggunakan lebih banyak data; dataset kecil kita tidak optimum untuk tugas ini, jadi ingatlah perkara ini.
+
+[](https://youtu.be/B2X4H9vcXTs "ML untuk pemula - Analisis dan Penyediaan Data untuk Regresi Logistik")
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai penyediaan data untuk regresi linear
+
+✅ Fikirkan jenis data yang sesuai untuk regresi logistik
+
+## Latihan - kemas kini data
+
+Mula-mula, bersihkan data sedikit, buang nilai null dan pilih hanya beberapa lajur:
+
+1. Tambahkan kod berikut:
+
+ ```python
+
+ columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
+ pumpkins = full_pumpkins.loc[:, columns_to_select]
+
+ pumpkins.dropna(inplace=True)
+ ```
+
+ Anda sentiasa boleh melihat dataframe baru anda:
+
+ ```python
+ pumpkins.info
+ ```
+
+### Visualisasi - plot kategori
+
+Pada masa ini anda telah memuatkan [notebook permulaan](../../../../2-Regression/4-Logistic/notebook.ipynb) dengan data labu sekali lagi dan membersihkannya untuk mengekalkan dataset yang mengandungi beberapa pemboleh ubah, termasuk `Color`. Mari visualisasikan dataframe dalam notebook menggunakan perpustakaan yang berbeza: [Seaborn](https://seaborn.pydata.org/index.html), yang dibina di atas Matplotlib yang kita gunakan sebelum ini.
+
+Seaborn menawarkan beberapa cara menarik untuk memvisualisasikan data anda. Sebagai contoh, anda boleh membandingkan taburan data untuk setiap `Variety` dan `Color` dalam plot kategori.
+
+1. Buat plot sedemikian dengan menggunakan fungsi `catplot`, menggunakan data labu kita `pumpkins`, dan menentukan pemetaan warna untuk setiap kategori labu (oren atau putih):
+
+ ```python
+ import seaborn as sns
+
+ palette = {
+ 'ORANGE': 'orange',
+ 'WHITE': 'wheat',
+ }
+
+ sns.catplot(
+ data=pumpkins, y="Variety", hue="Color", kind="count",
+ palette=palette,
+ )
+ ```
+
+ 
+
+ Dengan memerhatikan data, anda boleh melihat bagaimana data Color berkaitan dengan Variety.
+
+ ✅ Berdasarkan plot kategori ini, apakah beberapa penerokaan menarik yang boleh anda bayangkan?
+
+### Pra-pemprosesan data: pengekodan ciri dan label
+Dataset labu kita mengandungi nilai string untuk semua lajur. Bekerja dengan data kategori adalah intuitif untuk manusia tetapi tidak untuk mesin. Algoritma pembelajaran mesin berfungsi dengan baik dengan nombor. Itulah sebabnya pengekodan adalah langkah yang sangat penting dalam fasa pra-pemprosesan data, kerana ia membolehkan kita menukar data kategori kepada data berangka, tanpa kehilangan sebarang maklumat. Pengekodan yang baik membawa kepada pembinaan model yang baik.
+
+Untuk pengekodan ciri terdapat dua jenis pengekod utama:
+
+1. Pengekod ordinal: sesuai untuk pemboleh ubah ordinal, iaitu pemboleh ubah kategori di mana datanya mengikuti susunan logik, seperti lajur `Item Size` dalam dataset kita. Ia mencipta pemetaan supaya setiap kategori diwakili oleh nombor, yang merupakan susunan kategori dalam lajur.
+
+ ```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. Pengekod kategori: sesuai untuk pemboleh ubah nominal, iaitu pemboleh ubah kategori di mana datanya tidak mengikuti susunan logik, seperti semua ciri yang berbeza daripada `Item Size` dalam dataset kita. Ia adalah pengekodan satu-haba, yang bermaksud bahawa setiap kategori diwakili oleh lajur binari: pemboleh ubah yang dikodkan adalah sama dengan 1 jika labu tergolong dalam Variety itu dan 0 sebaliknya.
+
+ ```python
+ from sklearn.preprocessing import OneHotEncoder
+
+ categorical_features = ['City Name', 'Package', 'Variety', 'Origin']
+ categorical_encoder = OneHotEncoder(sparse_output=False)
+ ```
+Kemudian, `ColumnTransformer` digunakan untuk menggabungkan beberapa pengekod ke dalam satu langkah dan menerapkannya pada lajur yang sesuai.
+
+```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)
+```
+Sebaliknya, untuk mengekod label, kita menggunakan kelas `LabelEncoder` scikit-learn, yang merupakan kelas utiliti untuk membantu menormalkan label supaya ia hanya mengandungi nilai antara 0 dan n_classes-1 (di sini, 0 dan 1).
+
+```python
+ from sklearn.preprocessing import LabelEncoder
+
+ label_encoder = LabelEncoder()
+ encoded_label = label_encoder.fit_transform(pumpkins['Color'])
+```
+Setelah kita mengekod ciri dan label, kita boleh menggabungkannya ke dalam dataframe baru `encoded_pumpkins`.
+
+```python
+ encoded_pumpkins = encoded_features.assign(Color=encoded_label)
+```
+✅ Apakah kelebihan menggunakan pengekod ordinal untuk lajur `Item Size`?
+
+### Analisis hubungan antara pemboleh ubah
+
+Sekarang kita telah memproses data kita, kita boleh menganalisis hubungan antara ciri dan label untuk mendapatkan idea tentang sejauh mana model akan dapat meramal label berdasarkan ciri.
+Cara terbaik untuk melakukan analisis jenis ini adalah dengan memplotkan data. Kita akan menggunakan semula fungsi `catplot` Seaborn, untuk memvisualisasikan hubungan antara `Item Size`, `Variety` dan `Color` dalam plot kategori. Untuk memplotkan data dengan lebih baik kita akan menggunakan lajur `Item Size` yang dikodkan dan lajur `Variety` yang tidak dikodkan.
+
+```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}")
+```
+
+
+### Gunakan plot swarm
+
+Oleh kerana Color adalah kategori binari (Putih atau Tidak), ia memerlukan 'pendekatan [khusus](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) untuk visualisasi'. Terdapat cara lain untuk memvisualisasikan hubungan kategori ini dengan pemboleh ubah lain.
+
+Anda boleh memvisualisasikan pemboleh ubah secara bersebelahan dengan plot Seaborn.
+
+1. Cuba plot 'swarm' untuk menunjukkan taburan nilai:
+
+ ```python
+ palette = {
+ 0: 'orange',
+ 1: 'wheat'
+ }
+ sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette)
+ ```
+
+ 
+
+**Perhatian**: kod di atas mungkin menghasilkan amaran, kerana seaborn gagal mewakili sejumlah besar titik data ke dalam plot swarm. Penyelesaian yang mungkin adalah mengurangkan saiz penanda, dengan menggunakan parameter 'size'. Walau bagaimanapun, sedar bahawa ini mempengaruhi kebolehbacaan plot.
+
+> **🧮 Tunjukkan Matematik**
+>
+> Regresi logistik bergantung pada konsep 'kebolehjadian maksimum' menggunakan [fungsi sigmoid](https://wikipedia.org/wiki/Sigmoid_function). Fungsi 'Sigmoid' pada plot kelihatan seperti bentuk 'S'. Ia mengambil nilai dan memetakan ke suatu tempat antara 0 dan 1. Lengkungnya juga dipanggil 'lengkung logistik'. Formula kelihatan seperti ini:
+>
+> 
+>
+> di mana titik tengah sigmoid berada pada titik 0 x, L adalah nilai maksimum lengkung, dan k adalah kecuraman lengkung. Jika hasil fungsi lebih daripada 0.5, label yang dimaksudkan akan diberikan kelas '1' daripada pilihan binari. Jika tidak, ia akan diklasifikasikan sebagai '0'.
+
+## Bina model anda
+
+Membina model untuk mencari klasifikasi binari ini adalah agak mudah dalam Scikit-learn.
+
+[](https://youtu.be/MmZS2otPrQ8 "ML untuk pemula - Regresi Logistik untuk klasifikasi data")
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai membina model regresi linear
+
+1. Pilih pemboleh ubah yang ingin anda gunakan dalam model klasifikasi anda dan bahagikan set latihan dan ujian dengan memanggil `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. Kini anda boleh melatih model anda, dengan memanggil `fit()` dengan data latihan anda, dan cetak hasilnya:
+
+ ```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))
+ ```
+
+ Lihat papan skor model anda. Ia tidak buruk, memandangkan anda hanya mempunyai kira-kira 1000 baris 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
+ ```
+
+## Pemahaman yang lebih baik melalui matriks kekeliruan
+
+Walaupun anda boleh mendapatkan laporan papan skor [terma](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) dengan mencetak item di atas, anda mungkin dapat memahami model anda dengan lebih mudah dengan menggunakan [matriks kekeliruan](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) untuk membantu kita memahami bagaimana model berfungsi.
+
+> 🎓 '[Matriks kekeliruan](https://wikipedia.org/wiki/Confusion_matrix)' (atau 'matriks ralat') ialah jadual yang menyatakan positif dan negatif sebenar vs. palsu model anda, dengan itu mengukur ketepatan ramalan.
+
+1. Untuk menggunakan matriks kekeliruan, panggil `confusion_matrix()`:
+
+ ```python
+ from sklearn.metrics import confusion_matrix
+ confusion_matrix(y_test, predictions)
+ ```
+
+ Lihat matriks kekeliruan model anda:
+
+ ```output
+ array([[162, 4],
+ [ 11, 22]])
+ ```
+
+Dalam Scikit-learn, baris matriks kekeliruan (paksi 0) adalah label sebenar dan lajur (paksi 1) adalah label yang diramal.
+
+| | 0 | 1 |
+| :---: | :---: | :---: |
+| 0 | TN | FP |
+| 1 | FN | TP |
+
+Apa yang berlaku di sini? Katakan model kita diminta untuk mengklasifikasikan labu antara dua kategori binari, kategori 'putih' dan kategori 'bukan putih'.
+
+- Jika model anda meramal labu sebagai bukan putih dan ia tergolong dalam kategori 'bukan putih' dalam realiti kita memanggilnya negatif benar, ditunjukkan oleh nombor kiri atas.
+- Jika model anda meramal labu sebagai putih dan ia tergolong dalam kategori 'bukan putih' dalam realiti kita memanggilnya negatif palsu, ditunjukkan oleh nombor kiri bawah.
+- Jika model anda meramal labu sebagai bukan putih dan ia tergolong dalam kategori 'putih' dalam realiti kita memanggilnya positif palsu, ditunjukkan oleh nombor kanan atas.
+- Jika model anda meramal labu sebagai putih dan ia tergolong dalam kategori 'putih' dalam realiti kita memanggilnya positif benar, ditunjukkan oleh nombor kanan bawah.
+
+Seperti yang anda mungkin telah teka, adalah lebih baik untuk mempunyai bilangan positif benar dan negatif benar yang lebih besar dan bilangan positif palsu dan negatif palsu yang lebih rendah, yang menunjukkan bahawa model berfungsi dengan lebih baik.
+Bagaimana matriks kekeliruan berkaitan dengan ketepatan dan ingatan? Ingat, laporan klasifikasi yang dicetak di atas menunjukkan ketepatan (0.85) dan ingatan (0.67).
+
+Ketepatan = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461
+
+Ingatan = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666
+
+✅ S: Berdasarkan matriks kekeliruan, bagaimana prestasi model? J: Tidak buruk; terdapat sejumlah besar negatif benar tetapi juga beberapa negatif palsu.
+
+Mari kita ulang semula istilah yang kita lihat sebelum ini dengan bantuan pemetaan TP/TN dan FP/FN dalam matriks kekeliruan:
+
+🎓 Ketepatan: TP/(TP + FP) Bahagian contoh yang relevan di antara contoh yang diambil (contohnya, label mana yang dilabel dengan baik)
+
+🎓 Ingatan: TP/(TP + FN) Bahagian contoh yang relevan yang diambil, sama ada dilabel dengan baik atau tidak
+
+🎓 Skor f1: (2 * ketepatan * ingatan)/(ketepatan + ingatan) Purata berwajaran antara ketepatan dan ingatan, dengan yang terbaik adalah 1 dan yang terburuk adalah 0
+
+🎓 Sokongan: Bilangan kejadian bagi setiap label yang diambil
+
+🎓 Ketepatan: (TP + TN)/(TP + TN + FP + FN) Peratusan label yang diramal dengan tepat untuk satu sampel.
+
+🎓 Purata Makro: Pengiraan purata metrik tanpa berat bagi setiap label, tanpa mengambil kira ketidakseimbangan label.
+
+🎓 Purata Berwajaran: Pengiraan purata metrik bagi setiap label, mengambil kira ketidakseimbangan label dengan menimbangnya berdasarkan sokongan mereka (bilangan contoh benar bagi setiap label).
+
+✅ Bolehkah anda fikirkan metrik mana yang perlu diperhatikan jika anda mahu model anda mengurangkan bilangan negatif palsu?
+
+## Visualisasi lengkung ROC model ini
+
+[](https://youtu.be/GApO575jTA0 "ML untuk pemula - Menganalisis Prestasi Regresi Logistik dengan Lengkung ROC")
+
+
+> 🎥 Klik imej di atas untuk video ringkas mengenai lengkung ROC
+
+Mari kita lakukan satu lagi visualisasi untuk melihat apa yang dipanggil 'ROC' curve:
+
+```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()
+```
+
+Menggunakan Matplotlib, plotkan [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) atau ROC model. Lengkung ROC sering digunakan untuk mendapatkan pandangan tentang output pengklasifikasi dari segi positif benar vs. positif palsu. "Lengkung ROC biasanya memaparkan kadar positif benar pada paksi Y, dan kadar positif palsu pada paksi X." Oleh itu, kecuraman lengkung dan ruang antara garis tengah dan lengkung adalah penting: anda mahukan lengkung yang cepat naik dan melepasi garis. Dalam kes kita, terdapat positif palsu pada permulaan, dan kemudian garis naik dan melepasi dengan betul:
+
+
+
+Akhirnya, gunakan API [`roc_auc_score`](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) Scikit-learn untuk mengira 'Area Under the Curve' (AUC) sebenar:
+
+```python
+auc = roc_auc_score(y_test,y_scores[:,1])
+print(auc)
+```
+Hasilnya ialah `0.9749908725812341`. Memandangkan AUC berkisar dari 0 hingga 1, anda mahukan skor yang besar, kerana model yang 100% betul dalam ramalannya akan mempunyai AUC sebanyak 1; dalam kes ini, model ini _agak baik_.
+
+Dalam pelajaran masa depan mengenai klasifikasi, anda akan belajar bagaimana untuk mengulangi proses bagi meningkatkan skor model anda. Tetapi buat masa ini, tahniah! Anda telah menyelesaikan pelajaran regresi ini!
+
+---
+## 🚀Cabaran
+
+Masih banyak lagi yang boleh diterokai mengenai regresi logistik! Tetapi cara terbaik untuk belajar adalah dengan bereksperimen. Cari dataset yang sesuai untuk jenis analisis ini dan bina model dengannya. Apa yang anda pelajari? tip: cuba [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) untuk dataset yang menarik.
+
+## [Kuiz selepas kuliah](https://ff-quizzes.netlify.app/en/ml/)
+
+## Ulasan & Kajian Kendiri
+
+Baca beberapa halaman pertama [kertas kerja dari Stanford ini](https://web.stanford.edu/~jurafsky/slp3/5.pdf) mengenai beberapa kegunaan praktikal untuk regresi logistik. Fikirkan tentang tugas yang lebih sesuai untuk satu jenis regresi berbanding yang lain yang telah kita pelajari setakat ini. Apa yang akan berfungsi dengan baik?
+
+## Tugasan
+
+[Ulangi regresi ini](assignment.md)
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat penting, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/4-Logistic/assignment.md b/translations/ms/2-Regression/4-Logistic/assignment.md
new file mode 100644
index 00000000..a50080a6
--- /dev/null
+++ b/translations/ms/2-Regression/4-Logistic/assignment.md
@@ -0,0 +1,25 @@
+
+# Mencuba Semula Beberapa Regresi
+
+## Arahan
+
+Dalam pelajaran ini, anda telah menggunakan subset data labu. Sekarang, kembali kepada data asal dan cuba gunakan semuanya, yang telah dibersihkan dan distandardkan, untuk membina model Regresi Logistik.
+
+## Rubrik
+
+| Kriteria | Cemerlang | Memadai | Perlu Penambahbaikan |
+| -------- | ----------------------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
+| | Notebook disediakan dengan model yang dijelaskan dengan baik dan berprestasi tinggi | Notebook disediakan dengan model yang berprestasi minimum | Notebook disediakan dengan model yang kurang berprestasi atau tiada |
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/4-Logistic/solution/Julia/README.md b/translations/ms/2-Regression/4-Logistic/solution/Julia/README.md
new file mode 100644
index 00000000..955efd11
--- /dev/null
+++ b/translations/ms/2-Regression/4-Logistic/solution/Julia/README.md
@@ -0,0 +1,15 @@
+
+
+
+---
+
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/2-Regression/README.md b/translations/ms/2-Regression/README.md
index 3305cda1..79c56025 100644
--- a/translations/ms/2-Regression/README.md
+++ b/translations/ms/2-Regression/README.md
@@ -1,43 +1,54 @@
-# Model Regresi untuk Pembelajaran Mesin
-## Topik Regional: Model Regresi untuk Harga Labu di Amerika Utara 🎃
-
-Di Amerika Utara, labu sering diukir menjadi wajah menakutkan untuk Halloween. Mari kita temukan lebih banyak tentang sayuran yang menarik ini!
-
-
+
+# Model regresi untuk pembelajaran mesin
+## Topik serantau: Model regresi untuk harga labu di Amerika Utara 🎃
+
+Di Amerika Utara, labu sering diukir menjadi wajah menakutkan untuk Halloween. Mari kita pelajari lebih lanjut tentang sayur-sayuran yang menarik ini!
+
+
> Foto oleh Beth Teutschmann di Unsplash
-## Apa yang Akan Anda Pelajari
+## Apa yang akan anda pelajari
-[](https://youtu.be/5QnJtDad4iQ "Video Pengenalan Regresi - Klik untuk Menonton!")
-> 🎥 Klik gambar di atas untuk video pengenalan singkat tentang pelajaran ini
+[](https://youtu.be/5QnJtDad4iQ "Video pengenalan regresi - Klik untuk menonton!")
+> 🎥 Klik imej di atas untuk video pengenalan ringkas kepada pelajaran ini
-Pelajaran dalam bagian ini mencakup jenis-jenis regresi dalam konteks pembelajaran mesin. Model regresi dapat membantu menentukan _hubungan_ antara variabel. Jenis model ini dapat memprediksi nilai seperti panjang, suhu, atau usia, sehingga mengungkapkan hubungan antara variabel saat menganalisis titik data.
+Pelajaran dalam bahagian ini merangkumi jenis regresi dalam konteks pembelajaran mesin. Model regresi boleh membantu menentukan _hubungan_ antara pemboleh ubah. Jenis model ini boleh meramalkan nilai seperti panjang, suhu, atau umur, sekaligus mendedahkan hubungan antara pemboleh ubah semasa menganalisis titik data.
-Dalam serangkaian pelajaran ini, Anda akan menemukan perbedaan antara regresi linear dan logistik, dan kapan Anda harus memilih salah satu di atas yang lain.
+Dalam siri pelajaran ini, anda akan mempelajari perbezaan antara regresi linear dan regresi logistik, serta bila anda harus memilih satu berbanding yang lain.
-[](https://youtu.be/XA3OaoW86R8 "ML untuk Pemula - Pengenalan Model Regresi untuk Pembelajaran Mesin")
+[](https://youtu.be/XA3OaoW86R8 "ML untuk pemula - Pengenalan kepada model regresi untuk Pembelajaran Mesin")
-> 🎥 Klik gambar di atas untuk video pendek yang memperkenalkan model regresi.
+> 🎥 Klik imej di atas untuk video pendek memperkenalkan model regresi.
-Dalam kelompok pelajaran ini, Anda akan disiapkan untuk memulai tugas pembelajaran mesin, termasuk mengkonfigurasi Visual Studio Code untuk mengelola notebook, lingkungan umum bagi ilmuwan data. Anda akan menemukan Scikit-learn, sebuah pustaka untuk pembelajaran mesin, dan Anda akan membangun model pertama Anda, dengan fokus pada model Regresi dalam bab ini.
+Dalam kumpulan pelajaran ini, anda akan bersedia untuk memulakan tugas pembelajaran mesin, termasuk mengkonfigurasi Visual Studio Code untuk menguruskan notebook, persekitaran biasa bagi saintis data. Anda akan mengenali Scikit-learn, sebuah perpustakaan untuk pembelajaran mesin, dan anda akan membina model pertama anda, dengan fokus pada model regresi dalam bab ini.
-> Ada alat low-code yang berguna yang dapat membantu Anda belajar tentang bekerja dengan model regresi. Coba [Azure ML untuk tugas ini](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
+> Terdapat alat low-code yang berguna untuk membantu anda mempelajari cara bekerja dengan model regresi. Cuba [Azure ML untuk tugas ini](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott)
### Pelajaran
-1. [Alat Perdagangan](1-Tools/README.md)
-2. [Mengelola Data](2-Data/README.md)
-3. [Regresi Linear dan Polinomial](3-Linear/README.md)
-4. [Regresi Logistik](4-Logistic/README.md)
+1. [Alat yang digunakan](1-Tools/README.md)
+2. [Pengurusan data](2-Data/README.md)
+3. [Regresi linear dan polinomial](3-Linear/README.md)
+4. [Regresi logistik](4-Logistic/README.md)
---
### Kredit
"ML dengan regresi" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper)
-♥️ Kontributor kuis termasuk: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) dan [Ornella Altunyan](https://twitter.com/ornelladotcom)
+♥️ Penyumbang kuiz termasuk: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) dan [Ornella Altunyan](https://twitter.com/ornelladotcom)
-Dataset labu disarankan oleh [proyek ini di Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) dan datanya bersumber dari [Laporan Standar Pasar Terminal Tanaman Khusus](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) yang didistribusikan oleh Departemen Pertanian Amerika Serikat. Kami telah menambahkan beberapa poin tentang warna berdasarkan varietas untuk menormalkan distribusi. Data ini berada di domain publik.
+Dataset labu dicadangkan oleh [projek ini di Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) dan datanya diperoleh daripada [Laporan Standard Pasaran Terminal Tanaman Khas](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) yang diedarkan oleh Jabatan Pertanian Amerika Syarikat. Kami telah menambah beberapa titik berkaitan warna berdasarkan varieti untuk menormalkan taburan. Data ini adalah dalam domain awam.
+
+---
-**Penafian**:
-Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI berasaskan mesin. Walaupun kami berusaha untuk ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab ke atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
+**Penafian**:
+Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.
\ No newline at end of file
diff --git a/translations/ms/3-Web-App/1-Web-App/README.md b/translations/ms/3-Web-App/1-Web-App/README.md
index a9da9568..495f080b 100644
--- a/translations/ms/3-Web-App/1-Web-App/README.md
+++ b/translations/ms/3-Web-App/1-Web-App/README.md
@@ -1,58 +1,67 @@
-# Bina Aplikasi Web untuk Menggunakan Model ML
-
-Dalam pelajaran ini, anda akan melatih model ML pada set data yang sangat menarik: _Penampakan UFO selama abad yang lalu_, yang bersumber dari basis data NUFORC.
+
+# Membina Aplikasi Web untuk Menggunakan Model ML
+
+Dalam pelajaran ini, anda akan melatih model ML menggunakan set data yang luar biasa: _Penampakan UFO sepanjang abad yang lalu_, yang diperoleh daripada pangkalan data NUFORC.
Anda akan belajar:
- Cara 'pickle' model yang telah dilatih
- Cara menggunakan model tersebut dalam aplikasi Flask
-Kita akan melanjutkan penggunaan notebook untuk membersihkan data dan melatih model kita, tetapi anda dapat melangkah lebih jauh dengan mengeksplorasi penggunaan model 'di lapangan': dalam aplikasi web.
+Kita akan terus menggunakan notebook untuk membersihkan data dan melatih model, tetapi anda boleh melangkah lebih jauh dengan meneroka penggunaan model 'di dunia nyata', iaitu dalam aplikasi web.
-Untuk melakukan ini, anda perlu membangun aplikasi web menggunakan Flask.
+Untuk melakukannya, anda perlu membina aplikasi web menggunakan Flask.
-## [Kuis Pra-Kuliah](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/17/)
+## [Kuiz sebelum kuliah](https://ff-quizzes.netlify.app/en/ml/)
-## Membangun Aplikasi
+## Membina aplikasi
-Ada beberapa cara untuk membangun aplikasi web yang mengonsumsi model pembelajaran mesin. Arsitektur web anda mungkin mempengaruhi cara model anda dilatih. Bayangkan anda bekerja di sebuah perusahaan di mana kelompok ilmu data telah melatih model yang mereka ingin anda gunakan dalam aplikasi.
+Terdapat beberapa cara untuk membina aplikasi web yang menggunakan model pembelajaran mesin. Seni bina web anda mungkin mempengaruhi cara model anda dilatih. Bayangkan anda bekerja dalam perniagaan di mana kumpulan sains data telah melatih model yang mereka mahu anda gunakan dalam aplikasi.
### Pertimbangan
-Ada banyak pertanyaan yang perlu anda tanyakan:
+Terdapat banyak soalan yang perlu anda tanya:
-- **Apakah itu aplikasi web atau aplikasi seluler?** Jika anda membangun aplikasi seluler atau perlu menggunakan model dalam konteks IoT, anda dapat menggunakan [TensorFlow Lite](https://www.tensorflow.org/lite/) dan menggunakan model dalam aplikasi Android atau iOS.
-- **Di mana model akan berada?** Di cloud atau lokal?
-- **Dukungan offline.** Apakah aplikasi harus berfungsi secara offline?
+- **Adakah ia aplikasi web atau aplikasi mudah alih?** Jika anda membina aplikasi mudah alih atau perlu menggunakan model dalam konteks IoT, anda boleh menggunakan [TensorFlow Lite](https://www.tensorflow.org/lite/) dan menggunakan model tersebut dalam aplikasi Android atau iOS.
+- **Di mana model akan berada?** Di awan atau secara tempatan?
+- **Sokongan luar talian.** Adakah aplikasi perlu berfungsi secara luar talian?
- **Teknologi apa yang digunakan untuk melatih model?** Teknologi yang dipilih mungkin mempengaruhi alat yang perlu anda gunakan.
- - **Menggunakan TensorFlow.** Jika anda melatih model menggunakan TensorFlow, misalnya, ekosistem tersebut menyediakan kemampuan untuk mengkonversi model TensorFlow untuk digunakan dalam aplikasi web dengan menggunakan [TensorFlow.js](https://www.tensorflow.org/js/).
- - **Menggunakan PyTorch.** Jika anda membangun model menggunakan perpustakaan seperti [PyTorch](https://pytorch.org/), anda memiliki opsi untuk mengekspornya dalam format [ONNX](https://onnx.ai/) (Open Neural Network Exchange) untuk digunakan dalam aplikasi web JavaScript yang dapat menggunakan [Onnx Runtime](https://www.onnxruntime.ai/). Opsi ini akan dieksplorasi dalam pelajaran mendatang untuk model yang dilatih dengan Scikit-learn.
- - **Menggunakan Lobe.ai atau Azure Custom Vision.** Jika anda menggunakan sistem ML SaaS (Software as a Service) seperti [Lobe.ai](https://lobe.ai/) atau [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) untuk melatih model, jenis perangkat lunak ini menyediakan cara untuk mengekspor model untuk banyak platform, termasuk membangun API khusus untuk di-query di cloud oleh aplikasi online anda.
+ - **Menggunakan TensorFlow.** Jika anda melatih model menggunakan TensorFlow, contohnya, ekosistem tersebut menyediakan keupayaan untuk menukar model TensorFlow untuk digunakan dalam aplikasi web dengan menggunakan [TensorFlow.js](https://www.tensorflow.org/js/).
+ - **Menggunakan PyTorch.** Jika anda membina model menggunakan pustaka seperti [PyTorch](https://pytorch.org/), anda mempunyai pilihan untuk mengeksportnya dalam format [ONNX](https://onnx.ai/) (Open Neural Network Exchange) untuk digunakan dalam aplikasi web JavaScript yang boleh menggunakan [Onnx Runtime](https://www.onnxruntime.ai/). Pilihan ini akan diteroka dalam pelajaran akan datang untuk model yang dilatih menggunakan Scikit-learn.
+ - **Menggunakan Lobe.ai atau Azure Custom Vision.** Jika anda menggunakan sistem ML SaaS (Perisian sebagai Perkhidmatan) seperti [Lobe.ai](https://lobe.ai/) atau [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) untuk melatih model, jenis perisian ini menyediakan cara untuk mengeksport model untuk pelbagai platform, termasuk membina API tersuai untuk ditanya di awan oleh aplikasi dalam talian anda.
-Anda juga memiliki kesempatan untuk membangun seluruh aplikasi web Flask yang dapat melatih model itu sendiri dalam browser web. Ini juga dapat dilakukan menggunakan TensorFlow.js dalam konteks JavaScript.
+Anda juga berpeluang untuk membina keseluruhan aplikasi web Flask yang boleh melatih model itu sendiri dalam pelayar web. Ini juga boleh dilakukan menggunakan TensorFlow.js dalam konteks JavaScript.
-Untuk tujuan kita, karena kita telah bekerja dengan notebook berbasis Python, mari kita eksplorasi langkah-langkah yang perlu diambil untuk mengekspor model yang telah dilatih dari notebook tersebut ke format yang dapat dibaca oleh aplikasi web yang dibangun dengan Python.
+Untuk tujuan kita, memandangkan kita telah bekerja dengan notebook berasaskan Python, mari kita teroka langkah-langkah yang perlu diambil untuk mengeksport model yang telah dilatih daripada notebook tersebut ke format yang boleh dibaca oleh aplikasi web yang dibina menggunakan Python.
## Alat
-Untuk tugas ini, anda memerlukan dua alat: Flask dan Pickle, keduanya berjalan di Python.
+Untuk tugas ini, anda memerlukan dua alat: Flask dan Pickle, kedua-duanya berjalan pada Python.
-✅ Apa itu [Flask](https://palletsprojects.com/p/flask/)? Didefinisikan sebagai 'micro-framework' oleh penciptanya, Flask menyediakan fitur dasar kerangka kerja web menggunakan Python dan mesin templat untuk membangun halaman web. Lihat [modul Belajar ini](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) untuk berlatih membangun dengan Flask.
+✅ Apa itu [Flask](https://palletsprojects.com/p/flask/)? Didefinisikan sebagai 'micro-framework' oleh penciptanya, Flask menyediakan ciri asas rangka kerja web menggunakan Python dan enjin templat untuk membina halaman web. Lihat [modul pembelajaran ini](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) untuk berlatih membina dengan Flask.
-✅ Apa itu [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 adalah modul Python yang men-serialisasi dan de-serialisasi struktur objek Python. Ketika anda 'pickle' model, anda men-serialisasi atau meratakan strukturnya untuk digunakan di web. Hati-hati: pickle tidak secara intrinsik aman, jadi berhati-hatilah jika diminta untuk 'un-pickle' file. File yang di-pickle memiliki akhiran `.pkl`.
+✅ Apa itu [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 ialah modul Python yang menyusun dan menyahsusun struktur objek Python. Apabila anda 'pickle' model, anda menyusun atau meratakan strukturnya untuk digunakan di web. Berhati-hati: pickle tidak secara intrinsik selamat, jadi berhati-hati jika diminta untuk 'un-pickle' fail. Fail yang telah dipickle mempunyai akhiran `.pkl`.
## Latihan - membersihkan data anda
-Dalam pelajaran ini anda akan menggunakan data dari 80.000 penampakan UFO, dikumpulkan oleh [NUFORC](https://nuforc.org) (Pusat Pelaporan UFO Nasional). Data ini memiliki beberapa deskripsi menarik tentang penampakan UFO, misalnya:
+Dalam pelajaran ini, anda akan menggunakan data daripada 80,000 penampakan UFO, yang dikumpulkan oleh [NUFORC](https://nuforc.org) (Pusat Pelaporan UFO Kebangsaan). Data ini mempunyai beberapa deskripsi menarik tentang penampakan UFO, contohnya:
-- **Deskripsi contoh panjang.** "Seorang pria muncul dari sinar cahaya yang menyinari lapangan berumput di malam hari dan dia berlari menuju tempat parkir Texas Instruments".
-- **Deskripsi contoh pendek.** "lampu-lampu mengejar kami".
+- **Deskripsi contoh panjang.** "Seorang lelaki muncul dari pancaran cahaya yang bersinar di padang rumput pada waktu malam dan dia berlari ke arah tempat letak kereta Texas Instruments".
+- **Deskripsi contoh pendek.** "lampu mengejar kami".
-Spreadsheet [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) mencakup kolom tentang `city`, `state`, dan `country` di mana penampakan terjadi, objek `shape` dan `latitude` serta `longitude`.
+Spreadsheet [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) termasuk lajur tentang `city`, `state` dan `country` di mana penampakan berlaku, `shape` objek dan `latitude` serta `longitude`nya.
Dalam [notebook](../../../../3-Web-App/1-Web-App/notebook.ipynb) kosong yang disertakan dalam pelajaran ini:
-1. impor `pandas`, `matplotlib`, dan `numpy` seperti yang anda lakukan dalam pelajaran sebelumnya dan impor spreadsheet ufos. Anda dapat melihat sampel set data:
+1. import `pandas`, `matplotlib`, dan `numpy` seperti yang anda lakukan dalam pelajaran sebelumnya dan import spreadsheet ufos. Anda boleh melihat sampel set data:
```python
import pandas as pd
@@ -62,7 +71,7 @@ Dalam [notebook](../../../../3-Web-App/1-Web-App/notebook.ipynb) kosong yang dis
ufos.head()
```
-1. Konversikan data ufos menjadi dataframe kecil dengan judul baru. Periksa nilai unik di bidang `Country`.
+1. Tukarkan data ufos kepada dataframe kecil dengan tajuk baru. Periksa nilai unik dalam medan `Country`.
```python
ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})
@@ -70,7 +79,7 @@ Dalam [notebook](../../../../3-Web-App/1-Web-App/notebook.ipynb) kosong yang dis
ufos.Country.unique()
```
-1. Sekarang, anda dapat mengurangi jumlah data yang perlu kita tangani dengan menghapus nilai null dan hanya mengimpor penampakan antara 1-60 detik:
+1. Kini, anda boleh mengurangkan jumlah data yang perlu kita uruskan dengan membuang nilai null dan hanya mengimport penampakan antara 1-60 saat:
```python
ufos.dropna(inplace=True)
@@ -80,9 +89,9 @@ Dalam [notebook](../../../../3-Web-App/1-Web-App/notebook.ipynb) kosong yang dis
ufos.info()
```
-1. Impor perpustakaan `LabelEncoder` dari Scikit-learn untuk mengonversi nilai teks untuk negara menjadi angka:
+1. Import pustaka `LabelEncoder` dari Scikit-learn untuk menukar nilai teks bagi negara kepada nombor:
- ✅ LabelEncoder mengkodekan data secara alfabetis
+ ✅ LabelEncoder menyandikan data mengikut abjad
```python
from sklearn.preprocessing import LabelEncoder
@@ -92,7 +101,7 @@ Dalam [notebook](../../../../3-Web-App/1-Web-App/notebook.ipynb) kosong yang dis
ufos.head()
```
- Data anda harus terlihat seperti ini:
+ Data anda sepatutnya kelihatan seperti ini:
```output
Seconds Country Latitude Longitude
@@ -103,11 +112,11 @@ Dalam [notebook](../../../../3-Web-App/1-Web-App/notebook.ipynb) kosong yang dis
24 3.0 3 51.783333 -0.783333
```
-## Latihan - membangun model anda
+## Latihan - membina model anda
-Sekarang anda dapat bersiap untuk melatih model dengan membagi data menjadi kelompok pelatihan dan pengujian.
+Kini anda boleh bersedia untuk melatih model dengan membahagikan data kepada kumpulan latihan dan ujian.
-1. Pilih tiga fitur yang ingin anda latih sebagai vektor X anda, dan vektor y akan menjadi `Country`. You want to be able to input `Seconds`, `Latitude` and `Longitude` dan mendapatkan id negara untuk dikembalikan.
+1. Pilih tiga ciri yang ingin anda latih sebagai vektor X anda, dan vektor y akan menjadi `Country`. Anda ingin dapat memasukkan `Seconds`, `Latitude` dan `Longitude` dan mendapatkan id negara untuk dikembalikan.
```python
from sklearn.model_selection import train_test_split
@@ -134,13 +143,13 @@ Sekarang anda dapat bersiap untuk melatih model dengan membagi data menjadi kelo
print('Accuracy: ', accuracy_score(y_test, predictions))
```
-Akurasi tidak buruk **(sekitar 95%)**, tidak mengherankan, karena `Country` and `Latitude/Longitude` correlate.
+Ketepatannya tidak buruk **(sekitar 95%)**, tidak mengejutkan, kerana `Country` dan `Latitude/Longitude` berkorelasi.
-The model you created isn't very revolutionary as you should be able to infer a `Country` from its `Latitude` and `Longitude`, tetapi ini adalah latihan yang baik untuk mencoba melatih dari data mentah yang anda bersihkan, diekspor, dan kemudian menggunakan model ini dalam aplikasi web.
+Model yang anda cipta tidak begitu revolusioner kerana anda sepatutnya dapat menyimpulkan `Country` daripada `Latitude` dan `Longitude`nya, tetapi ia adalah latihan yang baik untuk mencuba melatih daripada data mentah yang anda bersihkan, eksport, dan kemudian menggunakan model ini dalam aplikasi web.
## Latihan - 'pickle' model anda
-Sekarang, saatnya untuk _pickle_ model anda! Anda dapat melakukannya dalam beberapa baris kode. Setelah itu di-_pickle_, muat model yang di-pickle dan uji terhadap array data sampel yang berisi nilai untuk detik, lintang, dan bujur,
+Kini, tiba masanya untuk _pickle_ model anda! Anda boleh melakukannya dalam beberapa baris kod. Setelah ia _dipickle_, muatkan model yang dipickle dan uji terhadap array data sampel yang mengandungi nilai untuk seconds, latitude dan longitude,
```python
import pickle
@@ -151,15 +160,15 @@ model = pickle.load(open('ufo-model.pkl','rb'))
print(model.predict([[50,44,-12]]))
```
-Model mengembalikan **'3'**, yang merupakan kode negara untuk Inggris. Luar biasa! 👽
+Model mengembalikan **'3'**, yang merupakan kod negara untuk UK. Hebat! 👽
-## Latihan - membangun aplikasi Flask
+## Latihan - membina aplikasi Flask
-Sekarang anda dapat membangun aplikasi Flask untuk memanggil model anda dan mengembalikan hasil serupa, tetapi dengan cara yang lebih menarik secara visual.
+Kini anda boleh membina aplikasi Flask untuk memanggil model anda dan mengembalikan hasil yang serupa, tetapi dengan cara yang lebih menarik secara visual.
-1. Mulailah dengan membuat folder bernama **web-app** di sebelah file _notebook.ipynb_ tempat file _ufo-model.pkl_ anda berada.
+1. Mulakan dengan mencipta folder bernama **web-app** di sebelah fail _notebook.ipynb_ di mana fail _ufo-model.pkl_ anda berada.
-1. Di dalam folder tersebut buat tiga folder lagi: **static**, dengan folder **css** di dalamnya, dan **templates**. Anda sekarang harus memiliki file dan direktori berikut:
+1. Dalam folder itu, cipta tiga lagi folder: **static**, dengan folder **css** di dalamnya, dan **templates**. Anda sepatutnya kini mempunyai fail dan direktori berikut:
```output
web-app/
@@ -170,9 +179,9 @@ Sekarang anda dapat membangun aplikasi Flask untuk memanggil model anda dan meng
ufo-model.pkl
```
- ✅ Lihat folder solusi untuk melihat aplikasi yang sudah selesai
+ ✅ Rujuk folder penyelesaian untuk melihat aplikasi yang telah siap
-1. File pertama yang dibuat dalam folder _web-app_ adalah file **requirements.txt**. Seperti _package.json_ dalam aplikasi JavaScript, file ini mencantumkan ketergantungan yang diperlukan oleh aplikasi. Dalam **requirements.txt** tambahkan baris:
+1. Fail pertama yang perlu dicipta dalam folder _web-app_ ialah fail **requirements.txt**. Seperti _package.json_ dalam aplikasi JavaScript, fail ini menyenaraikan kebergantungan yang diperlukan oleh aplikasi. Dalam **requirements.txt** tambahkan baris:
```text
scikit-learn
@@ -181,25 +190,25 @@ Sekarang anda dapat membangun aplikasi Flask untuk memanggil model anda dan meng
flask
```
-1. Sekarang, jalankan file ini dengan menavigasi ke _web-app_:
+1. Kini, jalankan fail ini dengan menavigasi ke _web-app_:
```bash
cd web-app
```
-1. Di terminal anda ketik `pip install`, untuk menginstal perpustakaan yang tercantum dalam _requirements.txt_:
+1. Dalam terminal anda taip `pip install`, untuk memasang pustaka yang disenaraikan dalam _requirements.txt_:
```bash
pip install -r requirements.txt
```
-1. Sekarang, anda siap membuat tiga file lagi untuk menyelesaikan aplikasi:
+1. Kini, anda bersedia untuk mencipta tiga lagi fail untuk melengkapkan aplikasi:
- 1. Buat **app.py** di root.
- 2. Buat **index.html** di direktori _templates_.
- 3. Buat **styles.css** di direktori _static/css_.
+ 1. Cipta **app.py** di root.
+ 2. Cipta **index.html** dalam direktori _templates_.
+ 3. Cipta **styles.css** dalam direktori _static/css_.
-1. Buat file _styles.css_ dengan beberapa gaya:
+1. Bina fail _styles.css_ dengan beberapa gaya:
```css
body {
@@ -233,7 +242,7 @@ Sekarang anda dapat membangun aplikasi Flask untuk memanggil model anda dan meng
}
```
-1. Selanjutnya, buat file _index.html_:
+1. Seterusnya, bina fail _index.html_:
```html
@@ -268,11 +277,11 @@ Sekarang anda dapat membangun aplikasi Flask untuk memanggil model anda dan meng