From cba7c94d151f4ed8bedcacb8927b0bad3885c486 Mon Sep 17 00:00:00 2001 From: "localizeflow[bot]" Date: Mon, 20 Apr 2026 20:57:44 +0000 Subject: [PATCH] chore(i18n): sync translations with latest source changes (chunk 1/1, 12 changes) --- translations/he/.co-op-translator.json | 12 +- .../he/2-Regression/3-Linear/README.md | 283 +++++++++--------- .../2-Classifiers-1/README.md | 139 ++++----- translations/he/README.md | 231 +++++++------- translations/nl/.co-op-translator.json | 12 +- .../nl/2-Regression/3-Linear/README.md | 257 ++++++++-------- .../2-Classifiers-1/README.md | 145 ++++----- translations/nl/README.md | 197 ++++++------ translations/vi/.co-op-translator.json | 12 +- .../vi/2-Regression/3-Linear/README.md | 247 +++++++-------- .../2-Classifiers-1/README.md | 131 ++++---- translations/vi/README.md | 223 +++++++------- 12 files changed, 966 insertions(+), 923 deletions(-) diff --git a/translations/he/.co-op-translator.json b/translations/he/.co-op-translator.json index ad1ef83ef..499f41d99 100644 --- a/translations/he/.co-op-translator.json +++ b/translations/he/.co-op-translator.json @@ -90,8 +90,8 @@ "language_code": "he" }, "2-Regression/3-Linear/README.md": { - "original_hash": "9a8359f1945bd3beccccb2b46592580e", - "translation_date": "2026-02-28T10:35:26+00:00", + "original_hash": "26c53a922f1f1e8542b0ea41ff52221a", + "translation_date": "2026-04-20T20:51:40+00:00", "source_file": "2-Regression/3-Linear/README.md", "language_code": "he" }, @@ -168,8 +168,8 @@ "language_code": "he" }, "4-Classification/2-Classifiers-1/README.md": { - "original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b", - "translation_date": "2025-09-05T19:49:37+00:00", + "original_hash": "cb761595e5b6c42b99bb81bd13683311", + "translation_date": "2026-04-20T20:52:30+00:00", "source_file": "4-Classification/2-Classifiers-1/README.md", "language_code": "he" }, @@ -552,8 +552,8 @@ "language_code": "he" }, "README.md": { - "original_hash": "7fb48097f57e680b380cd9aae988d317", - "translation_date": "2026-04-06T17:05:27+00:00", + "original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0", + "translation_date": "2026-04-20T20:50:23+00:00", "source_file": "README.md", "language_code": "he" }, diff --git a/translations/he/2-Regression/3-Linear/README.md b/translations/he/2-Regression/3-Linear/README.md index 688b89567..8324f50a7 100644 --- a/translations/he/2-Regression/3-Linear/README.md +++ b/translations/he/2-Regression/3-Linear/README.md @@ -1,136 +1,136 @@ -# בניית מודל רגרסיה באמצעות Scikit-learn: ארבע דרכים לרגרסיה +# לבנות מודל רגרסיה באמצעות Scikit-learn: רגרסיה בארבע דרכים ## הערת מתחילים -רגרסיה ליניארית משמשת כאשר אנו רוצים לחזות **ערך מספרי** (לדוגמה, מחיר בית, טמפרטורה או מכירות). -היא פועלת על ידי מציאת קו ישר שמייצג בצורה הטובה ביותר את הקשר בין תכונות הקלט לפלט. +רגרסיה ליניארית משמשת כאשר אנו רוצים לחזות **ערך מספרי** (לדוגמה, מחיר בית, טמפרטורה, או מכירות). +היא פועלת על ידי מציאת קו ישר המייצג בצורה הטובה ביותר את הקשר בין תכונות הקלט לפלט. -במהלך השיעור הזה, נתמקד בהבנת המושג לפני שנחקור טכניקות רגרסיה מתקדמות יותר. -![אינפוגרפיקה של רגרסיה ליניארית לעומת פולינומית](../../../../translated_images/he/linear-polynomial.5523c7cb6576ccab.webp) -> אינפוגרפיקה מאת [דאסני מדיפלי](https://twitter.com/dasani_decoded) -## [מבחן לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/) +בשיעור זה, נתמקד בהבנת המושג לפני שנחפש טכניקות רגרסיה מתקדמות יותר. +![רגרסיה ליניארית לעומת פולינומית אינפוגרפיקה](../../../../translated_images/he/linear-polynomial.5523c7cb6576ccab.webp) +> אינפוגרפיקה מאת [דאסאני מדיפאלי](https://twitter.com/dasani_decoded) +## [חידון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/) -> ### [השיעור זמין גם ב-R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html) +> ### [שיעור זה זמין ב-R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html) ### מבוא -עד כה חקרתם מהי רגרסיה עם דוגמת נתונים שנאספה ממאגר מחירי הדלעות שבו נשתמש לאורך כל השיעור. בנוסף, חזיתם זאת באמצעות Matplotlib. +עד כה חקרתם מהי רגרסיה באמצעות דוגמת נתונים שנלקחה ממאגר הנתונים למחירי דלעות שבו נשתמש לאורך כל השיעור. גם הצגתם זאת באמצעות Matplotlib. -כעת אתם מוכנים לצלול לעומק יותר לרגרסיה עבור למידת מכונה. בעוד שויזואליזציה מאפשרת להבין את הנתונים, הכוח האמיתי של למידת מכונה מגיע מ-_אימון מודלים_. מודלים מאומנים על נתונים היסטוריים כדי ללכוד באופן אוטומטי את התלויות בנתונים, והם מאפשרים לכם לחזות תוצאות עבור נתונים חדשים שהמודל לא ראה בעבר. +כעת אתם מוכנים לצלול לעומק אל עולם הרגרסיה ללמידת מכונה. בעוד שהויזואליזציה מאפשרת לכם להבין נתונים, הכוח האמיתי של למידת מכונה מגיע מ_מודלים מאומנים_. מודלים מאומנים על נתונים היסטוריים כדי ללכוד באופן אוטומטי תלות בין הנתונים, ומאפשרים לכם לחזות תוצאות עבור נתונים חדשים, אותם המודל לא ראה קודם. -בשיעור הזה תלמדו יותר על שני סוגי רגרסיה: _רגרסיה ליניארית בסיסית_ ו_רגרסיה פולינומית_, יחד עם חלק מהמתמטיקה שמאחורי הטכניקות האלה. מודלים אלו יאפשרו לנו לחזות מחירי דלעות בהתאם לנתוני קלט שונים. +בשיעור הזה תלמדו על שני סוגים של רגרסיה: _רגרסיה ליניארית בסיסית_ ו_רגרסיה פולינומית_, יחד עם חלק מהמתמטיקה שמאחורי הטכניקות האלה. המודלים האלה יאפשרו לנו לחזות מחירי דלעות בהתאם לנתוני קלט שונים. [![למידת מכונה למתחילים - הבנת רגרסיה ליניארית](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "למידת מכונה למתחילים - הבנת רגרסיה ליניארית") -> 🎥 הקליקו על התמונה למעלה לסרטון קצר על רגרסיה ליניארית. +> 🎥 לחצו על התמונה למעלה לסרטון קצר המסביר רגרסיה ליניארית. -> לאורך כל תכנית הלימודים, אנו מניחים ידע מתמטי מינימלי, ושואפים להפוך זאת לנגיש לסטודנטים הבאים מתחומים אחרים, לכן שימו לב להערות, 🧮 קריאות, דיאגרמות וכלי למידה נוספים המסייעים בהבנה. +> לאורך כל התכנית אנו מניחים ידע מינימלי במתמטיקה, ושואפים להפוך את התוכן לנגיש לסטודנטים ממקצועות אחרים, לכן שימו לב להערות, 🧮 קריאות, דיאגרמות, וכלי למידה נוספים שיעזרו לכם בהבנה. -### דרישות קדם +### דרישות מקדימות -כעת אתם אמורים להכיר את מבנה נתוני הדלעות שאנו בודקים. תוכלו למצוא אותם טעונים ומנוקים מראש בקובץ _notebook.ipynb_ של השיעור. בקובץ, מחיר הדלעות מוצג לפרוטה חדשה במסגרת נתונים. ודאו שאתם יכולים להריץ את היומנים הללו ב-Kernels ב-Visual Studio Code. +עד כה עליכם להיות מוכרים עם מבנה נתוני הדלעות שאנו בודקים. ניתן למצוא אותם טעונים ומנוקים מראש בקובץ _notebook.ipynb_ של השיעור הזה. בקובץ, מחיר הדלעות מוצג לפי באושל במסגרת מסגרת נתונים חדשה. וודאו שניתן להריץ קבצים אלה ב-kernels של Visual Studio Code. ### הכנה -כאות זיכרון, אתם טוענים את הנתונים האלה כדי לשאול עליהם שאלות. +לתזכורת, אתם טוענים את הנתונים האלה כדי לשאול עליהם שאלות. -- מתי הזמן הטוב ביותר לקנות דלעות? -- איזה מחיר ניתן לצפות לקופסת דלעות מיניאטוריות? -- האם כדאי לקנות אותן בסלים של חצי בחמישה ליטרים או בקופסת 1 1/9 בחמישה ליטרים? -בואו נמשיך לחקור את הנתונים האלה. +- מתי הזמן הטוב ביותר לקנות דלעות? +- איזה מחיר אפשר לצפות עבור קופסת דלעות מיני? +- האם כדאי לקנות בסלים של חצי באושל או בקופסה של 1 1/9 באושל? +נמשיך לחפור בנתונים האלה. -בשיעור הקודם, יצרתם מסגרת נתונים של Pandas וטענתם חלק מהמערכת הנתונים המקורית, תוך סטנדרטיזציה של המחירים לפי החמישה ליטרים. אך בכך הצלחתם לאסוף כ-400 נקודות נתונים בלבד ורק עבור חודשים סתוויים. +בשיעור הקודם יצרתם מסגרת נתונים של Pandas ומילאתם אותה בחלק מן הנתונים המקוריים, כשהמחיר מתוקנן לפי הבאושל. עם זאת, בדרך זו הצלחתם לאסוף רק כ-400 נקודות מידע ורק לחודשי הסתיו. -הסתכלו על הנתונים שהטענו מראש ביומן הנלווה לשיעור הזה. הנתונים נטענים מראש וגרף פיזור ראשוני מצויר למען הצגת נתוני החודש. ייתכן שנוכל לקבל מידע מפורט יותר על טבעם של הנתונים באמצעות ניקוי נוסף. +תסתכלו על הנתונים הטעונים מראש במחברת המצורפת לשיעור זה. הנתונים טעונים מראש ויצרנו גרף פיזור ראשוני שמראה את נתוני החודשים. אולי נוכל לקבל פרטים נוספים על אופי הנתונים על ידי ניקוי נוסף. -## קו רגרסיה ליניארי +## קו רגרסיה ליניארית כפי שלמדתם בשיעור 1, המטרה של תרגיל רגרסיה ליניארית היא להיות מסוגלים לשרטט קו כדי: -- **להראות קשרים בין משתנים**. להראות את הקשר בין משתנים -- **לבצע תחזיות**. לבצע תחזיות מדויקות לגבי מיקום נקודת נתונים חדשה ביחס לקו. +- **להראות קשר בין משתנים**. להראות את הקשר בין המשתנים. +- **לעשות תחזיות**. לבצע תחזיות מדויקות לגבי מיקום נקודת נתונים חדשה ביחס לקו זה. -שיטה טיפוסית של **רגרסיית שאריות מינימליות** היא ציור קו כזה. המונח "שאריות מינימליות" מתייחס לתהליך הפחתת השגיאה הכוללת במודל שלנו. עבור כל נקודת נתונים, אנו מודדים את המרחק האנכי (שנקרא שארית) בין הנקודה האמיתית והקו שלנו. +מקובל להשתמש ב**רגרסיית הריבועים הפחותים** לציור קו כזה. המונח "ריבועים הפחותים" מתייחס לתהליך של מזעור השגיאה הכוללת במודל שלנו. עבור כל נקודת נתונים, אנו מודדים את המרחק האנכי (נקרא שארית) בין הנקודה האמיתית לקו הרגרסיה. -אנו מרבעים מרחקים אלה משתי סיבות עיקריות: +אנו מוכפלים את המרחקים האלה בריבוע משתי סיבות עיקריות: -1. **מגמות גודל על פני כיוון:** אנו רוצים להתייחס לטעויות של -5 ו+5 באותה צורה. הריבוע הופך את כל הערכים לחיוביים. +1. **גודל ולא כיוון:** אנו רוצים להתייחס לשגיאה של -5 באותו אופן כמו לשגיאה של +5. הכפלה בריבוע הופכת את כל הערכים לחיוביים. -2. **עונש לחריגים:** החישוב בריבוע נותן משקל רב יותר לטעויות גדולות ומאלץ את הקו להישאר קרוב לנקודות רחוקות. +2. **עונש לחריגות:** ריבוע נותן משקל גבוה יותר לשגיאות גדולות, ומכריח את הקו להישאר קרוב יותר לנקודות הרחוקות. -לאחר מכן, אנו מוסיפים את כל הערכים המרובעים יחד. המטרה שלנו היא למצוא את הקו הספציפי שבו סכום זה הוא הכי נמוך (הערך הקטן ביותר האפשרי) — ומכאן השם "שאריות מינימליות". +אחרי זה אנו מוסיפים את כל הערכים בריבוע יחד. המטרה שלנו היא למצוא את הקו הספציפי שבו סכום זה הוא הנמוך ביותר (הערך הקטן ביותר האפשרי) — ומכאן השם "ריבועים הפחותים". -> **🧮 הראו לי את המתמטיקה** -> -> הקו הזה, הנקרא _קו התאמה אופטימלי_, ניתן לביטוי באמצעות [משוואה](https://en.wikipedia.org/wiki/Simple_linear_regression): -> +> **🧮 הראה לי את המתמטיקה** +> +> קו זה, שנקרא _קו ההתאמה הטובה ביותר_ ניתן לתאר באמצעות [משוואה](https://en.wikipedia.org/wiki/Simple_linear_regression): +> > ``` > Y = a + bX > ``` -> -> `X` הוא 'המשתנה המסביר'. `Y` הוא 'המשתנה התלוי'. השיפוע של הקו הוא `b` ו-`a` הוא נקודת החיתוך עם ציר ה-Y, שמתייחס לערך של `Y` כאשר `X = 0`. -> ->![חישוב השיפוע](../../../../translated_images/he/slope.f3c9d5910ddbfcf9.webp) -> -> ראשית, חשב את השיפוע `b`. אינפוגרפיקה מאת [ג'ן לופר](https://twitter.com/jenlooper) -> -> במילים אחרות, ובהתייחס לשאלה המקורית על מחירי דלעות: "לחזות את מחיר הדלעות לכל חמישה ליטרים לפי חודש", `X` מתייחס למחיר ו-`Y` לחודש המכירה. -> ->![השלמת המשוואה](../../../../translated_images/he/calculation.a209813050a1ddb1.webp) -> -> חשב את ערך Y. אם אתה משלם כ-4$, זה חייב להיות אפריל! אינפוגרפיקה מאת [ג'ן לופר](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` הוא 'משתנה תלוי'. השיפוע של הקו הוא `b` ו-`a` הוא נקודת החיתוך עם ציר ה-Y, שמתאר את ערך `Y` כאשר `X = 0`. +> +>![חישוב השיפוע](../../../../translated_images/he/slope.f3c9d5910ddbfcf9.webp) +> +> תחילה, חשבו את השיפוע `b`. אינפוגרפיקה מאת [ג'ן לופר](https://twitter.com/jenlooper) +> +> במילים אחרות, ובמתייחס לשאלה המקורית של נתוני הדלעות שלנו: "לחזות את מחיר הדלעת ליחידת באושל לפי חודש", `X` יהיה מחיר ו-`Y` יהיה חודש המכירה. +> +>![השלים את המשוואה](../../../../translated_images/he/calculation.a209813050a1ddb1.webp) +> +> חשבו את ערך Y. אם אתם משלמים כ־4 דולר, חייב להיות שזה אפריל! אינפוגרפיקה מאת [ג'ן לופר](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 יציג קורלציה נמוכה. +עוד מונח שיש להבין הוא **מקדם המתאם** בין משתני X ו-Y נתונים. בעזרת גרף פיזור ניתן להמחיש במהירות מקדם זה. גרף עם נקודות מפוזרות לאורך קו נקי הוא בעל קורלציה גבוהה, אך גרף עם נקודות מפוזרות בכל מקום בין X ל-Y הוא בעל קורלציה נמוכה. -מודל רגרסיה ליניארית טוב יהיה כזה שיש לו מקדם קורלציה גבוה (קרוב ל-1 יותר מאשר 0) בשימוש בשיטת רגרסיית שאריות מינימליות עם קו רגרסיה. +מודל רגרסיה ליניארית טוב יהיה כזה שיביא למקדם מתאם גבוה (קרוב ל-1 יותר מאשר ל-0) באמצעות שיטת ריבועי השגיאות הפחותים עם קו רגרסיה. -✅ הריצו את היומן הנלווה לשיעור הזה והסתכלו על גרף הפיזור של חודש מול מחיר. האם הנתונים המקשרים בין חודש למחיר במכירות הדלעות נראים עם קורלציה גבוהה או נמוכה, לפי הפרשנות הויזואלית שלכם של גרף הפיזור? האם זה משתנה אם תשתמשו במדידה מדויקת יותר במקום `חודש`, למשל *יום בשנה* (כלומר מספר הימים מתחילת השנה)? +✅ הריצו את המחברת המצורפת לשיעור זה וצפו בגרף פיזור מחיר לפי חודש. האם הנתונים הקושרים בין חודש למחיר מכירות דלעות נראים בעלי קורלציה גבוהה או נמוכה, לפי הפרשנות הויזואלית שלכם לגרף הפיזור? האם זה משתנה אם משתמשים במדד מדויק יותר במקום `Month`, למשל *יום בשנה* (כלומר מספר הימים מאז תחילת השנה)? -בקוד למטה, נניח שניקינו את הנתונים, וקיבלנו מסגרת נתונים בשם `new_pumpkins`, כפי הבא: +בקוד למטה נניח שניקינו את הנתונים, וקיבלנו מסגרת נתונים בשם `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 +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`](notebook.ipynb). ביצענו את אותם שלבי ניקוי כמו בשיעור הקודם, וחישבנו את עמודת `DayOfYear` באמצעות הביטוי הבא: +> הקוד לניקוי הנתונים זמין ב-[`notebook.ipynb`](notebook.ipynb). ביצענו את אותם צעדי ניקוי כמו בשיעור הקודם, וחישבנו את העמודה `DayOfYear` באמצעות הביטוי הבא: ```python day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days) ``` - -כעת כשברשותכם הבנה של המתמטיקה שמאחורי הרגרסיה הליניארית, ניצור מודל רגרסיה כדי לבדוק אם נוכל לחזות איזו חבילה של דלעות תהיה עם המחירים הטובים ביותר. מישהו שקונה דלעות לטובת חלקת דלעות לחג עשוי לרצות מידע זה על מנת לאפיין את רכישות חבילות הדלעות שלו. -## חיפוש קורלציה +עכשיו כשיש לכם הבנה של המתמטיקה שמאחורי רגרסיה ליניארית, בואו ניצור מודל רגרסיה כדי לבדוק אם נוכל לחזות איזו חבילה של דלעות תכיל את מחירי הדלעות הטובים ביותר. מישהו שקונה דלעות לחג עלול לרצות מידע זה כדי למקסם את רכישת חבילות הדלעות שלו עבור החג. -[![למידת מכונה למתחילים - חיפוש קורלציה: המפתח לרגרסיה ליניארית](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "למידת מכונה למתחילים - חיפוש קורלציה: המפתח לרגרסיה ליניארית") +## מחפשים קורלציה -> 🎥 הקליקו על התמונה למעלה לסרטון קצר על קורלציה. +[![למידת מכונה למתחילים - מחפשים קורלציה: המפתח לרגרסיה ליניארית](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "למידת מכונה למתחילים - מחפשים קורלציה: המפתח לרגרסיה ליניארית") -בשיעור הקודם כנראה שראיתם שמחיר ממוצע לאורך חודשים שונים נראה כך: +> 🎥 לחצו על התמונה למעלה לסרטון קצר המסביר קורלציה. + +בשיעור הקודם כנראה ראיתם שהמחיר הממוצע לפי חודשים נראה כך: מחיר ממוצע לפי חודש -זה מצביע על כך שלפחות יש קורלציה כלשהי, ונוכל לנסות לאמן מודל רגרסיה ליניארית כדי לחזות את הקשר בין `חודש` ו-`מחיר`, או בין `DayOfYear` ל-`מחיר`. להלן גרף הפיזור שמציג את הקשר האחרון: +הדבר מצביע על כך שצריכה להיות קורלציה, ואפשר לנסות לאמן מודל רגרסיה ליניארית לחזות את הקשר בין `Month` ל-`Price`, או בין `DayOfYear` ל-`Price`. להלן גרף הפיזור שמראה את הקשר האחרון: גרף פיזור של מחיר מול יום בשנה -בואו נראה אם יש קורלציה באמצעות פונקציית `corr`: +נבדוק אם קיימת קורלציה באמצעות הפונקציה `corr`: ```python print(new_pumpkins['Month'].corr(new_pumpkins['Price'])) print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price'])) ``` - -נראה שהקורלציה די קטנה, -0.15 לפי `חודש` ו- -0.17 לפי `DayOfMonth`, אך יש עדיין קשר אחר שחשוב לקחת בחשבון. נראה שיש אשכולות שונים של מחירים המתאימים לסוגי דלעות שונים. כדי לאשר השערה זו, נצייר כל קטגוריית דלעות בצבע שונה. באמצעות העברת פרמטר `ax` לפונקציית הפיזור נוכל לצייר את כל הנקודות באותו גרף: + +נראה שהקורלציה יחסית נמוכה, -0.15 לפי `Month` ו- -0.17 לפי `DayOfMonth`, אך ייתכן שקיים קשר חשוב אחר. נראה שישנם אשכולות שונים של מחירים התואמים לזני דלעות שונים. כדי לאשר השערה זו, נשרטט כל קטגוריית דלעות בצבע שונה. על ידי העברת פרמטר `ax` לפונקציית הפריטה `scatter` נוכל להראות את כל הנקודות באותה גרף: ```python ax=None @@ -139,92 +139,93 @@ 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') ``` - -גרף עמודות של המחיר לפי סוג דלעת -נתרכז לרגע בסוג דלעת אחד בלבד, 'pie type', ונבדוק מה ההשפעה של התאריך על המחיר: +תרשים עמודות של מחיר מול זן + +נקדיש כרגע תשומת לב לזן אחד בלבד, 'pie type', ונראה מה השפעת התאריך על המחיר: ```python pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE'] pie_pumpkins.plot.scatter('DayOfYear','Price') ``` -גרף פיזור של מחיר מול יום בשנה לפי סוג pie +גרף פיזור של מחיר מול יום בשנה 粒 görnüş -אם נכנס לחשב את הקורלציה בין `מחיר` ו-`DayOfYear` באמצעות הפונקציה `corr`, נקבל משהו כמו `-0.27` – כלומר אימון מודל חיזוי הגיוני. +עכשיו אם נחשב את הקורלציה בין `Price` ל-`DayOfYear` באמצעות הפונקציה `corr`, נקבל משהו בסביבות `-0.27` - מה שאומר שאימון מודל ניבוי הגיוני. -> לפני אימון מודל רגרסיה ליניארית, חשוב לוודא שהנתונים שלנו נקיים. רגרסיה ליניארית לא עובדת טוב עם ערכים חסרים, לכן הגיוני להיפטר מכל התאים הריקים: +> לפני אימון מודל רגרסיה ליניארית, חשוב לוודא שהנתונים שלנו נקיים. רגרסיה ליניארית אינה עובדת טוב עם ערכים חסרים, לכן כדאי להיפטר מכל התאים הריקים: ```python pie_pumpkins.dropna(inplace=True) pie_pumpkins.info() ``` - -גישה נוספת תהיה למלא את אותם ערכים ריקים בערכי ממוצע מהעמודה המתאימה. + +גישה נוספת תהיה למלא את הערכים החסרים בערכים ממוצעים מתוך העמודה המתאימה. ## רגרסיה ליניארית פשוטה [![למידת מכונה למתחילים - רגרסיה ליניארית ופולינומית באמצעות Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "למידת מכונה למתחילים - רגרסיה ליניארית ופולינומית באמצעות Scikit-learn") -> 🎥 הקליקו על התמונה למעלה לסרטון קצר על רגרסיה ליניארית ופולינומית. +> 🎥 לחצו על התמונה למעלה לסרטון קצר המסביר רגרסיה ליניארית ופולינומית. -כדי לאמן את מודל הרגרסיה הליניארית שלנו, נשתמש בספריית **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 נפרדים: + +נתחיל בהפרדת ערכי הקלט (תכונות) והתוצאה המצופה (תווית) למערכי numpy נפרדים: ```python X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1) y = pie_pumpkins['Price'] ``` - -> שימו לב שנדרשנו לבצע `reshape` על נתוני הקלט כדי שחבילת הרגרסיה הליניארית תוכל להבין אותם נכון. רגרסיה ליניארית מצפה למערך דו-ממדי כקלט, שבו כל שורה במערך מתאימה לוקטור של תכונות קלט. במקרה שלנו, מאחר שיש לנו קלט אחד בלבד - אנו צריכים מערך בצורת N×1, כאשר N הוא גודל מערכת הנתונים. -לאחר מכן, עלינו לחלק את הנתונים למערכי אימון ובדיקה, כדי שנוכל לאמת את המודל לאחר האימון: +> שימו לב שנאלצנו לבצע `reshape` על נתוני הקלט כדי שהחבילה Linear Regression תוכל להבין אותם כראוי. רגרסיה ליניארית מצפה לקבל מערך דו-ממדי כקלט, שבו כל שורה במערך מייצגת וקטור של תכונות הקלט. במקרה שלנו, מכיוון שיש לנו רק קלט אחד - דרוש מערך בצורת 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`: + +לבסוף, אימון מודל הרגרסיה הליניארית בפועל לוקח רק שתי שורות קוד. אנו מגדירים את האובייקט `LinearRegression`, ומתאימים אותו לנתונים שלנו באמצעות השיטה `fit`: ```python lin_reg = LinearRegression() lin_reg.fit(X_train,y_train) ``` -האובייקט `LinearRegression` לאחר ביצוע `fit` מכיל את כל מקדמי הרגרסיה, שאליהם ניתן לגשת באמצעות המאפיין `.coef_`. במקרה שלנו, יש רק מקדם אחד, שצריך להיות בסביבות `-0.017`. זה אומר שהמחירים נראים כיורדים במקצת עם הזמן, אבל לא יותר מדי, בסביבות 2 סנטים ליום. ניתן גם לגשת לנקודת החיתוך של הרגרסיה עם ציר ה-Y באמצעות `lin_reg.intercept_` - היא תהיה בסביבות `21` במקרה שלנו, מה שמצביע על המחיר בתחילת השנה. +אובייקט `LinearRegression` לאחר ביצוע `fit` מכיל את כל המקדמים של הרגרסיה, אליהם ניתן לגשת באמצעות המאפיין `.coef_`. במקרה שלנו, יש רק מקדם אחד, שצריך להיות סביב `-0.017`. המשמעות היא שמחירי הדלעות נראים יורדים מעט עם הזמן, אבל לא יותר מדי, בסביבות 2 סנט ליום. ניתן גם לגשת לנקודת המפגש של הרגרסיה עם ציר ה-Y באמצעות `lin_reg.intercept_` - היא תהיה סביב `21` במקרה שלנו, מציינת את המחיר בתחילת השנה. -כדי לראות עד כמה המודל שלנו מדויק, נוכל לחזות מחירים על קבוצת נתוני מבחן, ואז למדוד עד כמה התחזיות שלנו קרובות לערכים הצפויים. ניתן לעשות זאת באמצעות מדד השגיאה הממוצעת הריבועית (MSE), שהוא הממוצע של כל ההבדלים הריבועים בין הערך הצפוי והערך החזוי. +כדי לראות כמה המודל שלנו מדויק, נוכל לחזות מחירים על סט נתוני בדיקה, ואז למדוד כמה החזויים שלנו קרובים לערכים הצפויים. אפשר לעשות זאת באמצעות מדד שגיאת השורש הממוצעת המרובעת (RMSE), שהוא השורש של ממוצע כל ההפרשים בריבוע בין הערך הצפוי והערך החזוי. ```python pred = lin_reg.predict(X_test) -mse = np.sqrt(mean_squared_error(y_test,pred)) -print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') +rmse = np.sqrt(mean_squared_error(y_test,pred)) +print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)') ``` -השגיאה שלנו נראית בסביבות 2 נקודות, שזה כ־17%. לא כל כך טוב. מדד נוסף לאיכות המודל הוא **מקדם הקביעה**, שניתן לקבל כך: +השגיאה שלנו נראית באזור של כ-2 נקודות, שזה בערך ~17%. לא כל כך טוב. מדד נוסף לאיכות המודל הוא **מקדם הקביעה**, שניתן לקבל כך: ```python score = lin_reg.score(X_train,y_train) print('Model determination: ', score) ``` -אם הערך הוא 0, זה אומר שהמודל אינו מתחשב בנתוני הקלט, ופועל כ*התחזית הקווית הגרועה ביותר*, שהיא פשוט ערך ממוצע של התוצאה. ערך של 1 אומר שניתן לחזות באופן מושלם את כל התוצאות הצפויות. במקרה שלנו, המקדם הוא בסביבות 0.06, שזה יחסית נמוך. -אנו יכולים גם לגרור את נתוני המבחן יחד עם קו הרגרסיה כדי לראות טוב יותר איך הרגרסיה פועלת במקרה שלנו: +אם הערך הוא 0, זה אומר שהמודל אינו מתחשב בנתוני הקלט ופועל כ-*התחזית הלינארית הגרועה ביותר*, שהיא פשוט ערך ממוצע של התוצאה. הערך 1 מצביע על כך שניתן לחזות במדויק את כל הערכים הצפויים. במקרה שלנו, המקדמה היא סביב 0.06, שזה יחסית נמוך. + +נוכל גם לשרטט את נתוני הבדיקה יחד עם קו הרגרסיה כדי לראות טוב יותר איך הרגרסיה עובדת במקרה שלנו: ```python plt.scatter(X_test,y_test) @@ -233,19 +234,19 @@ plt.plot(X_test,pred) Linear regression -## רגרסיה פולינומיאלית +## רגרסיה פולינומית -סוג נוסף של רגרסיה לינארית הוא רגרסיה פולינומיאלית. בעוד שלפעמים יש קשר לינארי בין משתנים - ככל שהדלעת גדולה יותר בנפח, כך המחיר גבוה יותר - לפעמים יחסים אלו אינם ניתנים לייצוג במישור או בקו ישר. +סוג נוסף של רגרסיה לינארית הוא רגרסיה פולינומית. לפעמים יש קשר לינארי בין משתנים - למשל, ככל שהדלעת גדולה יותר בנפח, המחיר גבוה יותר - אבל לפעמים הקשרים האלה לא ניתנים לייצוג כמישור או כקו ישר. -✅ הנה [כמה דוגמאות נוספות](https://online.stat.psu.edu/stat501/lesson/9/9.8) לנתונים שיכולים להשתמש ברגרסיה פולינומיאלית +✅ הנה [כמה דוגמאות נוספות](https://online.stat.psu.edu/stat501/lesson/9/9.8) לנתונים שיכולים להשתמש ברגרסיה פולינומית -הסתכל שוב על הקשר בין התאריך למחיר. האם נקודות הפיזור האלה נראות כמו שצריך להיות מנותחות בקו ישר? האם המחירים לא יכולים להשתנות? במקרה הזה, אפשר לנסות רגרסיה פולינומיאלית. +הסתכלו שוב על הקשר בין תאריך למחיר. האם הפיזור הזה נראה כמו משהו שצריך בהכרח לנתח באמצעות קו ישר? האם המחירים לא עשויים להשתנות? במצב כזה, אפשר לנסות רגרסיה פולינומית. -✅ פולינומים הם ביטויים מתמטיים שעשויים לכלול משתנה אחד או יותר ומקדמים +✅ פולינומים הם ביטויים מתמטיים שעשויים לכלול משתנה או יותר ומקדמים -רגרסיה פולינומיאלית יוצרת קו מעוקל, כדי להתאים טוב יותר לנתונים שאינם לינאריים. במקרה שלנו, אם נכלול משתנה `DayOfYear` בריבוע בנתוני הקלט, נוכל להתאים את הנתונים שלנו בעקומת פרבולה, שתהיה לה מינימום בנקודה מסוימת בתוך השנה. +רגרסיה פולינומית יוצרת קו מעוקל שיתאים טוב יותר לנתונים לא לינאריים. במקרה שלנו, אם נכלול את המשתנה הרבוע `DayOfYear` בתוך נתוני הקלט, נוכל לנסות להתאים את הנתונים שלנו בעקומה פרבולית, שתכלול נקודת מינימום מסוימת בתוך השנה. -ספריית Scikit-learn כוללת [API צנרת](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) נוח לשילוב שלבי עיבוד נתונים שונים יחד. **צנרת** היא שרשרת של **אומדנים**. במקרה שלנו, ניצור צנרת שמוסיפה תחילה תכונות פולינומיאליות למודל, ואז מאמנת את הרגרסיה: +סייקיט-לרן כוללת API נוח בשם [pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) שמשלב ביחד כמה שלבי עיבוד של הנתונים. **פייפליין** הוא שרשרת של **אמדנים**. במקרה שלנו, ניצור פייפליין שמוסיף תחילה תכונות פולינומיות למודל, ואחר כך מאמן את הרגרסיה: ```python from sklearn.preprocessing import PolynomialFeatures @@ -256,36 +257,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) pipeline.fit(X_train,y_train) ``` -שימוש ב־`PolynomialFeatures(2)` אומר שנכלול את כל הפולינומים מדרגה שנייה מתוך נתוני הקלט. במקרה שלנו זה פשוט יהיה `DayOfYear`2, אבל אם יש לנו שני משתני קלט X ו־Y, זה יוסיף X2, XY ו־Y2. ניתן גם להשתמש בפולינומים מדרגות גבוהות יותר אם רוצים. +שימוש ב-`PolynomialFeatures(2)` משמעותו שנכליל את כל הפולינומים ממעלה שנייה מתוך נתוני הקלט. במקרה שלנו זה יהיה רק `DayOfYear`2, אבל אם יש לנו שני משתנים קלט, X ו-Y, זה יכלול את X2, XY ו-Y2. אפשר גם להשתמש בפולינומים ממעלה גבוהה יותר אם רוצים. -ניתן להשתמש בצנרות באותו אופן כמו האובייקט `LinearRegression` המקורי, כלומר, נוכל לבצע `fit` לצנרת, ואז להשתמש ב־`predict` כדי לקבל את תוצאות התחזית. להלן הגרף המציג את נתוני המבחן, ועקומת ההתאמה: +ניתן להשתמש בפייפליינים באותה צורה שבה השתמשנו באובייקט `LinearRegression` המקורי, כלומר נבצע `fit` לפייפליין, ואז נשתמש ב-`predict` לקבלת התוצאות. הנה הגרף שמראה את נתוני הבדיקה ואת עקומת ההתאמה: Polynomial regression -בשימוש ברגרסיה פולינומיאלית, אנחנו יכולים לקבל MSE נמוך יותר במעט ומקדם קביעה גבוה יותר, אבל לא באופן משמעותי. נצטרך לקחת בחשבון תכונות נוספות! +באמצעות רגרסיה פולינומית נוכל לקבל מעט פחות שגיאה ממוצעת מרובעת ומקדמת קביעה גבוהה יותר, אך לא משמעותית. צריך לקחת בחשבון תכונות נוספות! -> ניתן לראות שמחירי הדלעות הנמוכים ביותר נצפים בסביבות ליל כל הקדושים. איך אפשר להסביר זאת? +> אפשר לראות שמחירי הדלעות הנמוכים ביותר נצפים בערך סביב הלואווין. איך אתה מסביר את זה? -🎃 כל הכבוד, יצרת מודל שיכול לסייע לחזות את מחיר דלעת לפאי. כנראה שתוכל לחזור על אותו תהליך לכל סוגי הדלעות, אבל זה יהיה מעייף. בוא נלמד עכשיו איך לקחת בחשבון מגוון דלעת במודל שלנו! +🎃 מזל טוב, רק יצרת מודל שיכול לעזור לחזות את מחירי דלעות הפאי. כנראה שתוכל לחזור על אותה פעולה עבור כל סוגי הדלעות, אבל זה יהיה משעמם. בוא נלמד עכשיו כיצד לקחת את סוג הדלעת בחשבון במודל שלנו! -## תכונות קטגוריות +## תכונות קטגוריאליות -בעולם האידיאלי, אנחנו רוצים להיות מסוגלים לחזות מחירים לסוגים שונים של דלעות באמצעות אותו מודל. עם זאת, עמודת `Variety` שונה במקצת מעמודות כמו `Month`, כי היא מכילה ערכים לא מספריים. עמודות כאלה נקראות **קטגוריות**. +בעולם האידיאלי, היינו רוצים לחזות מחירים עבור סוגים שונים של דלעות תוך שימוש באותו מודל. עם זאת, עמודת `Variety` שונה במקצת מעמודות כמו `Month`, כי היא מכילה ערכים שאינם מספריים. עמודות כאלה נקראות **קטגוריאליות**. -[![ML למתחילים - תחזיות תכונות קטגוריות עם רגרסיה לינארית](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML למתחילים - תחזיות תכונות קטגוריות עם רגרסיה לינארית") +[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression") -> 🎥 לחצו על התמונה למעלה לסרטון קצר שמסביר שימוש בתכונות קטגוריות. +> 🎥 לחצו על התמונה למעלה לסרטון קצר שמסביר על שימוש בתכונות קטגוריאליות. -כאן ניתן לראות כיצד המחיר הממוצע תלוי בסוג: +כאן נראה איך המחיר הממוצע תלוי בסוג: Average price by variety -כדי לקחת בחשבון את הסוג, צריכים תחילה להמיר אותו לצורה מספרית, או **לקודד** אותו. קיימות כמה דרכים לעשות זאת: +כדי לקחת בחשבון את הסוג, אנחנו צריכים קודם להמיר אותו לצורה מספרית, כלומר **לקודד** אותו. יש כמה דרכים לעשות זאת: -* **קידוד מספרי** פשוט יבנה טבלה של סוגים שונים, ואז יחליף את שם הסוג במספר אינדקס בטבלה הזו. זו לא רעיון טוב לרגרסיה לינארית, כי היא מתחשבת בערך המספרי האמיתי של האינדקס, ומוסיפה אותו לתוצאה אחרי הכפל במקדם כלשהו. במקרה שלנו, הקשר בין מספר האינדקס למחיר אינו לינארי, אפילו אם נסדר את האינדקסים בסדר מסוים. -* **קידוד One-hot** יחליף את עמודת `Variety` בארבע עמודות שונות, אחת לכל סוג. כל עמודה תכיל `1` אם השורה המתאימה היא של אותו סוג, ו־`0` אחרת. משמעות הדבר היא שיהיו ארבעה מקדמים ברגרסיה הלינארית, אחד לכל סוג דלעת, האחראיים ל"מחיר ההתחלתי" (או במדויק יותר "התווסף למחיר") עבור אותו סוג. +* **הקידוד המספרי הפשוט** יבנה טבלה של סוגים שונים, ואז יחליף את שם הסוג עם אינדקס בטבלה הזו. זו לא רעיון טוב במיוחד עבור רגרסיה לינארית, כי הרגרסיה הלינארית מתייחסת לערך המספרי הממשי של האינדקס ומוסיפה אותו לתוצאה, כפול מקדם מסוים. במקרה שלנו, הקשר בין מספר האינדקס למחיר אינו לינארי, אפילו אם נסדר את האינדקסים בסדר כלשהו. +* **קידוד one-hot** יחליף את העמודה `Variety` בארבעה עמודות שונות, אחת לכל סוג. כל עמודה תכיל `1` אם השורה המקבילה שייכת לסוג זה, ו-`0` אחרת. המשמעות היא שיהיו ארבעה מקדמים ברגרסיה הלינארית, אחד לכל סוג דלעת, שאחראים על "מחיר התחלתי" (או יותר נכון המחיר הנוסף) עבור הסוג המסוים הזה. -הקוד שלמטה מראה כיצד ניתן לקודד one-hot את הסוג: +הקוד מטה מראה איך לקודד את הסוג ב-one-hot: ```python pd.get_dummies(new_pumpkins['Variety']) @@ -302,14 +303,14 @@ pd.get_dummies(new_pumpkins['Variety']) 1741 | 0 | 1 | 0 | 0 1742 | 0 | 1 | 0 | 0 -כדי לאמן רגרסיה לינארית תוך שימוש בסוג המקודד one-hot כקלט, צריך פשוט לאתחל את הנתונים `X` ו־`y` כראוי: +כדי לאמן רגרסיה לינארית עם סוג מקודד ב-one-hot כקלט, פשוט צריך לאתחל את הנתונים `X` ו-`y` בצורה נכונה: ```python X = pd.get_dummies(new_pumpkins['Variety']) y = new_pumpkins['Price'] ``` -שאר הקוד זהה למה שהשתמשנו בו למעלה להכשרת רגרסיה לינארית. אם תנסו זאת, תראו שהשגיאה הממוצעת הריבועית (MSE) תהיה בערך זהה, אבל נקבל מקדם קביעה הרבה יותר גבוה (~77%). כדי לקבל תחזיות מדויקות יותר, נוכל לקחת בחשבון עוד תכונות קטגוריות, כמו גם תכונות מספריות, כמו `Month` או `DayOfYear`. כדי לקבל מערך תכונות גדול אחד, נוכל להשתמש ב־`join`: +שאר הקוד זהה לזה שבו השתמשנו למעלה כדי לאמן רגרסיה לינארית. אם תנסו זאת, תראו שהשגיאה הממוצעת המרובעת דומה, אבל מקדם הקביעה גבוה משמעותית (~77%). כדי לקבל תחזיות מדויקות יותר, נוכל לקחת בחשבון יותר תכונות קטגוריאליות, וגם תכונות מספריות, כגון `Month` או `DayOfYear`. כדי לקבל מערך אחד גדול של תכונות, נוכל להשתמש ב-`join`: ```python X = pd.get_dummies(new_pumpkins['Variety']) \ @@ -319,31 +320,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \ y = new_pumpkins['Price'] ``` -כאן אנחנו גם מתחשבים ב־`City` ובסוג `Package`, מה שמקנה לנו MSE של 2.84 (10%), ומקדם קביעה של 0.94! +כאן אנחנו גם לוקחים בחשבון את `City` ואת סוג `Package`, מה שמביא אותנו ל-MSE של 2.84 (10%), ומקדם קביעה של 0.94! -## לשלב הכל יחד +## לשלב את הכול ביחד -כדי ליצור את המודל הטוב ביותר, נוכל להשתמש בנתונים משולבים (קטגוריים מקודדים one-hot + מספריים) מהדוגמה למעלה יחד עם רגרסיה פולינומיאלית. להלן הקוד המלא לנוחיותכם: +כדי ליצור את המודל הטוב ביותר, נוכל להשתמש בנתונים משולבים (קטגוריאליים המקודדים ב-one-hot + מספריים) מהדוגמה שלמעלה יחד עם רגרסיה פולינומית. הנה הקוד המלא לנוחותכם: ```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'] -# לבצע פיצול לאימון ובדיקה +# לבצע חלוקה לאימון ובדיקה X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) -# להגדיר ולאמן את צנרת הנתונים +# להגדיר ולאמן את צינור העיבוד pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) pipeline.fit(X_train,y_train) # לחזות תוצאות עבור נתוני הבדיקה pred = pipeline.predict(X_test) -# לחשב שגיאת ממוצע ריבועי (MSE) ו-\u05D4\u05D7\u05D5\u05DE\u05D3\u05D4 +# לחשב שגיאת ממוצע ריבועי ויחס ההסבר mse = np.sqrt(mean_squared_error(y_test,pred)) print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') @@ -351,36 +352,36 @@ score = pipeline.score(X_train,y_train) print('Model determination: ', score) ``` -זה אמור לתת לנו את מקדם הקביעה הטוב ביותר של כמעט 97%, ו־MSE=2.23 (שגיאת תחזית של כ־8%). +זה אמור לתת לנו את מקדם הקביעה הטוב ביותר, כמעט 97%, ו-MSE=2.23 (~8% שגיאת תחזית). | מודל | MSE | מקדם קביעה | |-------|-----|---------------| -| `DayOfYear` לינארי | 2.77 (17.2%) | 0.07 | -| `DayOfYear` פולינומיאלית | 2.73 (17.0%) | 0.08 | -| `Variety` לינארי | 5.24 (19.7%) | 0.77 | -| כל התכונות לינארי | 2.84 (10.5%) | 0.94 | -| כל התכונות פולינומיאלית | 2.23 (8.25%) | 0.97 | +| רגרסיה לינארית עם `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%. בחלק הסופי בנושא רגרסיה תלמד על רגרסיה לוגיסטית לקביעת קטגוריות. +🏆 כל הכבוד! יצרתם ארבעה מודלי רגרסיה בשיעור אחד, ושיפרתם את האיכות של המודל ל-97%. בסעיף הסופי ברגרסיה תלמדו על רגרסיה לוגיסטית כדי לקבוע קטגוריות. --- ## 🚀אתגר -בדוק כמה משתנים שונים במחברת זו כדי לראות כיצד מתאם מתייחס לדיוק המודל. +נסו משתנים שונים במחברת זו כדי לראות כיצד הקורלציה מתיישבת עם דיוק המודל. -## [מבחן לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/) +## [מבחן אחרי ההרצאה](https://ff-quizzes.netlify.app/en/ml/) ## סקירה ולמידה עצמית -בשיעור זה למדנו על רגרסיה לינארית. יש סוגים חשובים נוספים של רגרסיה. קרא על שיטות Stepwise, Ridge, Lasso ו-Elasticnet. קורס טוב ללמידה נוספת הוא [קורס הלמידה הסטטיסטית של סטנפורד](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) +בשיעור זה למדנו על רגרסיה לינארית. ישנם סוגים חשובים אחרים של רגרסיה. קראו על טכניקות Stepwise, Ridge, Lasso ו-Elasticnet. קורס טוב ללמוד ממנו עוד הוא [קורס למידה סטטיסטית של סטנפורד](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) -## משימה +## מטלה -[בנה מודל](assignment.md) +[בנו מודל](assignment.md) --- **כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדייק, יש להיות מודעים לכך שתרגומים אוטומטיים עלולים להכיל שגיאות או אי דיוקים. יש לראות את המסמך המקורי בשפת המקור כמקור המוסמך והמהימן. למידע קריטי מומלץ להשתמש בתרגום מקצועי שנעשה על ידי אדם. אנו לא נושא באחריות לכל אי הבנה או פרשנות שגויה הנובעים משימוש בתרגום זה. +מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [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 index 3bca12c7a..16c861f0f 100644 --- a/translations/he/4-Classification/2-Classifiers-1/README.md +++ b/translations/he/4-Classification/2-Classifiers-1/README.md @@ -1,17 +1,17 @@ # מסווגי מטבחים 1 -בשיעור הזה, תשתמשו במאגר הנתונים ששמרתם מהשיעור הקודם, שמלא בנתונים מאוזנים ונקיים על מטבחים. +בשעור זה, תשתמש במאגר הנתונים ששמרת מהשיעור הקודם מלא בנתונים נקיים ומאוזנים אודות מטבחים. -תשתמשו במאגר הנתונים הזה עם מגוון מסווגים כדי _לחזות מטבח לאומי מסוים בהתבסס על קבוצת מרכיבים_. תוך כדי כך, תלמדו יותר על כמה מהדרכים שבהן ניתן להשתמש באלגוריתמים למשימות סיווג. +תשתמש במאגר זה עם מגוון מסווגים כדי _לחזות מטבח לאומי נתון בהתבסס על קבוצה של מרכיבים_. בעת ביצוע זאת, תלמד עוד על כמה מהדרכים בהן ניתן לנצל אלגוריתמים לביצוע משימות סיווג. -## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/) +## [מבחן טרום-הרצאה](https://ff-quizzes.netlify.app/en/ml/) # הכנה -בהנחה שסיימתם את [שיעור 1](../1-Introduction/README.md), ודאו שקובץ _cleaned_cuisines.csv_ נמצא בתיקיית השורש `/data` עבור ארבעת השיעורים הללו. +בהנחה שסיימת את [שיעור 1](../1-Introduction/README.md), וודא שקובץ _cleaned_cuisines.csv_ קיים בתיקיית השורש `/data` עבור ארבעת השיעורים הללו. ## תרגיל - חיזוי מטבח לאומי -1. בעבודה בתיקיית _notebook.ipynb_ של השיעור הזה, ייבאו את הקובץ יחד עם ספריית Pandas: +1. בעבודה בתיקיית _notebook.ipynb_ של שיעור זה, ייבא את הקובץ יחד עם ספריית Pandas: ```python import pandas as pd @@ -30,7 +30,7 @@ | 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | -1. עכשיו, ייבאו עוד כמה ספריות: +1. עכשיו, ייבא מספר ספריות נוספות: ```python from sklearn.linear_model import LogisticRegression @@ -40,7 +40,7 @@ import numpy as np ``` -1. חלקו את הקואורדינטות X ו-y לשני מסגרות נתונים עבור אימון. `cuisine` יכולה להיות מסגרת הנתונים של התוויות: +1. חלק את הקואורדינטות X ו-y לשני DataFrame-ים עבור האימון. `cuisine` יכול להיות ה-DataFrame של התוויות: ```python cuisines_label_df = cuisines_df['cuisine'] @@ -58,14 +58,14 @@ Name: cuisine, dtype: object ``` -1. הסירו את העמודה `Unnamed: 0` ואת העמודה `cuisine` באמצעות `drop()`. שמרו את שאר הנתונים כמאפיינים לאימון: +1. הסר את העמודות `Unnamed: 0` ו-`cuisine` באמצעות קריאה ל-`drop()`. שמור את שאר הנתונים כמאפייני אימון: ```python cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) cuisines_feature_df.head() ``` - המאפיינים שלכם ייראו כך: + המאפיינים שלך נראים כך: | | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | @@ -75,85 +75,85 @@ | 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) עשוי להיות מבלבל במבט ראשון. השיטות הבאות כולן כוללות טכניקות סיווג: +Scikit-learn מסווג את הסיווג תחת לימת מפקח, ובקטגוריה זו תמצא דרכים רבות לסווג. [המגוון](https://scikit-learn.org/stable/supervised_learning.html) מבלבל למדי במבט ראשון. השיטות הבאות כוללות טכניקות סיווג: -- מודלים ליניאריים -- מכונות וקטור תמיכה -- ירידה גרדיאנטית סטוכסטית -- שכנים קרובים -- תהליכים גאוסיאניים -- עצי החלטה -- שיטות אנסמבל (מסווג הצבעה) -- אלגוריתמים רב-מחלקתיים ורב-תוצאות (סיווג רב-מחלקתי ורב-תוויתי, סיווג רב-מחלקתי-רב-תוצאות) +- מודלים לינאריים +- מכונות וקטור תמיכה (SVM) +- ירידת גרדיאנט סטוכסטית +- השכנים הקרובים ביותר +- תהליכים גאוסיים +- עצי החלטה +- שיטות אסמבלא (מסווג הצבעות) +- אלגוריתמים לריבוי מחלקות וריבוי תפוקות (סיווג Multiclass ו-multilabel, סיווג multiclass-multioutput) -> ניתן גם להשתמש [ברשתות נוירונים לסיווג נתונים](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), אבל זה מחוץ לתחום השיעור הזה. +> ניתן גם להשתמש ב[רשתות עצביות לסיווג נתונים](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), אך זה מחוץ לתחום שיעור זה. ### איזה מסווג לבחור? -אז, איזה מסווג כדאי לבחור? לעיתים, מעבר על כמה מהם וחיפוש אחר תוצאה טובה היא דרך לבדוק. Scikit-learn מציעה [השוואה צד-לצד](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) על מאגר נתונים שנוצר, המשווה בין KNeighbors, SVC בשתי דרכים, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ו-QuadraticDiscrinationAnalysis, ומציגה את התוצאות בצורה חזותית: +אז, איזה מסווג כדאי לבחור? לעיתים קרובות, הרצת כמה מהם וחיפוש אחר תוצאה טובה היא דרך לבדוק. Scikit-learn מציעה [השוואה מקבילה](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) על מאגר נתונים שנוצר, המשווה בין KNeighbors, SVC בשתי דרכים, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ו-QuadraticDiscrinationAnalysis, ומציגה את התוצאות בצורה ויזואלית: -![השוואת מסווגים](../../../../4-Classification/2-Classifiers-1/images/comparison.png) -> גרפים שנוצרו בתיעוד של Scikit-learn +![השוואת מסווגים](../../../../translated_images/he/comparison.edfab56193a85e7f.webp) +> תרשימים שנוצרו בתיעוד של Scikit-learn -> AutoML פותר את הבעיה הזו בצורה מסודרת על ידי הרצת ההשוואות הללו בענן, ומאפשר לכם לבחור את האלגוריתם הטוב ביותר עבור הנתונים שלכם. נסו זאת [כאן](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) +> AutoML פותר בעיה זו באופן אלגנטי על ידי ביצוע השוואות אלה בענן, ומאפשר לך לבחור את האלגוריתם הטוב ביותר עבור הנתונים שלך. נסה את זה [כאן](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) ### גישה טובה יותר -גישה טובה יותר מאשר לנחש באופן אקראי היא לעקוב אחר הרעיונות בדף העזר להורדה [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). כאן, אנו מגלים שבשביל הבעיה הרב-מחלקתית שלנו, יש לנו כמה אפשרויות: +גישה טובה יותר מאשר ניחוש פרוע, היא לעקוב אחר הרעיונות שבגליון [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) הניתן להורדה. כאן, אנו מגלים שלבעיית הריבוי מחלקות שלנו יש כמה אפשרויות: -![דף עזר לבעיות רב-מחלקתיות](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png) -> חלק מדף העזר של Microsoft לאלגוריתמים, המתאר אפשרויות סיווג רב-מחלקתיות +![גליון רמאויות לבעיות ריבוי מחלקות](../../../../translated_images/he/cheatsheet.07a475ea444d2223.webp) +> קטע מגליון הרמאויות של מיקרוסופט, המתאר אפשרויות לסיווג ריבוי מחלקות -✅ הורידו את דף העזר הזה, הדפיסו אותו ותלו אותו על הקיר שלכם! +✅ הורד את גיליון הרמאויות הזה, הדפס אותו ותלה אותו על הקיר שלך! -### נימוקים +### שיקול דעת -בואו נראה אם נוכל לנמק את דרכנו דרך גישות שונות בהתחשב במגבלות שיש לנו: +בוא נראה אם נוכל לנמק את הדרך דרך גישות שונות בהתחשב במגבלות שיש לנו: -- **רשתות נוירונים כבדות מדי**. בהתחשב במאגר הנתונים הנקי אך המינימלי שלנו, ובעובדה שאנחנו מריצים את האימון באופן מקומי דרך מחברות, רשתות נוירונים כבדות מדי למשימה הזו. -- **אין מסווג דו-מחלקתי**. אנחנו לא משתמשים במסווג דו-מחלקתי, כך שזה שולל את האפשרות של one-vs-all. -- **עץ החלטה או רגרסיה לוגיסטית יכולים לעבוד**. עץ החלטה עשוי לעבוד, או רגרסיה לוגיסטית עבור נתונים רב-מחלקתיים. -- **עצים החלטה מחוזקים רב-מחלקתיים פותרים בעיה אחרת**. עץ החלטה מחוזק רב-מחלקתי מתאים ביותר למשימות לא פרמטריות, למשל משימות שנועדו לבנות דירוגים, ולכן הוא לא שימושי עבורנו. +- **רשתות עצביות כבדות מדי**. בהתבסס על מאגר הנתונים הנקי, אך המינימלי שלנו, ועל העובדה שאנו עושים אימון מקומי דרך פנקסי הערות (notebooks), רשתות עצביות הן כבדות מדי למשימה זו. +- **אין מסווג דו-מחלקתי**. אנחנו לא משתמשים במסווג דו-מחלקתי, ולכן שוללים את השיטה one-vs-all. +- **עץ החלטה או רגרסיה לוגיסטית יכולים להתאים**. עץ החלטה עשוי להתאים, או רגרסיה לוגיסטית לנתונים מרובי מחלקות. +- **עצים מחוזקים לריבוי מחלקות פותרים בעיה שונה**. עץ החלטה מחוזק לריבוי מחלקות מתאים בעיקר למשימות לא פרמטריות, לדוגמה משימות שנועדו לבנות דירוגים, ולכן אינו שימושי במקרה שלנו. -### שימוש ב-Scikit-learn +### שימוש ב-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). +נשתמש ב-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`. +בעיקרון קיימים שני פרמטרים חשובים - `multi_class` ו-`solver` - שעלינו להגדיר כאשר מבקשים מ-Scikit-learn לבצע רגרסיה לוגיסטית. הערך של `multi_class` מכתיב התנהגות מסוימת. ערך `solver` הוא האלגוריתם שיש להשתמש בו. לא כל ה-solvers יכולים להיות משולבים עם כל ערכי `multi_class` . -לפי התיעוד, במקרה הרב-מחלקתי, אלגוריתם האימון: +לפי התיעוד, במקרה של ריבוי מחלקות, אלגוריתם האימון: -- **משתמש בתוכנית one-vs-rest (OvR)**, אם אפשרות `multi_class` מוגדרת כ-`ovr` -- **משתמש באובדן קרוס-אנטרופי**, אם אפשרות `multi_class` מוגדרת כ-`multinomial`. (כרגע אפשרות `multinomial` נתמכת רק על ידי הפותרים ‘lbfgs’, ‘sag’, ‘saga’ ו-‘newton-cg’.)" +- **משתמש בסכמת one-vs-rest (OvR)** אם אפשרות `multi_class` מוגדרת כ-`ovr` +- **משתמש בהפסד cross-entropy**, אם אפשרות `multi_class` מוגדרת ל-`multinomial` (כיום אפשרות `multinomial` נתמכת רק על ידי solvers מסוג ‘lbfgs’, ‘sag’, ‘saga’ ו-‘newton-cg’)." -> 🎓 ה'תוכנית' כאן יכולה להיות 'ovr' (one-vs-rest) או 'multinomial'. מכיוון שרגרסיה לוגיסטית נועדה למעשה לתמוך בסיווג בינארי, תוכניות אלו מאפשרות לה להתמודד טוב יותר עם משימות סיווג רב-מחלקתיות. [מקור](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) +> 🎓 ה'סכמה' כאן יכולה להיות '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). +> 🎓 ה-'solver' מוגדר כ"אלגוריתם לשימוש בפתרון בעיית האופטימיזציה". [מקור](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). -Scikit-learn מציעה את הטבלה הזו כדי להסביר כיצד פותרים מתמודדים עם אתגרים שונים שמוצגים על ידי מבני נתונים שונים: +Scikit-learn מציעה טבלה המסבירה איך שיטות הפיתרון מתמודדות עם אתגרים שונים המוצגים על ידי סוגי מבני נתונים שונים: -![פותרים](../../../../4-Classification/2-Classifiers-1/images/solvers.png) +![solvers](../../../../translated_images/he/solvers.5fc648618529e627.webp) -## תרגיל - פיצול הנתונים +## תרגיל - פצל את הנתונים -נוכל להתמקד ברגרסיה לוגיסטית לניסוי האימון הראשון שלנו מכיוון שלמדתם עליה לאחרונה בשיעור קודם. -פצלו את הנתונים שלכם לקבוצות אימון ובדיקה על ידי קריאה ל-`train_test_split()`: +נוכל להתמקד ברגרסיה לוגיסטית לניסוי האימון הראשון שלנו מכיוון שלמדת רק לאחרונה עליה בשיעור קודם. +חתוך את הנתונים שלך לקבוצות אימון ובדיקה עם קריאה ל-`train_test_split()`: ```python X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) ``` -## תרגיל - יישום רגרסיה לוגיסטית +## תרגיל - השתמש ברגרסיה לוגיסטית -מכיוון שאתם משתמשים במקרה הרב-מחלקתי, עליכם לבחור איזו _תוכנית_ להשתמש ואיזה _פותר_ להגדיר. השתמשו ב-LogisticRegression עם הגדרה רב-מחלקתית והפותר **liblinear** לאימון. +מכיוון שאתה משתמש במקרה של ריבוי מחלקות, עליך לבחור איזו _סכמה_ להשתמש ואיזה _solver_ להגדיר. השתמש ב-LogisticRegression עם הגדרת ריבוי מחלקות ו-**liblinear** בתור ה-solver לאימון. -1. צרו רגרסיה לוגיסטית עם multi_class מוגדר כ-`ovr` והפותר מוגדר כ-`liblinear`: +1. צור רגרסיה לוגיסטית עם multi_class מוגדר כ-`ovr` וה-solver מוגדר כ-`liblinear`: ```python lr = LogisticRegression(multi_class='ovr',solver='liblinear') @@ -163,11 +163,13 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine print ("Accuracy is {}".format(accuracy)) ``` - ✅ נסו פותר אחר כמו `lbfgs`, שלרוב מוגדר כברירת מחדל -> שים לב, השתמש בפונקציה [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) של Pandas כדי לשטח את הנתונים שלך בעת הצורך. -הדיוק טוב ביותר מ-**80%**! + ✅ נסה solver שונה כמו `lbfgs`, שלרוב מוגדר כברירת מחדל -1. ניתן לראות את המודל בפעולה על ידי בדיקת שורה אחת של נתונים (#50): + > שים לב, השתמש בפונקציה [`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()}') @@ -181,9 +183,8 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine cuisine: indian ``` - ✅ נסו מספר שורה שונה ובדקו את התוצאות - -1. אם נעמיק, ניתן לבדוק את דיוק התחזית הזו: + ✅ נסה מספר שורה שונה ובדוק את התוצאות +1. חופרים לעומק, ניתן לבדוק את הדיוק של התחזית הזו: ```python test= X_test.iloc[50].values.reshape(-1, 1).T @@ -195,7 +196,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine topPrediction.head() ``` - התוצאה מודפסת - המטבח ההודי הוא הניחוש הטוב ביותר, עם הסתברות גבוהה: + התוצאה מודפסת - המטבח ההודי הוא הניחוש הטוב ביותר, עם הסתברות טובה: | | 0 | | -------: | -------: | @@ -205,9 +206,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine | korean | 0.017277 | | thai | 0.007634 | - ✅ האם תוכלו להסביר מדוע המודל די בטוח שזהו מטבח הודי? + ✅ האם תוכל להסביר מדוע המודל די בטוח שזה מטבח הודי? -1. קבלו פרטים נוספים על ידי הדפסת דוח סיווג, כפי שעשיתם בשיעורי הרגרסיה: +1. קבל פרטים נוספים על ידי הדפסת דוח סיווג, כפי שעשית בשיעורי הרגרסיה: ```python y_pred = model.predict(X_test) @@ -221,24 +222,26 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine | japanese | 0.70 | 0.75 | 0.72 | 220 | | korean | 0.86 | 0.76 | 0.81 | 242 | | thai | 0.79 | 0.85 | 0.82 | 254 | - | accuracy | 0.80 | 1199 | | | + | accuracy | | | 0.80 | 1199 | | macro avg | 0.80 | 0.80 | 0.80 | 1199 | | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | ## 🚀אתגר -בשיעור זה השתמשתם בנתונים הנקיים שלכם כדי לבנות מודל למידת מכונה שיכול לחזות מטבח לאומי בהתבסס על סדרת מרכיבים. הקדישו זמן לקרוא על האפשרויות הרבות ש-Scikit-learn מציעה לסיווג נתונים. העמיקו במושג 'solver' כדי להבין מה מתרחש מאחורי הקלעים. +בשיעור זה, השתמשת בנתונים המסוננים שלך לבניית מודל למידת מכונה שיכול לנבא מטבח לאומי בהתבסס על סדרת רכיבים. קח קצת זמן לקרוא על האפשרויות הרבות ש-Scikit-learn מספקת לסיווג נתונים. חקור לעומק את מושג ה'פותר' (solver) כדי להבין מה מתרחש מאחורי הקלעים. -## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/) +## [חידון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/) -## סקירה ולימוד עצמי +## סקירה ולמידה עצמית -העמיקו מעט במתמטיקה שמאחורי רגרסיה לוגיסטית ב[שיעור הזה](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) +חפר קצת יותר לעומק למתמטיקה שמאחורי רגרסיה לוגיסטית ב[השיעור הזה](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) ## משימה -[לימדו על ה-solvers](assignment.md) +[למד את הפותרים](assignment.md) --- + **כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה. \ No newline at end of file +מסמך זה תורגם בעזרת שירות תרגום מבוסס בינה מלאכותית [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 index c731f6db7..b9d95f3ed 100644 --- a/translations/he/README.md +++ b/translations/he/README.md @@ -1,95 +1,95 @@ [![רישיון GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) [![תורמים ל-GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![בעיות ב-GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![נושאים ב-GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![בקשות משיכה ב-GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) -[![עוקבים ב-GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![צופים ב-GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) [![מזלגות ב-GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) [![כוכבים ב-GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) -### 🌐 תמיכה רב-לשונית +### 🌐 תמיכה ברב-שפות -#### נתמך באמצעות GitHub Action (אוטומטי ותמיד מעודכן) +#### נתמך דרך GitHub Action (אוטומטי ותמיד מעודכן) -[ערבית](../ar/README.md) | [בנגלית](../bn/README.md) | [בולגרית](../bg/README.md) | [בורמזית (מיאנמר)](../my/README.md) | [סינית (מפושטת)](../zh-CN/README.md) | [סינית (מסורתית, הונג קונג)](../zh-HK/README.md) | [סינית (מסורתית, מקאו)](../zh-MO/README.md) | [סינית (מסורתית, טאיוואן)](../zh-TW/README.md) | [קרואטית](../hr/README.md) | [צ'כית](../cs/README.md) | [דנית](../da/README.md) | [הולנדית](../nl/README.md) | [אסטונית](../et/README.md) | [פינית](../fi/README.md) | [צרפתית](../fr/README.md) | [גרמנית](../de/README.md) | [יוונית](../el/README.md) | [עברית](./README.md) | [הינדי](../hi/README.md) | [הונגרית](../hu/README.md) | [אינדונזית](../id/README.md) | [איטלקית](../it/README.md) | [יפנית](../ja/README.md) | [קנאדה](../kn/README.md) | [חמרית](../km/README.md) | [קוריאנית](../ko/README.md) | [ליטאית](../lt/README.md) | [מלאית](../ms/README.md) | [מלאיאלאם](../ml/README.md) | [מרטהי](../mr/README.md) | [נפאלית](../ne/README.md) | [פידג'ין ניגרי](../pcm/README.md) | [נורווגית](../no/README.md) | [פרסית (פרסית)](../fa/README.md) | [פולנית](../pl/README.md) | [פורטוגזית (ברזיל)](../pt-BR/README.md) | [פורטוגזית (פורטוגל)](../pt-PT/README.md) | [פונג'אבי (גורמוכי)](../pa/README.md) | [רומנית](../ro/README.md) | [רוסית](../ru/README.md) | [סרבית (קירילית)](../sr/README.md) | [סלובקית](../sk/README.md) | [סלובנית](../sl/README.md) | [ספרדית](../es/README.md) | [סווהילית](../sw/README.md) | [שבדית](../sv/README.md) | [טגלוג (פיליפינית)](../tl/README.md) | [טמילית](../ta/README.md) | [טלוגו](../te/README.md) | [תאית](../th/README.md) | [טורקית](../tr/README.md) | [אוקראינית](../uk/README.md) | [אורדו](../ur/README.md) | [וייטנאמית](../vi/README.md) +[ערבית](../ar/README.md) | [בנגלית](../bn/README.md) | [בולגרית](../bg/README.md) | [בורמזית (מיאנמר)](../my/README.md) | [סינית (מפושטת)](../zh-CN/README.md) | [סינית (מסורתית, הונג קונג)](../zh-HK/README.md) | [סינית (מסורתית, מאקאו)](../zh-MO/README.md) | [סינית (מסורתית, טייוואן)](../zh-TW/README.md) | [קרואטית](../hr/README.md) | [צ'כית](../cs/README.md) | [דנית](../da/README.md) | [הולנדית](../nl/README.md) | [אסטונית](../et/README.md) | [פינית](../fi/README.md) | [צרפתית](../fr/README.md) | [גרמנית](../de/README.md) | [יוונית](../el/README.md) | [עברית](./README.md) | [הינדי](../hi/README.md) | [הונגרית](../hu/README.md) | [אינדונזית](../id/README.md) | [איטלקית](../it/README.md) | [יפנית](../ja/README.md) | [קאנדה](../kn/README.md) | [חמרית](../km/README.md) | [קוריאנית](../ko/README.md) | [ליטאית](../lt/README.md) | [מלאית](../ms/README.md) | [מלאיאלאם](../ml/README.md) | [מרתהי](../mr/README.md) | [נפאלית](../ne/README.md) | [פידג'ין ניגרי](../pcm/README.md) | [נורווגית](../no/README.md) | [פרסית (פרסי)](../fa/README.md) | [פולנית](../pl/README.md) | [פורטוגזית (ברזיל)](../pt-BR/README.md) | [פורטוגזית (פורטוגל)](../pt-PT/README.md) | [פנג'אבי (גורמוכי)](../pa/README.md) | [רומנית](../ro/README.md) | [רוסית](../ru/README.md) | [סרבית (קירילית)](../sr/README.md) | [סלובקית](../sk/README.md) | [סלובנית](../sl/README.md) | [ספרדית](../es/README.md) | [סווהילית](../sw/README.md) | [שוודית](../sv/README.md) | [טגלוג (פיליפינית)](../tl/README.md) | [טמילית](../ta/README.md) | [טלוגו](../te/README.md) | [תאית](../th/README.md) | [טורקית](../tr/README.md) | [אוקראינית](../uk/README.md) | [אורדו](../ur/README.md) | [וייטנאמית](../vi/README.md) > **מעדיפים לשכפל מקומית?** > -> מאגר זה כולל מעל 50 תרגומים לשפות השונות מה שמגדיל משמעותית את גודל ההורדה. כדי לשכפל ללא תרגומים, השתמשו בבחירת Checkout דלילה: +> מאגר זה כולל יותר מ-50 תרגומים של שפות שמגדילים משמעותית את גודל ההורדה. כדי לשכפל ללא תרגומים, השתמשו ב-sparse checkout: > -> **Bash / macOS / Linux:** +> **באש / macOS / לינוקס:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` > -> **CMD (Windows):** +> **CMD (ווינדוס):** > ```cmd > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> זה נותן לכם הכל כדי להשלים את הקורס עם מהירות הורדה מהירה יותר. +> זה נותן לכם את כל מה שצריך כדי לסיים את הקורס עם הורדה מהירה יותר. #### הצטרפו לקהילה שלנו [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -יש לנו סדרת למידה ב-Discord עם AI שמתנהלת כרגע, למדו עוד והצטרפו אלינו ב-[סדרת למידה עם AI](https://aka.ms/learnwithai/discord) מ-18 עד 30 ספטמבר 2025. תקבלו טיפים וטריקים לשימוש ב-GitHub Copilot למדעי הנתונים. +יש לנו סדרת לימוד ב-Discord עם AI, למדו עוד והצטרפו אלינו ב-[Learn with AI Series](https://aka.ms/learnwithai/discord) בין התאריכים 18 - 30 בספטמבר 2025. תקבלו טיפים וטריקים לשימוש ב-GitHub Copilot במדעי הנתונים. -![סדרת למידה עם AI](../../translated_images/he/3.9b58fd8d6c373c20.webp) +![סדרת Learn with AI](../../translated_images/he/3.9b58fd8d6c373c20.webp) -# למידת מכונה למתחילים - תוכנית לימודים +# למידת מכונה למתחילים - תכנית לימודים -> 🌍 סעו סביב העולם תוך כדי חקר למידת מכונה באמצעות תרבויות העולם 🌍 +> 🌍 טוסו ברחבי העולם כשאנחנו חוקרים למידת מכונה באמצעות תרבויות העולם 🌍 -הפעילים של הענן במיקרוסופט שמחים להציע תוכנית לימודים בת 12 שבועות ו-26 שיעורים העוסקת כולה ב**למידת מכונה**. בתוכנית זו תלמדו על מה שלעיתים נקרא **למידת מכונה קלאסית**, תוך שימוש בעיקר בספריית Scikit-learn והימנעות מלמידה עמוקה, שמכוסה בתוכנית ה-[AI למתחילים שלנו](https://aka.ms/ai4beginners). שלבו את השיעורים האלו עם תוכנית ה-['מדעי הנתונים למתחילים'](https://aka.ms/ds4beginners) שלנו! +הצוות של Cloud Advocates במיקרוסופט שמח להציע תכנית לימודים בת 12 שבועות ו-26 שיעורים בנושא **למידת מכונה**. בתכנית זו תלמדו על מה שלעיתים נקרא **למידת מכונה קלאסית**, תוך שימוש בעיקר בספריית Scikit-learn ולהימנע מלמידה עמוקה, הנלמדת בתכנית שלנו ל-[AI למתחילים](https://aka.ms/ai4beginners). שילבו שיעורים אלו גם עם תכנית ['מדעי הנתונים למתחילים'](https://aka.ms/ds4beginners)! -נסעו איתנו סביב העולם כשאנחנו מיישמים את הטכניקות הקלאסיות האלה על נתונים מאזורים שונים בעולם. כל שיעור כולל חידונים לפני ואחרי השיעור, הוראות כתובות לביצוע השיעור, פתרון, משימה ועוד. הפדגוגיה מבוססת הפרויקטים שלנו מאפשרת ללמוד תוך כדי בנייה, שיטה מוכחת שגורמת לכישורים להישאר. +נסעו איתנו סביב העולם כשניישם את הטכניקות הקלאסיות הללו על נתונים מאזורים רבים ברחבי העולם. כל שיעור כולל מבחני קדם ואחרי השיעור, הוראות כתובות לסיום השיעור, פתרון, משימה ועוד. הפדגוגיה מבוססת פרויקטים מאפשרת לכם ללמוד תוך כדי בנייה, שיטה מוכחת שגורמת לכישורים החדשים 'להידבק'. -**✍️ תודה חמה למחברים שלנו** ג'ן לופר, סטיבן הוול, פרנצ'סקה לזרי, טומומי אימורה, קסי ברוויו, דמיטרי סושניקוב, כריס נורינג, אנירבן מוכרג'י, אורנלה אלטוניאן, רות יאקובו ואיימי בויד +**✍️ תודה רבה למחברים שלנו** ג'ן לופר, סטיבן האואל, פרנצ'סקה לזארי, תומומי אימורה, קאסי ברוויו, דמיטרי סושניקוב, כריס נורינג, אנירבאן מוכהרי, אורנלה אלטוניאן, רות יקובו ואיימי בויד -**🎨 תודה גם למאיירים שלנו** טומומי אימורה, דאסאני מדיפאלי וג'ן לופר +**🎨 תודה גם לאיורים** תומומי אימורה, דאסאני מדיפאלי וג'ן לופר -**🙏 תודה מיוחדת 🙏 למחברי, בוחני ותורמי התוכן שלנו, שגרירי הסטודנטים של מיקרוסופט**, בייחוד רישיט דגלי, מוחמד סאקיב חאן אינאן, רוהאן ראג', אלכסנדרו פטרסקו, אבישק ג'איסוואל, נאורין טבסום, יואן סמויאלה וסניגדה אגרוואל +**🙏 תודה מיוחדת 🙏 למחברי ומבקרי התוכן של שגרירי סטודנטים של מיקרוסופט**, בייחוד רישיט דגלי, מחמד סאקיב חאן אינן, רוהאן רג', אלכסנדרו פטרסקו, אבישק ג'ייסוול, נאורין טבסום, יואן סמויאלה, וסנידה אגרוואל -**🤩 תודה נוספת לשגרירי הסטודנטים של מיקרוסופט אריק ואנג'ו, ג'סלין סונדי ווידושי גופטה עבור שיעורי ה-R שלנו!** +**🤩 תודה נוספת לשגרירי הסטודנטים של מיקרוסופט אריק ואנג'או, גאסלין סונדהי ווידושי גופטה עבור שיעורי R שלנו!** -# התחלה +# להתחיל -עקבו אחרי הצעדים הבאים: -1. **פיצול המאגר (Fork)**: לחצו על כפתור "Fork" בפינה הימנית העליונה של העמוד. -2. **שכפול המאגר (Clone)**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +עקבו אחר השלבים: +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) +> [מצאו את כל המשאבים הנוספים לקורס זה באוסף Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **זקוק לעזרה?** בדקו את [מדריך פתרון הבעיות שלנו](TROUBLESHOOTING.md) לפתרונות לבעיות נפוצות בהתקנה, בהגדרה והפעלת שיעורים. +> 🔧 **צריכים עזרה?** בדקו את [מדריך פתרון הבעיות](TROUBLESHOOTING.md) עבור פתרונות לבעיות נפוצות בהתקנה, הגדרה והרצת שיעורים. -**[סטודנטים](https://aka.ms/student-page)**, כדי להשתמש בתוכנית לימודים זו, פיצלו את כל המאגר לחשבון ה-GitHub שלכם ושלמו את התרגילים בעצמכם או עם קבוצה: +**[סטודנטים](https://aka.ms/student-page)**, כדי להשתמש בתכנית לימודים זו, בצעו fork לכל המאגר לחשבון GitHub האישי שלכם וסיימו את התרגילים בעצמכם או עם קבוצה: -- התחילו בחידון חימום לפני ההרצאה. -- קראו את ההרצאה ושלמו את הפעילויות, עצרו והרהרו בכל בדיקת ידע. -- נסו ליצור את הפרויקטים על ידי הבנת השיעורים במקום להפעיל את קוד הפתרון; עם זאת, הקוד זמין בתיקיות `/solution` בכל שיעור מבוסס פרויקט. -- עברו את חידון אחר ההרצאה. -- שלמו את האתגר. -- שלמו את המטלה. -- לאחר השלמת קבוצת שיעורים, בקרו ב[לוח הדיונים](https://github.com/microsoft/ML-For-Beginners/discussions) ו"למדו בקול רם" על ידי מילוי טופס PAT המתאים. 'PAT' הוא כלי הערכת התקדמות שהוא טופס שממלאים כדי להעמיק את הלמידה. תוכלו גם להגיב על PATים אחרים כדי שנוכל ללמוד יחד. +- התחילו במבחן חימום לפני ההרצאה. +- קראו את ההרצאה ושלימו את הפעילויות, עצרו והרהרו בכל בדיקת ידע. +- נסו ליצור את הפרויקטים בהבנת השיעורים במקום רק להריץ את קוד הפתרון; עם זאת, הקוד זמין בתיקיות `/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). +> ללמידה נוספת, אנו ממליצים לעקוב אחרי מודולים ונתיבי לימוד ב-[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**מורים**, כלולנו [הצעות כיצד להשתמש בתוכנית הלימודים](for-teachers.md). +**מורים**, כללנו [הצעות לשימוש בתכנית זו](for-teachers.md). --- -## סיורים וידאו +## סירטוני הסבר -חלק מהשיעורים זמינים כסרטוני וידאו קצרים. תוכלו למצוא את כולם בקווים בשיעורים, או ברשימת ההשמעה [ML for Beginners ביוטיוב של מיקרוסופט דבולופר](https://aka.ms/ml-beginners-videos) על ידי לחיצה על התמונה למטה. +חלק מהשיעורים זמינים כסרטונים קצרים. תוכלו למצוא את כולם בתוך השיעורים או בפלייליסט [ML for Beginners בערוץ Microsoft Developer ביוטיוב](https://aka.ms/ml-beginners-videos) על ידי לחיצה על התמונה למטה. [![באנר ML למתחילים](../../translated_images/he/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -97,83 +97,83 @@ ## הכירו את הצוות -[![וידאו פרומו](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![סרטון פרומו](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **GIF מאת** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 לחצו על התמונה למעלה לסרטון על הפרויקט והאישים שיצרו אותו! +> 🎥 לחצו על התמונה למעלה לסרטון על הפרויקט והאנשים שיצרו אותו! --- ## פדגוגיה -בחרנו שני עקרונות פדגוגיים בזמן בניית תוכנית זו: להבטיח שהיא מבוססת **פרויקטים מעשיים** וכוללת **חידונים תכופים**. בנוסף, לתוכנית יש **נושא** משותף שמעניק לה חיבוריות. +בחרנו שני יסודות פדגוגיים בבניית תכנית זו: הבטחה שהיא **מבוססת פרויקטים** עם התנסות מעשית וכוללת **מבחנים תכופים**. בנוסף, לתכנית זו יש **נושא משותף** שנותן לה אחידות. -על ידי הבטחת התאמה בין התוכן לפרויקטים, התהליך נעשה יותר מעורב לסטודנטים והחזקת המושגים תוגבר. בנוסף, חידון נמוך סיכון לפני השיעור מכוון את כוונת הלומד ללמידת הנושא, בעוד שבחידון שני לאחר השיעור מבטיח חיזוק נוסף. תוכנית זו עוצבה להיות גמישה ומהנה וניתן לקחת אותה בשלמותה או לחלקים. הפרויקטים מתחילים קטנים והופכים יותר מורכבים לקראת סוף מחזור 12 השבועות. לתוכנית כלולה גם תוספת יישומים בעולם האמיתי של למידת מכונה, שניתן להשתמש בה כקרדיט נוסף או כבסיס לדיון. +על ידי התאמת התוכן לפרויקטים, התהליך הופך למעורב יותר עבור התלמידים והשמירה על המושגים מתעצמת. בנוסף, מבחן בעל סיכון נמוך לפני השיעור מגדיר את כוונת התלמיד ללמידת הנושא, בעוד שמבחן שני אחרי השיעור מבטיח שמירה נוספת. תכנית זו עוצבה להיות גמישה וכיפית וניתן לקחת אותה בשלמותה או בחלקים. הפרויקטים מתחילים קטנים והופכים למורכבים יותר לקראת סוף המחזור של 12 השבועות. בתכנית כלול גם נספח על יישומים אמיתיים של למידת מכונה, שניתן להשתמש בו כניקוד נוסף או כבסיס לדיון. -> מצאו את [קוד ההתנהגות שלנו](CODE_OF_CONDUCT.md), [ההנחיות לתרומה](CONTRIBUTING.md), [התרגומים](..), וההנחיות ל[פתרון בעיות](TROUBLESHOOTING.md). נשמח לקבל את המשוב הבונה שלכם! +> מצאו את [קוד ההתנהגות](CODE_OF_CONDUCT.md), הנחיות [לתרומה](CONTRIBUTING.md), [תרגומים](..) ו-[פתרון תקלות](TROUBLESHOOTING.md). נשמח למשוב בונה מצידכם! ## כל שיעור כולל -- הערת סקיצה אופציונלית -- וידאו משלים אופציונלי -- סיור וידאו (בחלק מהשיעורים בלבד) -- [חידון חימום לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/) +- אפשרות לרישום הערות סקיצה +- אפשרות לסרטון משלים +- סרטון הסבר (בחלק מהשיעורים בלבד) +- [מבחן חימום לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/) - שיעור כתוב -- בשיעורים מבוססי פרויקט, מדריכים שלב-אחר-שלב לבניית הפרויקט +- בשיעורים מבוססי פרויקט, מדריכים שלב-אחר-שלב כיצד לבנות את הפרויקט - בדיקות ידע - אתגר -- קריאה משלים -- מטלה -- [חידון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/) -> **הערה לגבי שפות**: השיעורים האלה נכתבים בעיקר בפייתון, אך רבים מהם זמינים גם ב-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 | טכניקות ללמידת מכונה | [הקדמה](1-Introduction/README.md) | אילו טכניקות משתמשים חוקריי למידת מכונה לבניית מודלים? | [שיעור](1-Introduction/4-techniques-of-ML/README.md) | כריס וג'ן | -| 05 | מבוא לרגרסיה | [רגרסיה](2-Regression/README.md) | להתחיל עם פייתון ו-Scikit-learn למודלי רגרסיה | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ג'ן • אריק ונג'או | -| 06 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | להמחיש ולנקות נתונים כהכנה ללמידת מכונה | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ג'ן • אריק ונג'או | -| 07 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | לבנות מודלים רגרסיה ליניארית ופולינומית | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ג'ן ודמיטרי • אריק ונג'או | -| 08 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | לבנות מודל רגרסיה לוגיסטית | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ג'ן • אריק ונג'או | -| 09 | אפליקציית רשת 🔌 | [אפליקציית רשת](3-Web-App/README.md) | לבנות אפליקציית רשת לשימוש במודל המאומן שלך | [Python](3-Web-App/1-Web-App/README.md) | ג'ן | -| 10 | מבוא לסיווג | [סיווג](4-Classification/README.md) | לנקות, להכין, ולהמחיש את הנתונים שלך; מבוא לסיווג | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ג'ן וקסי • אריק ונג'או | -| 11 | מטעמים אסייתיים והודיים טעימים 🍜 | [סיווג](4-Classification/README.md) | מבוא לממייני סיווג | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ג'ן וקסי • אריק ונג'או | -| 12 | מטעמים אסייתיים והודיים טעימים 🍜 | [סיווג](4-Classification/README.md) | ממיינים נוספים | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ג'ן וקסי • אריק ונג'או | -| 13 | מטעמים אסייתיים והודיים טעימים 🍜 | [סיווג](4-Classification/README.md) | לבנות אפליקציית רשת להמלצות תוך שימוש במודל שלך | [Python](4-Classification/4-Applied/README.md) | ג'ן | -| 14 | מבוא לאשכולות | [אשכולות](5-Clustering/README.md) | לנקות, להכין, ולהמחיש את הנתונים; מבוא לאשכולות | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ג'ן • אריק ונג'או | -| 15 | חקר הטעמים המוזיקליים הניגריים 🎧 | [אשכולות](5-Clustering/README.md) | לחקור את שיטת האשכולות K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ג'ן • אריק ונג'או | -| 16 | מבוא לעיבוד שפה טבעית ☕️ | [עיבוד שפה טבעית](6-NLP/README.md) | ללמוד את היסודות של NLP על ידי בניית בוט פשוט | [Python](6-NLP/1-Introduction-to-NLP/README.md) | סטיבן | -| 17 | משימות NLP נפוצות ☕️ | [עיבוד שפה טבעית](6-NLP/README.md) | להעמיק את הידע ב-NLP על ידי הבנת משימות נפוצות הנדרשות בטיפול במבני שפה | [Python](6-NLP/2-Tasks/README.md) | סטיבן | -| 18 | תרגום וניתוח סנטימנט ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | תרגום וניתוח סנטימנט עם ג'יין אוסטן | [Python](6-NLP/3-Translation-Sentiment/README.md) | סטיבן | -| 19 | בתי מלון רומנטיים באירופה ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | ניתוח סנטימנט עם חוות דעת על בתי מלון 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | סטיבן | -| 20 | בתי מלון רומנטיים באירופה ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | ניתוח סנטימנט עם חוות דעת על בתי מלון 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | סטיבן | -| 21 | מבוא לחיזוי סדרות זמן | [סדרות זמן](7-TimeSeries/README.md) | מבוא לחיזוי סדרות זמן | [Python](7-TimeSeries/1-Introduction/README.md) | פרנצ'סקה | -| 22 | ⚡️ שימוש בחשמל העולם ⚡️ - חיזוי סדרות זמן עם ARIMA | [סדרות זמן](7-TimeSeries/README.md) | חיזוי סדרות זמן עם ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | פרנצ'סקה | -| 23 | ⚡️ שימוש בחשמל העולם ⚡️ - חיזוי סדרות זמן עם SVR | [סדרות זמן](7-TimeSeries/README.md) | חיזוי סדרות זמן עם רגסור וקטור תמיכה | [Python](7-TimeSeries/3-SVR/README.md) | אנירבן | -| 24 | מבוא ללמידה מחזקת | [למידה מחזקת](8-Reinforcement/README.md) | מבוא ללמידה מחזקת עם Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | דמיטרי | -| 25 | עזור לפיטר להימנע מהזאב! 🐺 | [למידה מחזקת](8-Reinforcement/README.md) | למידת מחזקת עם Gym | [Python](8-Reinforcement/2-Gym/README.md) | דמיטרי | -| פרוספקט | תרחישים ויישומים בעולם האמיתי של למידת מכונה | [ML בעולם האמיתי](9-Real-World/README.md) | יישומים מעניינים ומאירי עיניים של למידת מכונה קלאסית בעולם האמיתי | [שיעור](9-Real-World/1-Applications/README.md) | צוות | -| פרוספקט | איתור באגים במודלים של למידת מכונה עם לוח בקרה RAI | [ML בעולם האמיתי](9-Real-World/README.md) | איתור באגים במודלים של למידת מכונה באמצעות רכיבי לוח בקרה Responsible AI | [שיעור](9-Real-World/2-Debugging-ML-Models/README.md) | רות יקובו | +- קריאה משלימה +- משימה +- [מבחן סוף הרצאה](https://ff-quizzes.netlify.app/en/ml/) +> **הערה לגבי שפות**: שיעורים אלה כתובים בעיקר בפייתון, אך רבים זמינים גם ב-R. כדי להשלים שיעור ב-R, גש לתיקיית `/solution` וחפש שיעורים ב-R. הם כוללים סיומת .rmd המייצגת קובץ **R Markdown** שניתן להגדירו פשוט כהטמעה של `קטעי קוד` (של R או שפות אחרות) ו`כותרת YAML` (המנחה כיצד לעצב פלטים כמו PDF) ב`מסמך Markdown`. כמו כן, הוא משמש כמסגרת כתיבה דוגמתית למדעי הנתונים שכן הוא מאפשר לשלב את הקוד שלך, את הפלט שלו ואת מחשבותיך על ידי כתיבתן ב-Markdown. יתר על כן, ניתן להפיק ממסמכי R Markdown פורמטים לפלט כגון PDF, HTML או Word. + +> **הערה לגבי חידונים**: כל החידונים נמצאים בתוך [תיקיית אפליקציית החידון](../../quiz-app), הכוללת 52 חידונים בסך הכל, כל אחד עם שלוש שאלות. הם מקושרים מתוך השיעורים אך ניתן להריץ את אפליקציית החידונים באופן מקומי; פעל לפי ההוראות שבתיקיית `quiz-app` לאירוח מקומי או פריסה ב-Azure. + +| מספר שיעור | נושא | קבוצת השיעור | מטרות למידה | שיעור מקושר | מחבר | +| :--------: | :------------------------------------------------------------: | :------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | מבוא ללמידת מכונה | [מבוא](1-Introduction/README.md) | ללמוד את המושגים הבסיסיים מאחורי למידת מכונה | [שיעור](1-Introduction/1-intro-to-ML/README.md) | מוחמד | +| 02 | היסטוריית למידת מכונה | [מבוא](1-Introduction/README.md) | ללמוד את ההיסטוריה הבסיסית של התחום | [שיעור](1-Introduction/2-history-of-ML/README.md) | ג'ן ואיימי | +| 03 | הוגנות ולמידת מכונה | [מבוא](1-Introduction/README.md) | מהם הסוגיות הפילוסופיות החשובות בנושא הוגנות שמומלץ לסטודנטים לקחת בחשבון כאשר בונים ומיישמים מודלים של למידת מכונה? | [שיעור](1-Introduction/3-fairness/README.md) | טומומי | +| 04 | טכניקות ללמידת מכונה | [מבוא](1-Introduction/README.md) | אילו טכניקות חוקרי למידת מכונה משתמשים כדי לבנות מודלים? | [שיעור](1-Introduction/4-techniques-of-ML/README.md) | כריס וג'ן | +| 05 | מבוא לרגרסיה | [רגרסיה](2-Regression/README.md) | התחל עם פייתון ו-Scikit-learn למודלים של רגרסיה | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ג'ן • אריק ונג'או | +| 06 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | ויזואליזציה וניקוי נתונים כהכנה ללמידת מכונה | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ג'ן • אריק וונג'או | +| 07 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | בניית מודלים של רגרסיה ליניארית ופולינומית | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ג'ן ודמיטרי • אריק וונג'או | +| 08 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | בניית מודל רגרסיה לוגיסטית | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ג'ן • אריק וונג'או | +| 09 | אפליקציית אינטרנט 🔌 | [Web App](3-Web-App/README.md) | בניית אפליקציית אינטרנט לשימוש במודל שאומן | [Python](3-Web-App/1-Web-App/README.md) | ג'ן | +| 10 | מבוא למיון (classification) | [מיון](4-Classification/README.md) | ניקוי, הכנה וויזואליזציה של הנתונים שלך; מבוא למיון | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ג'ן וקאסי • אריק וונג'או | +| 11 | מטבחים אסייתיים והודיים טעימים 🍜 | [מיון](4-Classification/README.md) | מבוא לממיינים | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ג'ן וקאסי • אריק וונג'או | +| 12 | מטבחים אסייתיים והודיים טעימים 🍜 | [מיון](4-Classification/README.md) | עוד ממיינים | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ג'ן וקאסי • אריק וונג'או | +| 13 | מטבחים אסייתיים והודיים טעימים 🍜 | [מיון](4-Classification/README.md) | בניית אפליקציית אינטרנט להמלצות באמצעות המודל שלך | [Python](4-Classification/4-Applied/README.md) | ג'ן | +| 14 | מבוא לקיבוץ (clustering) | [קיבוץ](5-Clustering/README.md) | ניקוי, הכנה וויזואליזציה של הנתונים שלך; מבוא לקיבוץ | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ג'ן • אריק וונג'או | +| 15 | חקר טעמי מוזיקה ניגרית 🎧 | [קיבוץ](5-Clustering/README.md) | בחינת שיטת קיבוץ K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ג'ן • אריק וונג'או | +| 16 | מבוא לעיבוד שפה טבעית ☕️ | [עיבוד שפה טבעית](6-NLP/README.md) | ללמוד את היסודות של NLP על ידי בניית בוט פשוט | [Python](6-NLP/1-Introduction-to-NLP/README.md) | סטיבן | +| 17 | משימות NLP נפוצות ☕️ | [עיבוד שפה טבעית](6-NLP/README.md) | העמקת הידע ב-NLP על ידי הבנת משימות נפוצות הנדרשות בעבודה עם מבני שפה | [Python](6-NLP/2-Tasks/README.md) | סטיבן | +| 18 | תרגום וניתוח רגשות ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | תרגום וניתוח רגשות בעזרת ג'יין אוסטן | [Python](6-NLP/3-Translation-Sentiment/README.md) | סטיבן | +| 19 | בתי מלון רומנטיים באירופה ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | ניתוח רגשות עם ביקורות על מלונות 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | סטיבן | +| 20 | בתי מלון רומנטיים באירופה ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | ניתוח רגשות עם ביקורות על מלונות 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | סטיבן | +| 21 | מבוא לחיזוי סדרות זמן | [סדרות זמן](7-TimeSeries/README.md) | מבוא לחיזוי סדרות זמן | [Python](7-TimeSeries/1-Introduction/README.md) | פרנססקה | +| 22 | ⚡️ שימוש עולמי בחשמל ⚡️ - חיזוי סדרות זמן עם ARIMA | [סדרות זמן](7-TimeSeries/README.md) | חיזוי סדרות זמן עם ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | פרנססקה | +| 23 | ⚡️ שימוש עולמי בחשמל ⚡️ - חיזוי סדרות זמן עם SVR | [סדרות זמן](7-TimeSeries/README.md) | חיזוי סדרות זמן עם רגרסור וקטור תמיכה (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | אנירבן | +| 24 | מבוא ללמידה מחוזקת | [למידה מחוזקת](8-Reinforcement/README.md) | מבוא ללמידה מחוזקת עם Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | דמיטרי | +| 25 | עזור לפיטר להימנע מהזאב! 🐺 | [למידה מחוזקת](8-Reinforcement/README.md) | למידה מחוזקת עם Gym | [Python](8-Reinforcement/2-Gym/README.md) | דמיטרי | +| פרוסטקריפט | תרחישי למידת מכונה במציאות | [ML במציאות](9-Real-World/README.md) | יישומים מעניינים וחושפניים של למידת מכונה קלאסית | [שיעור](9-Real-World/1-Applications/README.md) | צוות | +| פרוסטקריפט | איתור באגים במודלים של למידת מכונה באמצעות לוח RAI | [ML במציאות](9-Real-World/README.md) | איתור באגים במודלים של למידת מכונה באמצעות רכיבי לוח המחוונים של Responsible AI | [שיעור](9-Real-World/2-Debugging-ML-Models/README.md) | רות יקובו | > [מצא את כל המשאבים הנוספים לקורס זה באוסף Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## גישה לא מקוונת -ניתן להפעיל תיעוד זה באופן לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). צרו עותק של המאגר, [התקינו את Docsify](https://docsify.js.org/#/quickstart) על המכונה המקומית שלכם, ואז בתיקיית השורש של המאגר הזה, הקלידו `docsify serve`. האתר יוגש בפורט 3000 על הכתובת localhost: `localhost:3000`. +אתה יכול להפעיל את התיעוד הזה לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). פצל את הריפוזיטורי הזה, [התקן את Docsify](https://docsify.js.org/#/quickstart) במחשב המקומי שלך, ואז בתיקיית השורש של הריפו, הקלד `docsify serve`. האתר יהיה זמין בכתובת `localhost:3000` ביציאה 3000 במחשב שלך. ## קבצי PDF -מצא קובץ PDF של התכנית עם קישורים [כאן](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +מצא קובץ pdf של תכנית הלימודים עם קישורים [כאן](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 קורסים נוספים +## 🎒 קורסים נוספים -הצוות שלנו מייצר קורסים נוספים! בדקו: +הצוות שלנו מייצר קורסים נוספים! בדוק: ### LangChain @@ -186,23 +186,23 @@ [![AZD למתחילים](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI למתחילים](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP למתחילים](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![סוכני AI למתחילים](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![סוכני בינה מלאכותית למתחילים](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### סדרת AI יוצרת -[![AI יוצרת למתחילים](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI יוצרת (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![AI יוצרת (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![AI יוצרת (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### סדרת בינה מלאכותית יוצרת +[![בינה מלאכותית יוצרת למתחילים](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![בינה מלאכותית יוצרת (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![בינה מלאכותית יוצרת (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![בינה מלאכותית יוצרת (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### למידה בסיסית -[![ML למתחילים](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![מדעי נתונים למתחילים](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI למתחילים](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![סייברסקיוריטי למתחילים](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![למידת מכונה למתחילים](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![מדעי הנתונים למתחילים](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![בינה מלאכותית למתחילים](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![אבטחת סייבר למתחילים](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![פיתוח ווב למתחילים](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![IoT למתחילים](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) [![פיתוח XR למתחילים](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -210,29 +210,40 @@ --- ### סדרת Copilot -[![קופיילוט לתכנות משותף עם AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![קופיילוט ל-C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![הרפתקת קופיילוט](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot לתכנות משותף עם בינה מלאכותית](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot ל-C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![הרפתקאות Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## קבלת עזרה +## לקבלת עזרה -אם אתה נתקל בבעיות או יש לך שאלות לגבי בניית אפליקציות AI. הצטרף ללומדים נוספים ומפתחים מנוסים לדיונים על MCP. זו קהילה תומכת שבה שאלות מתקבלות בברכה והידע משותף בחופשיות. +אם אתה נתקע או יש לך שאלות בזמן הלמידה של למידת מכונה או בניית יישומי בינה מלאכותית, אל דאגה — עזרה זמינה. -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +אתה יכול להצטרף לדיונים עם לומדים ומפתחים אחרים, לשאול שאלות, ולשתף את הרעיונות שלך עם הקהילה. + +- הצטרף לקהילה כדי לשאול שאלות וללמוד עם אחרים +- דון במושגי למידת מכונה ורעיונות לפרויקטים +- קבל הנחיות ממפתחים מנוסים + +קהילה תומכת היא דרך נהדרת לפיתוח מיומנויות ולפתור בעיות מהר יותר. + +[קהילת דיסקורד Microsoft Foundry](https://discord.gg/nTYy5BXMWG) + +אם אתה נתקל בבאגים, שגיאות, או יש לך הצעות לשיפורים, אתה יכול לפתוח **Issue** במאגר הזה כדי לדווח על הבעיה. + +למשוב על המוצר או כדי לחפש פוסטים קיימים בקהילה, בקר בפורום המפתחים: -אם יש לך משוב על המוצר או שגיאות בעת הבנייה, בקר ב: +[![פורום מפתחים Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -[![פורום מפתחי Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## טיפים ללמידה נוספת +## טיפים ללמידה נוספים -- עיין במחברות לאחר כל שיעור להבנה טובה יותר. +- סקור מחברות אחרי כל שיעור להבנה טובה יותר. - תרגל יישום אלגוריתמים בעצמך. -- חקור מערכי נתונים מהעולם האמיתי באמצעות המושגים שלמדת. +- חקור מערכי נתונים מהעולם האמיתי באמצעות המושגים שנלמדו. --- -**כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עלולים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפת המקור שלו הוא המקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי של אדם. איננו נושאים באחריות על כל אי-הבנות או פירושים שגויים הנובעים משימוש בתרגום זה. +**כתב התרעה**: +מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עלולים לכלול טעויות או אי דיוקים. יש להתייחס למסמך המקורי בשפת המקור כמקור הסמכות הרשמי. למידע קריטי מומלץ להיעזר בתרגום מקצועי אנושי. איננו אחראים לכל אי הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה. \ No newline at end of file diff --git a/translations/nl/.co-op-translator.json b/translations/nl/.co-op-translator.json index fd1ab1ede..c39fe8f7c 100644 --- a/translations/nl/.co-op-translator.json +++ b/translations/nl/.co-op-translator.json @@ -90,8 +90,8 @@ "language_code": "nl" }, "2-Regression/3-Linear/README.md": { - "original_hash": "9a8359f1945bd3beccccb2b46592580e", - "translation_date": "2026-02-28T10:31:36+00:00", + "original_hash": "26c53a922f1f1e8542b0ea41ff52221a", + "translation_date": "2026-04-20T20:47:43+00:00", "source_file": "2-Regression/3-Linear/README.md", "language_code": "nl" }, @@ -168,8 +168,8 @@ "language_code": "nl" }, "4-Classification/2-Classifiers-1/README.md": { - "original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b", - "translation_date": "2025-09-05T19:48:53+00:00", + "original_hash": "cb761595e5b6c42b99bb81bd13683311", + "translation_date": "2026-04-20T20:48:39+00:00", "source_file": "4-Classification/2-Classifiers-1/README.md", "language_code": "nl" }, @@ -552,8 +552,8 @@ "language_code": "nl" }, "README.md": { - "original_hash": "7fb48097f57e680b380cd9aae988d317", - "translation_date": "2026-04-06T17:03:54+00:00", + "original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0", + "translation_date": "2026-04-20T20:46:16+00:00", "source_file": "README.md", "language_code": "nl" }, diff --git a/translations/nl/2-Regression/3-Linear/README.md b/translations/nl/2-Regression/3-Linear/README.md index db9ef375c..34286f55a 100644 --- a/translations/nl/2-Regression/3-Linear/README.md +++ b/translations/nl/2-Regression/3-Linear/README.md @@ -1,127 +1,127 @@ # Bouw een regressiemodel met Scikit-learn: regressie op vier manieren -## Beginnersnotitie +## Notitie voor beginners -Lineaire regressie wordt gebruikt wanneer we een **numerieke waarde** willen voorspellen (bijvoorbeeld de prijs van een huis, temperatuur of verkoopcijfers). -Het werkt door een rechte lijn te vinden die het beste de relatie tussen invoerkenmerken en de uitvoer weergeeft. +Lineaire regressie wordt gebruikt wanneer we een **numerieke waarde** willen voorspellen (bijvoorbeeld huisprijs, temperatuur, of verkoop). +Het werkt door een rechte lijn te vinden die de relatie tussen invoerkenmerken en de uitvoer het beste weergeeft. -In deze les richten we ons op het begrijpen van het concept voordat we meer geavanceerde regressietechnieken verkennen. -![Linear vs polynomial regression infographic](../../../../translated_images/nl/linear-polynomial.5523c7cb6576ccab.webp) +In deze les richten we ons op het begrijpen van het concept voordat we meer geavanceerde regressietechnieken verkennen. +![Lineaire versus polynoom regressie infographic](../../../../translated_images/nl/linear-polynomial.5523c7cb6576ccab.webp) > Infographic door [Dasani Madipalli](https://twitter.com/dasani_decoded) ## [Voorcollege quiz](https://ff-quizzes.netlify.app/en/ml/) -> ### [Deze les is ook beschikbaar in R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html) +> ### [Deze les is beschikbaar in R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html) ### Inleiding -Tot nu toe heb je verkend wat regressie is met voorbeeldgegevens verzameld uit de dataset van pompoenprijzen die we in deze les zullen gebruiken. Je hebt dit ook gevisualiseerd met Matplotlib. +Tot nu toe heb je onderzocht wat regressie is met voorbeelddata verzameld uit de pompoenprijs dataset die we gedurende deze les zullen gebruiken. Je hebt het ook gevisualiseerd met Matplotlib. -Nu ben je klaar om dieper in regressie voor ML te duiken. Visualisatie helpt je om data te begrijpen, maar de echte kracht van Machine Learning komt van het _trainen van modellen_. Modellen worden getraind op historische data om automatisch afhankelijkheden in de data vast te leggen en stellen je in staat uitkomsten te voorspellen voor nieuwe data die het model nog niet eerder heeft gezien. +Nu ben je klaar om dieper in regressie voor ML te duiken. Terwijl visualisatie je in staat stelt om data te begrijpen, komt de echte kracht van Machine Learning van het _trainen van modellen_. Modellen worden getraind op historische data om automatisch afhankelijkheden te vangen, en ze stellen je in staat om uitkomsten te voorspellen voor nieuwe data die het model nog niet eerder heeft gezien. -In deze les leer je meer over twee soorten regressie: _basis lineaire regressie_ en _polynomiale regressie_, samen met wat van de wiskunde achter deze technieken. Deze modellen stellen ons in staat om pompoenprijzen te voorspellen op basis van verschillende invoerdata. +In deze les leer je meer over twee types regressie: _basis lineaire regressie_ en _polynomiale regressie_, samen met wat van de onderliggende wiskunde van deze technieken. Deze modellen stellen ons in staat om pompoenprijzen te voorspellen afhankelijk van verschillende invoerdata. -[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression") +[![ML voor beginners - Begrijpen van lineaire regressie](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML voor beginners - Begrijpen van lineaire regressie") > 🎥 Klik op de afbeelding hierboven voor een korte video-overzicht van lineaire regressie. -> Gedurende dit curriculum gaan we uit van minimale wiskundige voorkennis, en streven we ernaar het toegankelijk te maken voor studenten uit andere disciplines. Let daarom op notities, 🧮 uitlegpaaltjes, diagrammen en andere leermiddelen om het begrip te ondersteunen. +> Gedurende deze cursus veronderstellen we minimale wiskundige kennis, en streven we ernaar om het toegankelijk te maken voor studenten uit andere vakgebieden, let daarom op notities, 🧮 uitleg, diagrammen en andere leermiddelen ter ondersteuning van het begrip. ### Vereisten -Je zou nu bekend moeten zijn met de structuur van de pompoen data die we onderzoeken. Je kunt deze vooraf geladen en voorbewerkt vinden in het bestand _notebook.ipynb_ van deze les. In het bestand wordt de pompoenprijs per bushel weergegeven in een nieuw DataFrame. Zorg ervoor dat je deze notebooks kunt draaien in kernels in Visual Studio Code. +Je zou inmiddels bekend moeten zijn met de structuur van de pompoendata die we onderzoeken. Je kunt het voorbeladen en schoongemaakt terugvinden in het _notebook.ipynb_ bestand van deze les. In dit bestand is de pompoenprijs per bushel weergegeven in een nieuw data frame. Zorg ervoor dat je deze notebooks kunt draaien in kernels in Visual Studio Code. ### Voorbereiding -Even ter herinnering, je laadt deze data om er vragen over te kunnen stellen. +Als herinnering, je laadt deze data om er vragen over te kunnen stellen. -- Wanneer is het beste moment om pompoenen te kopen? -- Welke prijs kan ik verwachten van een doos mini-pompoenen? -- Moet ik ze kopen in halve bushel manden of per 1 1/9 bushel doos? -Laten we deze data verder onderzoeken. +- Wanneer is de beste tijd om pompoenen te kopen? +- Welke prijs kan ik verwachten voor een kist miniatuurpompoenen? +- Moet ik ze kopen in halve bushel manden of per 1 1/9 bushel doos? +Laten we dieper graven in deze data. -In de vorige les maakte je een Pandas DataFrame en vulde je die met een deel van de originele dataset, waarbij je de prijzen standaardiseerde per bushel. Daarmee kon je echter slechts ongeveer 400 datapunten ophalen en alleen voor de herfstmaanden. +In de vorige les heb je een Pandas data frame gemaakt en gevuld met een deel van de originele dataset, waarbij de prijzen zijn genormaliseerd per bushel. Door dat te doen was je echter maar in staat ongeveer 400 datapunten te verzamelen en alleen voor de herfstmaanden. -Bekijk de data die we vooraf geladen hebben in het bijbehorende notebook van deze les. De gegevens zijn vooraf geladen en er is een eerste scatterplot gemaakt om maanddata te tonen. Misschien kunnen we meer details over de aard van de data krijgen door deze verder te schonen. +Bekijk de data die we voorbeladen hebben in de bijbehorende notebook van deze les. De data is voorbeladen en er is een initiële scatterplot gemaakt om maanddata te tonen. Misschien kunnen we iets meer detail krijgen over de aard van de data door het verder te schonen. ## Een lineaire regressielijn -Zoals je in les 1 hebt geleerd, is het doel van een lineaire regressie oefening het kunnen plotten van een lijn om: +Zoals je hebt geleerd in Les 1, is het doel van een lineaire regressie-oefening om in staat te zijn een lijn te plotten om: -- **Relaties tussen variabelen te tonen**. Toon de relatie tussen variabelen -- **Voorspellingen te maken**. Maak accurate voorspellingen waar een nieuw datapunt zou vallen ten opzichte van die lijn. +- **Variabelenrelaties te tonen**. Toon het verband tussen variabelen +- **Voorspellingen te doen**. Maak nauwkeurige voorspellingen waar een nieuw datapunt zou vallen ten opzichte van die lijn. -Typisch voor de **Least-Squares Regression** is om dit soort lijn te tekenen. De term "Least-Squares" verwijst naar het proces van het minimaliseren van de totale fout in ons model. Voor elk datapunt meten we de verticale afstand (residueel genoemd) tussen het daadwerkelijke punt en onze regressielijn. +Het is typisch voor **Kleinstekwadratenregressie** om dit type lijn te tekenen. De term "Kleinstekwadraten" verwijst naar het proces van het minimaliseren van de totale fout in ons model. Voor elk datapunt meten we de verticale afstand (genaamd residu) tussen het werkelijke punt en onze regressielijn. -We kwadrateren deze afstanden om twee belangrijke redenen: +We kwadrateren deze afstanden om twee hoofdredenen: -1. **Grootte boven richting:** We willen een fout van -5 hetzelfde behandelen als een fout van +5. Kwadrateren zorgt ervoor dat alle waarden positief worden. +1. **Grootte boven Richting:** We willen een fout van -5 hetzelfde behandelen als een fout van +5. Kwadrateren maakt alle waarden positief. -2. **Straffen van uitschieters:** Kwadrateren geeft meer gewicht aan grotere fouten, waardoor de lijn dichter bij veraf liggende punten blijft. +2. **Straffen van Uitbijters:** Kwadrateren geeft meer gewicht aan grotere fouten, waardoor de lijn dichter bij punten die ver weg liggen blijft. -We tellen vervolgens al deze gekwadrateerde waarden op. Ons doel is om die specifieke lijn te vinden waarbij deze som het kleinst is (de kleinste mogelijke waarde)—vandaar de naam "Least-Squares". +We tellen vervolgens al deze gekwadrateerde waarden bij elkaar op. Ons doel is om de specifieke lijn te vinden waarbij deze eind-som het kleinst is (de kleinste mogelijke waarde)—vandaar de naam "Kleinstekwadraten". -> **🧮 Laat me de wiskunde zien** -> -> Deze lijn, genaamd de _line of best fit_, kan worden uitgedrukt door [een vergelijking](https://en.wikipedia.org/wiki/Simple_linear_regression): -> +> **🧮 Laat me de wiskunde zien** +> +> Deze lijn, genaamd de _beste fit lijn_, kan worden uitgedrukt door [een vergelijking](https://en.wikipedia.org/wiki/Simple_linear_regression): +> > ``` > Y = a + bX > ``` -> -> `X` is de 'verklarende variabele'. `Y` is de 'afhankelijke variabele'. De helling van de lijn is `b` en `a` is het snijpunt met de y-as, wat verwijst naar de waarde van `Y` wanneer `X = 0`. -> ->![bereken de helling](../../../../translated_images/nl/slope.f3c9d5910ddbfcf9.webp) -> -> Bereken eerst de helling `b`. Infographic door [Jen Looper](https://twitter.com/jenlooper) -> -> Met andere woorden, en verwijzend naar onze oorspronkelijke pompoendata-vraag: "voorspel de prijs van een pompoen per bushel per maand", zou `X` verwijzen naar de prijs en `Y` naar de verkoopmaand. -> ->![voltooi de vergelijking](../../../../translated_images/nl/calculation.a209813050a1ddb1.webp) -> -> Bereken de waarde van Y. Als je rond de $4 betaalt, moet het april zijn! Infographic door [Jen Looper](https://twitter.com/jenlooper) -> -> De wiskunde die de lijn berekent moet de helling van de lijn tonen, die ook afhankelijk is van het intercept, oftewel waar `Y` ligt als `X = 0`. -> -> Je kunt de methode voor het berekenen van deze waarden zien op de website [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Bezoek ook [deze Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) om te zien hoe de waardes van getallen de lijn beïnvloeden. +> +> `X` is de 'verklarende variabele'. `Y` is de 'afhankelijke variabele'. De helling van de lijn is `b` en `a` is het snijpunt op de y-as, dat verwijst naar de waarde van `Y` wanneer `X = 0`. +> +>![bereken de helling](../../../../translated_images/nl/slope.f3c9d5910ddbfcf9.webp) +> +> Bereken eerst de helling `b`. Infographic door [Jen Looper](https://twitter.com/jenlooper) +> +> Met andere woorden, en verwijzend naar onze originele vraag over pompoendata: "voorspel de prijs van een pompoen per bushel op maand", zou `X` verwijzen naar de prijs en `Y` naar de maand van verkoop. +> +>![vul de vergelijking in](../../../../translated_images/nl/calculation.a209813050a1ddb1.webp) +> +> Bereken de waarde van Y. Als je ongeveer $4 betaalt, moet het april zijn! Infographic door [Jen Looper](https://twitter.com/jenlooper) +> +> De wiskunde die de lijn berekent moet de helling van de lijn aantonen, die ook afhankelijk is van het intercept, of waar `Y` ligt wanneer `X = 0`. +> +> Je kunt de methode van berekening voor deze waarden bekijken op de [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) website. Bezoek ook [deze Kleinstekwadraten calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) om te zien hoe de getallen de lijn beïnvloeden. ## Correlatie -Nog een term om te begrijpen is de **Correlatiecoëfficiënt** tussen gegeven X- en Y-variabelen. Met een scatterplot kun je deze coëfficiënt snel visualiseren. Een plot met datapunten netjes op een lijn wijzen op hoge correlatie, terwijl een plot waar punten overal verspreid liggen tussen X en Y op lage correlatie wijst. +Een andere term om te begrijpen is de **correlatiecoëfficiënt** tussen gegeven X en Y variabelen. Met een scatterplot kun je deze coëfficiënt snel visualiseren. Een plot met datapunten netjes verspreid in een lijn heeft een hoge correlatie, maar een plot met datapunten verspreid over het hele vlak tussen X en Y heeft een lage correlatie. -Een goed lineair regressiemodel is er een met een hoge Correlatiecoëfficiënt (dichter bij 1 dan bij 0) met behulp van de Least-Squares Regression methode met een regressielijn. +Een goed lineair regressiemodel zal een hoge (meer dichtbij 1 dan 0) correlatiecoëfficiënt hebben met behulp van de Kleinstekwadratenregressie methode met een regressielijn. -✅ Draai het notebook bij deze les en bekijk de scatterplot van Maand tegen Prijs. Lijkt de data die Maand aan Prijs koppelt voor pompoenverkopen een hoge of lage correlatie te hebben, volgens jouw visuele interpretatie van de scatterplot? Verandert dat als je een fijnmaziger maat gebruikt in plaats van `Maand`, bijvoorbeeld *dag van het jaar* (d.w.z. aantal dagen sinds begin van het jaar)? +✅ Voer het notebook uit dat bij deze les hoort en bekijk de scatterplot van Maand tegen Prijs. Lijkt de data die maand aan prijs koppelt voor pompoenverkoop een hoge of lage correlatie te hebben volgens jouw visuele interpretatie van de scatterplot? Verandert dat als je een fijnere maat gebruikt in plaats van `Maand`, bijvoorbeeld *dag van het jaar* (i.e. aantal dagen sinds het begin van het jaar)? -In onderstaande code gaan we ervan uit dat we de data hebben opgeschoond, en een DataFrame `new_pumpkins` hebben verkregen, vergelijkbaar met het volgende: +In onderstaande code gaan we ervan uit dat we de data hebben opgeschoond, en een data frame verkregen genaamd `new_pumpkins`, vergelijkbaar met het volgende: -ID | Maand | DagVanHetJaar | Variëteit | Stad | Verpakking | Lage Prijs | Hoge Prijs | Prijs ----|-------|---------------|-----------|------|------------|------------|------------|------- -70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonnen dozen | 15.0 | 15.0 | 13.636364 -71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonnen dozen | 18.0 | 18.0 | 16.363636 -72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonnen dozen | 18.0 | 18.0 | 16.363636 -73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonnen dozen | 17.0 | 17.0 | 15.454545 -74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel kartonnen dozen | 15.0 | 15.0 | 13.636364 +ID | Maand | DagVanHetJaar | Variëteit | Stad | Verpakking | Laagste Prijs | Hoogste Prijs | Prijs +---|-------|---------------|-----------|-------|------------|---------------|---------------|------- +70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel kratjes | 15.0 | 15.0 | 13.636364 +71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel kratjes | 18.0 | 18.0 | 16.363636 +72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel kratjes | 18.0 | 18.0 | 16.363636 +73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel kratjes | 17.0 | 17.0 | 15.454545 +74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel kratjes | 15.0 | 15.0 | 13.636364 -> De code om de data te schonen is beschikbaar in [`notebook.ipynb`](notebook.ipynb). We hebben dezelfde schoonmaakstappen uitgevoerd als in de vorige les, en hebben de kolom `DagVanHetJaar` berekend met de volgende expressie: +> De code om de data schoon te maken is beschikbaar in [`notebook.ipynb`](notebook.ipynb). We hebben dezelfde schoonmaakstappen uitgevoerd als in de vorige les, en de kolom `DagVanHetJaar` berekend met de volgende uitdrukking: ```python day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days) ``` - -Nu je inzicht hebt in de wiskunde achter lineaire regressie, laten we een regressiemodel maken om te zien of we kunnen voorspellen welke verpakking van pompoenen de beste pompoenprijzen zal hebben. Iemand die pompoenen koopt voor een pompoenveld voor de feestdagen wil deze informatie mogelijk gebruiken om hun aankopen van pompoenverpakkingen voor het veld te optimaliseren. + +Nu je inzicht hebt in de wiskunde achter lineaire regressie, laten we een regressiemodel maken om te zien of we kunnen voorspellen welke verpakking pompoenen de beste prijzen zal hebben. Iemand die pompoenen koopt voor een feestelijke pompoen-perk wil mogelijk deze informatie om hun aankopen van pompoenverpakkingen voor het perk te optimaliseren. ## Op zoek naar correlatie -[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression") +[![ML voor beginners - Op zoek naar correlatie: de sleutel tot lineaire regressie](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML voor beginners - Op zoek naar correlatie: de sleutel tot lineaire regressie") -> 🎥 Klik op de afbeelding hierboven voor een korte video-overzicht over correlatie. +> 🎥 Klik op de afbeelding hierboven voor een korte video-overzicht van correlatie. -In de vorige les heb je waarschijnlijk gezien dat de gemiddelde prijs voor verschillende maanden er zo uitziet: +Uit de vorige les heb je waarschijnlijk gezien dat de gemiddelde prijs voor verschillende maanden er ongeveer zo uitziet: Gemiddelde prijs per maand Dit suggereert dat er enige correlatie zou moeten zijn, en we kunnen proberen een lineair regressiemodel te trainen om de relatie tussen `Maand` en `Prijs` te voorspellen, of tussen `DagVanHetJaar` en `Prijs`. Hier is de scatterplot die de laatste relatie toont: -Scatterplot van Prijs versus Dag van het Jaar +Scatterplot van Prijs versus Dag van het Jaar Laten we kijken of er een correlatie is met de `corr` functie: @@ -129,8 +129,8 @@ Laten we kijken of er een correlatie is met de `corr` functie: print(new_pumpkins['Month'].corr(new_pumpkins['Price'])) print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price'])) ``` - -Het lijkt erop dat de correlatie vrij klein is, -0.15 op basis van `Maand` en -0.17 op basis van `DagVanHetJaar`, maar er zou een andere belangrijke relatie kunnen zijn. Het lijkt erop dat er verschillende clusters van prijzen zijn die overeenkomen met verschillende pompoenvariëteiten. Om deze hypothese te bevestigen, laten we elke pompoencategorie met een andere kleur plotten. Door een `ax` parameter door te geven aan de `scatter` plotfunctie kunnen we alle punten op dezelfde grafiek weergeven: + +Het lijkt erop dat de correlatie vrij klein is, -0.15 bij `Maand` en -0.17 bij de `DagVanHetJaar`, maar er kan een andere belangrijke relatie zijn. Het lijkt alsof er verschillende clusters prijzen zijn die overeenkomen met verschillende pompoenvariëteiten. Om deze hypothese te bevestigen, laten we elke pompoencategorie met een andere kleur plotten. Door een `ax` parameter door te geven aan de `scatter` plotfunctie kunnen we alle punten op dezelfde grafiek plotten: ```python ax=None @@ -139,114 +139,113 @@ 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) ``` - + Scatterplot van Prijs versus Dag van het Jaar -Ons onderzoek suggereert dat variëteit meer effect heeft op de totale prijs dan de daadwerkelijke verkoopdatum. Dit kunnen we zien met een staafgrafiek: +Ons onderzoek suggereert dat variëteit meer effect heeft op de prijs dan de daadwerkelijke verkoopdatum. Dit kunnen we zien met een staafdiagram: ```python new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar') ``` - -Staafgrafiek van prijs versus variëteit -Laten we ons voor nu alleen richten op één pompoenvariëteit, het 'pie type', en kijken wat voor effect de datum heeft op de prijs: +Staafdiagram van prijs versus variëteit + +Laten we ons voor nu alleen richten op één pompoenvariëteit, de 'pie type', en kijken welk effect de datum heeft op de prijs: ```python pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE'] pie_pumpkins.plot.scatter('DayOfYear','Price') ``` - -Scatterplot van Prijs versus Dag van het Jaar +Scatterplot van Prijs versus Dag van het Jaar -Als we nu de correlatie berekenen tussen `Prijs` en `DagVanHetJaar` met de `corr` functie, krijgen we iets als `-0.27` - wat betekent dat het trainen van een voorspellend model zinvol is. +Als we nu de correlatie tussen `Prijs` en `DagVanHetJaar` berekenen met de `corr` functie, krijgen we iets als `-0.27` - wat betekent dat het zinvol is om een voorspellend model te trainen. -> Voordat je een lineair regressiemodel traint, is het belangrijk om ervoor te zorgen dat onze data schoon is. Lineaire regressie werkt niet goed met ontbrekende waarden, dus het is logisch om alle lege cellen kwijt te raken: +> Voordat je een lineair regressiemodel traint is het belangrijk ervoor te zorgen dat onze data schoon is. Lineaire regressie werkt niet goed met ontbrekende waarden, dus het is zinvol om alle lege cellen te verwijderen: ```python pie_pumpkins.dropna(inplace=True) pie_pumpkins.info() ``` - -Een andere aanpak is om die lege waarden op te vullen met gemiddelde waardes uit de corresponderende kolom. + +Een andere benadering is om die lege waarden te vullen met gemiddelde waardes uit de betreffende kolom. ## Eenvoudige lineaire regressie -[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn") +[![ML voor beginners - Lineaire en polynomiale regressie met Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML voor beginners - Lineaire en polynomiale regressie met Scikit-learn") > 🎥 Klik op de afbeelding hierboven voor een korte video-overzicht van lineaire en polynomiale regressie. -Om ons Lineaire Regressiemodel te trainen, gebruiken we de **Scikit-learn** bibliotheek. +Om ons lineaire regressiemodel te trainen gebruiken we de **Scikit-learn** bibliotheek. ```python from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split ``` - -We beginnen met het scheiden van invoerwaarden (kenmerken) en de verwachte uitvoer (label) in aparte numpy arrays: + +We beginnen met het scheiden van invoerwaarden (features) en verwachte uitvoer (label) in afzonderlijke numpy-arrays: ```python X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1) y = pie_pumpkins['Price'] ``` - -> Let op dat we `reshape` op de invoerdata moesten uitvoeren zodat het Linear Regression-pakket het correct begrijpt. Lineaire Regressie verwacht een 2D-array als invoer, waarbij elke rij van de array overeenkomt met een vector van invoerkenmerken. In ons geval, omdat we maar één invoer hebben, hebben we een array nodig met vorm N×1, waarbij N de datasetgrootte is. -Vervolgens moeten we de data splitsen in train- en testdatasets, zodat we ons model na het trainen kunnen valideren: +> Let op dat we `reshape` moesten uitvoeren op de invoerdata zodat het Linear Regression-pakket het correct kan begrijpen. Lineaire regressie verwacht een 2D-array als invoer waarbij elke rij van de array overeenkomt met een vector van invoerkenmerken. In ons geval, omdat we slechts één invoer hebben, hebben we een array nodig met de vorm N×1, waarbij N de grootte van de dataset is. + +Dan moeten we de data splitsen in train- en testdatasets, zodat we ons model na het trainen kunnen valideren: ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` - -Tot slot neemt het trainen van het daadwerkelijke Lineaire Regressiemodel slechts twee regels code in beslag. We definiëren het `LinearRegression` object, en passen het toe op onze data met de `fit` methode: + +Tenslotte kost het trainen van het eigenlijke lineaire regressiemodel maar twee regels code. We definiëren het `LinearRegression` object en passen het toe op onze data met de `fit` methode: ```python lin_reg = LinearRegression() lin_reg.fit(X_train,y_train) ``` -Het `LinearRegression`-object na het `fit`-ten bevat alle coëfficiënten van de regressie, die toegankelijk zijn via de `.coef_`-eigenschap. In ons geval is er maar één coëfficiënt, die ongeveer `-0.017` zou moeten zijn. Dit betekent dat de prijzen iets lijken te dalen in de loop van de tijd, maar niet te veel, ongeveer 2 cent per dag. We kunnen ook het snijpunt van de regressie met de Y-as benaderen met `lin_reg.intercept_` - dit zal in ons geval rond `21` liggen, wat de prijs aan het begin van het jaar aangeeft. +Het `LinearRegression` object bevat na het fitten alle coëfficiënten van de regressie, die toegankelijk zijn via de `.coef_` eigenschap. In ons geval is er slechts één coëfficiënt, die ongeveer `-0.017` zou moeten zijn. Dit betekent dat prijzen enigszins lijken te dalen in de tijd, maar niet te veel, ongeveer 2 cent per dag. We kunnen ook het snijpunt van de regressie met de Y-as benaderen via `lin_reg.intercept_` - dit zal rond `21` liggen in ons geval, wat de prijs aan het begin van het jaar aangeeft. -Om te zien hoe nauwkeurig ons model is, kunnen we prijzen voorspellen op een testdataset en vervolgens meten hoe dicht onze voorspellingen bij de verwachte waarden liggen. Dit kan worden gedaan met behulp van de mean square error (MSE) metriek, wat het gemiddelde is van alle gekwadrateerde verschillen tussen verwachte en voorspelde waarde. +Om te zien hoe nauwkeurig ons model is, kunnen we prijzen voorspellen op een testdataset, en vervolgens meten hoe dicht onze voorspellingen bij de verwachte waarden liggen. Dit kan worden gedaan met root mean square error (RMSE) metrics, wat de wortel van het gemiddelde van alle gekwadrateerde verschillen tussen de verwachte en voorspelde waarde is. ```python pred = lin_reg.predict(X_test) -mse = np.sqrt(mean_squared_error(y_test,pred)) -print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') +rmse = np.sqrt(mean_squared_error(y_test,pred)) +print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)') ``` -Onze fout lijkt ongeveer 2 punten te zijn, wat ~17% is. Niet zo goed. Een andere indicator van modelkwaliteit is de **coëfficiënt van determinatie**, die op deze manier verkregen kan worden: +Onze fout lijkt rond de 2 punten te liggen, wat ongeveer 17% is. Niet zo goed. Een andere indicator van de modelkwaliteit is de **bepalingscoëfficiënt**, die als volgt kan worden verkregen: ```python score = lin_reg.score(X_train,y_train) print('Model determination: ', score) ``` -Als de waarde 0 is, betekent dit dat het model de invoergegevens niet meeneemt en fungeert als de *slechtste lineaire voorspeller*, wat gewoon de gemiddelde waarde van het resultaat is. De waarde 1 betekent dat we perfect alle verwachte uitkomsten kunnen voorspellen. In ons geval is de coëfficiënt ongeveer 0.06, wat vrij laag is. +Als de waarde 0 is, betekent dit dat het model geen rekening houdt met de invoergegevens en fungeert als de *slechtste lineaire voorspeller*, die simpelweg de gemiddelde waarde van het resultaat is. Een waarde van 1 betekent dat we perfect alle verwachte uitkomsten kunnen voorspellen. In ons geval is de coëfficiënt ongeveer 0.06, wat vrij laag is. -We kunnen ook de testgegevens plotten samen met de regressielijn om beter te zien hoe regressie in ons geval werkt: +We kunnen ook de testdata plotten samen met de regressielijn om beter te zien hoe de regressie in ons geval werkt: ```python plt.scatter(X_test,y_test) plt.plot(X_test,pred) ``` -Linear regression +Lineaire regressie -## Polynomiale regressie +## Polynomiale Regressie -Een ander type lineaire regressie is polynomiale regressie. Soms is er een lineair verband tussen variabelen - hoe groter de pompoen qua volume, hoe hoger de prijs - maar soms kunnen deze relaties niet worden weergegeven als een vlak of rechte lijn. +Een ander type lineaire regressie is polynomiale regressie. Hoewel er soms een lineair verband is tussen variabelen - hoe groter de pompoen in volume, hoe hoger de prijs - kunnen deze relaties soms niet als een vlak of rechte lijn worden geplot. -✅ Hier zijn [nog meer voorbeelden](https://online.stat.psu.edu/stat501/lesson/9/9.8) van gegevens die baat zouden hebben bij polynomiale regressie +✅ Hier zijn [nog enkele voorbeelden](https://online.stat.psu.edu/stat501/lesson/9/9.8) van data die polynomiale regressie kunnen gebruiken -Kijk nog eens goed naar het verband tussen Datum en Prijs. Lijkt deze spreidingsgrafiek per se door een rechte lijn te moeten worden geanalyseerd? Kunnen prijzen niet schommelen? In dat geval kun je polynomiale regressie proberen. +Bekijk nogmaals de relatie tussen Datum en Prijs. Lijkt deze spreidingsgrafiek er echt op dat het noodzakelijk via een rechte lijn geanalyseerd moet worden? Kunnen prijzen niet fluctueren? In dat geval kun je polynomiale regressie proberen. -✅ Polynomiale uitdrukkingen zijn wiskundige uitdrukkingen die uit een of meer variabelen en coëfficiënten kunnen bestaan +✅ Polynomen zijn wiskundige expressies die kunnen bestaan uit een of meer variabelen en coëfficiënten -Polynomiale regressie creëert een gebogen lijn om niet-lineaire data beter te passen. In ons geval, als we een kwadratische `DayOfYear` variabele toevoegen aan de invoergegevens, zouden we onze data moeten kunnen passen met een parabolische kromme, die een minimumpunt heeft op een bepaald punt binnen het jaar. +Polynomiale regressie creëert een gekromde lijn om niet-lineaire data beter te passen. In ons geval, als we een gekwadrateerde `DayOfYear` variabele opnemen in de invoerdata, zouden we onze data moeten kunnen passen met een parabolische curve die een minimum heeft op een bepaald punt binnen het jaar. -Scikit-learn bevat een handige [pipeline-API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) om verschillende stappen van gegevensverwerking te combineren. Een **pipeline** is een keten van **schatters**. In ons geval maken we een pipeline die eerst polynomiale kenmerken toevoegt aan ons model en vervolgens de regressie traint: +Scikit-learn bevat een handige [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) om verschillende stappen van dataverwerking te combineren. Een **pipeline** is een keten van **estimators**. In ons geval maken we een pipeline die eerst polynomiale kenmerken toevoegt aan ons model, en vervolgens de regressie traint: ```python from sklearn.preprocessing import PolynomialFeatures @@ -257,36 +256,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) pipeline.fit(X_train,y_train) ``` -Met `PolynomialFeatures(2)` wordt bedoeld dat we alle tweedegraads polynomen van de invoergegevens opnemen. In ons geval betekent dat alleen `DayOfYear`2, maar gegeven twee invoervariabelen X en Y, worden ook X2, XY en Y2 toegevoegd. We kunnen ook hogere graads polynomen gebruiken als we dat willen. +Door `PolynomialFeatures(2)` te gebruiken, nemen we alle tweede-graads polynomen van de invoerdata op. In ons geval betekent dit alleen `DayOfYear`2, maar met twee invoervariabelen X en Y voegt dit X2, XY en Y2 toe. We kunnen ook hogere graads polynomen gebruiken als we willen. -Pipelines kunnen op dezelfde manier worden gebruikt als het oorspronkelijke `LinearRegression`-object, d.w.z. we kunnen de pipeline `fit`ten en vervolgens `predict` gebruiken om de voorspellingen te krijgen. Hier is de grafiek met testgegevens en de benaderingscurve: +Pipelines kunnen op dezelfde manier worden gebruikt als het originele `LinearRegression` object, d.w.z. we kunnen de pipeline `fitten` en vervolgens `predict` gebruiken om de resultaten te krijgen. Hier is de grafiek met testdata en de benaderingscurve: -Polynomial regression +Polynomiale regressie -Met polynomiale regressie kunnen we iets lagere MSE en hogere determinatie krijgen, maar niet significant. We moeten andere kenmerken in rekening brengen! +Met polynomiale regressie krijgen we iets lagere MSE en hogere bepalingscoëfficiënt, maar niet significant. We moeten rekening houden met andere kenmerken! -> Je kunt zien dat de minimale pompoenprijzen ergens rond Halloween worden waargenomen. Hoe kun je dat verklaren? +> Je ziet dat de minimale pompoenprijzen ergens rond Halloween zijn. Hoe kun je dat verklaren? -🎃 Gefeliciteerd, je hebt zojuist een model gemaakt dat kan helpen de prijs van taartpompoenen te voorspellen. Waarschijnlijk kun je dezelfde procedure herhalen voor alle pompoentypes, maar dat zou saai zijn. Laten we nu leren hoe we rekening kunnen houden met pompoensoorten in ons model! +🎃 Gefeliciteerd, je hebt zojuist een model gemaakt dat kan helpen de prijs van taartpompoenen te voorspellen. Waarschijnlijk kun je dezelfde procedure voor alle pompoentypes herhalen, maar dat zou saai zijn. Laten we nu leren hoe we pompoensoorten rekening kunnen laten houden in ons model! -## Categorische kenmerken +## Categorische Kenmerken -In een ideale wereld willen we prijzen voor verschillende pompoensoorten voorspellen met hetzelfde model. Echter, de kolom `Variety` is anders dan kolommen zoals `Month`, omdat deze niet-numerieke waarden bevat. Dergelijke kolommen worden **categorisch** genoemd. +In de ideale wereld willen we prijzen kunnen voorspellen voor verschillende pompoenrassen met hetzelfde model. De kolom `Variety` is echter anders dan kolommen zoals `Month`, omdat deze niet-numerieke waarden bevat. Zulke kolommen heten **categorisch**. -[![ML voor beginners - Categorievoorspellingen met lineaire regressie](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML voor beginners - Categorievoorspellingen met lineaire regressie") +[![ML voor beginners - Categorische Kenmerken voorspellen met Lineaire Regressie](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML voor beginners - Categorische Kenmerken voorspellen met Lineaire Regressie") > 🎥 Klik op de afbeelding hierboven voor een korte video-overzicht van het gebruik van categorische kenmerken. -Hier zie je hoe de gemiddelde prijs afhangt van de soort: +Hier zie je hoe de gemiddelde prijs afhangt van de variëteit: -Average price by variety +Gemiddelde prijs per variëteit -Om rekening te houden met de soort, moeten we deze eerst omzetten in numerieke vorm, of **encoderen**. Er zijn verschillende manieren om dat te doen: +Om variëteit mee te nemen, moeten we het eerst omzetten naar numerieke vorm, oftewel **encoderen**. We kunnen dat op verschillende manieren doen: -* Eenvoudige **numerieke codering** bouwt een tabel van verschillende soorten, en vervangt dan de soortnaam door een index in die tabel. Dit is niet het beste idee voor lineaire regressie, omdat lineaire regressie de numerieke waarde van de index neemt en optelt bij het resultaat, maal een coëfficiënt. In ons geval is de relatie tussen het indexnummer en de prijs duidelijk niet-lineair, zelfs als we de indices in een specifieke volgorde plaatsen. -* **One-hot encoding** vervangt de kolom `Variety` door 4 verschillende kolommen, een voor elke soort. Elke kolom bevat `1` als de overeenkomstige rij van die betreffende soort is, en `0` anders. Dit betekent dat er vier coëfficiënten in lineaire regressie zijn, één voor elke pompoensoort, verantwoordelijk voor de "startprijs" (of liever gezegd "extra prijs") voor die specifieke soort. +* Eenvoudige **numerieke codering** maakt een tabel van verschillende variëteiten en vervangt dan de variëteitnaam door een index in die tabel. Dit is niet de beste methode voor lineaire regressie, omdat lineaire regressie de daadwerkelijke numerieke waarde van de index neemt en toevoegt aan het resultaat, vermenigvuldigd met een coëfficiënt. In ons geval is de relatie tussen het indexnummer en de prijs duidelijk niet-lineair, zelfs als we zorgen dat indices op bepaalde orde staan. +* **One-hot encoding** vervangt de kolom `Variety` door 4 verschillende kolommen, één voor elke variëteit. Elke kolom bevat `1` als de overeenkomstige rij van die variëteit is, en `0` anders. Dit betekent dat er vier coëfficiënten in de lineaire regressie zijn, één per pompoenvariëteit, verantwoordelijk voor de "startprijs" (of beter gezegd "extra prijs") voor die specifieke variëteit. -De onderstaande code toont hoe we een soort one-hot kunnen encoderen: +De volgende code laat zien hoe we variëteit one-hot encoderen: ```python pd.get_dummies(new_pumpkins['Variety']) @@ -303,14 +302,14 @@ pd.get_dummies(new_pumpkins['Variety']) 1741 | 0 | 1 | 0 | 0 1742 | 0 | 1 | 0 | 0 -Om lineaire regressie te trainen met one-hot gecodeerde variëteit als invoer, hoeven we alleen `X` en `y` correct te initialiseren: +Om lineaire regressie te trainen met one-hot encoded variëteit als invoer, hoeven we `X` en `y` alleen correct te initialiseren: ```python X = pd.get_dummies(new_pumpkins['Variety']) y = new_pumpkins['Price'] ``` -De rest van de code is hetzelfde als wat we hierboven gebruikten om lineaire regressie te trainen. Als je het probeert, zul je zien dat de mean squared error ongeveer hetzelfde is, maar we krijgen een veel hogere coëfficiënt van determinatie (~77%). Om nog nauwkeurigere voorspellingen te krijgen, kunnen we nog meer categorische kenmerken overwegen, evenals numerieke kenmerken zoals `Month` of `DayOfYear`. Om één grote array van features te krijgen, kunnen we `join` gebruiken: +De rest van de code is hetzelfde als wat we eerder gebruikten om lineaire regressie te trainen. Als je dit probeert, zie je dat de mean squared error ongeveer hetzelfde is, maar we krijgen veel een hogere bepalingscoëfficiënt (~77%). Om nog nauwkeurigere voorspellingen te krijgen, kunnen we meer categorische kenmerken meenemen, evenals numerieke kenmerken zoals `Month` of `DayOfYear`. Om één grote array van kenmerken te verkrijgen, kunnen we `join` gebruiken: ```python X = pd.get_dummies(new_pumpkins['Variety']) \ @@ -320,14 +319,14 @@ X = pd.get_dummies(new_pumpkins['Variety']) \ y = new_pumpkins['Price'] ``` -Hier nemen we ook `City` en het type `Package` mee, wat ons een MSE van 2.84 (10%) en een determinatie van 0.94 geeft! +Hier houden we ook rekening met `City` en `Package` type, wat ons een MSE van 2.84 (10%) en een bepalingscoëfficiënt van 0.94 geeft! ## Alles samenvoegen -Om het beste model te maken, kunnen we gecombineerde (one-hot gecodeerde categorische + numerieke) gegevens uit het bovenstaande voorbeeld samen met polynomiale regressie gebruiken. Hier is de volledige code voor jouw gemak: +Om het beste model te maken, kunnen we gecombineerde (one-hot encoded categorische + numerieke) data van het bovenstaande voorbeeld samen met polynomiale regressie gebruiken. Hier is de complete code voor jouw gemak: ```python -# trainingsgegevens instellen +# stel trainingsgegevens in X = pd.get_dummies(new_pumpkins['Variety']) \ .join(new_pumpkins['Month']) \ .join(pd.get_dummies(new_pumpkins['City'])) \ @@ -344,7 +343,7 @@ pipeline.fit(X_train,y_train) # voorspel resultaten voor testgegevens pred = pipeline.predict(X_test) -# bereken MSE en bepaling +# bereken MSE en determinatie mse = np.sqrt(mean_squared_error(y_test,pred)) print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') @@ -352,17 +351,17 @@ score = pipeline.score(X_train,y_train) print('Model determination: ', score) ``` -Dit zou ons de beste determinatiecoëfficiënt van bijna 97% en MSE=2.23 (~8% voorspellingsfout) moeten geven. +Dit zou ons de beste bepalingscoëfficiënt van bijna 97% moeten geven, en MSE=2.23 (~8% voorspellingsfout). -| Model | MSE | Determinatie | -|-------|-----|--------------| +| Model | MSE | Bepalingscoëfficiënt | +|-------|-----|----------------------| | `DayOfYear` Lineair | 2.77 (17.2%) | 0.07 | | `DayOfYear` Polynomiaal | 2.73 (17.0%) | 0.08 | | `Variety` Lineair | 5.24 (19.7%) | 0.77 | | Alle kenmerken Lineair | 2.84 (10.5%) | 0.94 | | Alle kenmerken Polynomiaal | 2.23 (8.25%) | 0.97 | -🏆 Goed gedaan! Je hebt vier regressiemodellen gemaakt in één les en de modelkwaliteit verbeterd tot 97%. In de laatste sectie over regressie leer je over logistische regressie om categorieën te bepalen. +🏆 Goed gedaan! Je maakte vier regressiemodellen in één les en verbeterde de modelkwaliteit tot 97%. In de laatste sectie over regressie leer je over logistieke regressie om categorieën te bepalen. --- ## 🚀Uitdaging @@ -373,7 +372,7 @@ Test verschillende variabelen in dit notebook om te zien hoe correlatie overeenk ## Review & Zelfstudie -In deze les hebben we geleerd over lineaire regressie. Er zijn ook andere belangrijke soorten regressie. Lees over Stepwise, Ridge, Lasso en Elasticnet technieken. Een goede cursus om meer te leren is de [Stanford Statistical Learning cursus](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) +In deze les leerden we over lineaire regressie. Er zijn andere belangrijke typen regressie. Lees over Stepwise, Ridge, Lasso en Elasticnet technieken. Een goede cursus om meer te leren is de [Stanford Statistical Learning cursus](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) ## Opdracht @@ -383,5 +382,5 @@ In deze les hebben we geleerd over lineaire regressie. Er zijn ook andere belang **Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het oorspronkelijke document in de oorspronkelijke taal moet als gezaghebbende bron worden beschouwd. Voor belangrijke informatie wordt een professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. +Dit document is vertaald met behulp van de AI-vertalingsdienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, moet u er rekening mee houden dat geautomatiseerde vertalingen fouten of onjuistheden kunnen bevatten. Het originele document in de oorspronkelijke taal dient als de gezaghebbende bron te worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties voortvloeiend uit het gebruik van deze vertaling. \ No newline at end of file diff --git a/translations/nl/4-Classification/2-Classifiers-1/README.md b/translations/nl/4-Classification/2-Classifiers-1/README.md index f622c0334..bd8fd84d4 100644 --- a/translations/nl/4-Classification/2-Classifiers-1/README.md +++ b/translations/nl/4-Classification/2-Classifiers-1/README.md @@ -1,17 +1,17 @@ -# Categorieën van keukens 1 +# Cuisine classifiers 1 -In deze les gebruik je de dataset die je in de vorige les hebt opgeslagen, vol met gebalanceerde, schone gegevens over keukens. +In deze les ga je de dataset gebruiken die je hebt opgeslagen van de vorige les, vol met evenwichtige, schone data over keukens. -Je zult deze dataset gebruiken met verschillende classificatiemethoden om _een nationale keuken te voorspellen op basis van een groep ingrediënten_. Terwijl je dit doet, leer je meer over enkele manieren waarop algoritmen kunnen worden ingezet voor classificatietaken. +Je zult deze dataset gebruiken met verschillende classifiers om _een bepaalde nationale keuken te voorspellen op basis van een groep ingrediënten_. Terwijl je dit doet, leer je meer over enkele manieren waarop algoritmen kunnen worden ingezet voor classificatietaken. -## [Quiz voorafgaand aan de les](https://ff-quizzes.netlify.app/en/ml/) +## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) # Voorbereiding -Als je [Les 1](../1-Introduction/README.md) hebt voltooid, zorg er dan voor dat een bestand genaamd _cleaned_cuisines.csv_ zich bevindt in de root `/data` map voor deze vier lessen. +Als je [Les 1](../1-Introduction/README.md) hebt afgerond, zorg er dan voor dat er een _cleaned_cuisines.csv_ bestand bestaat in de hoofdmap `/data` voor deze vier lessen. ## Oefening - voorspel een nationale keuken -1. Werk in de map _notebook.ipynb_ van deze les en importeer dat bestand samen met de Pandas-bibliotheek: +1. Werk in deze les in de _notebook.ipynb_-map en importeer dat bestand samen met de Pandas-bibliotheek: ```python import pandas as pd @@ -19,7 +19,7 @@ Als je [Les 1](../1-Introduction/README.md) hebt voltooid, zorg er dan voor dat cuisines_df.head() ``` - De gegevens zien er als volgt uit: + De data ziet er zo uit: | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | @@ -30,7 +30,7 @@ Als je [Les 1](../1-Introduction/README.md) hebt voltooid, zorg er dan voor dat | 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | -1. Importeer nu nog enkele andere bibliotheken: +1. Importeer nu nog enkele bibliotheken: ```python from sklearn.linear_model import LogisticRegression @@ -40,14 +40,14 @@ Als je [Les 1](../1-Introduction/README.md) hebt voltooid, zorg er dan voor dat import numpy as np ``` -1. Verdeel de X- en y-coördinaten in twee dataframes voor training. `cuisine` kan de labels-dataset zijn: +1. Verdeel de X- en y-coördinaten in twee dataframes voor training. `cuisine` kan het labels-dataframe zijn: ```python cuisines_label_df = cuisines_df['cuisine'] cuisines_label_df.head() ``` - Het ziet er als volgt uit: + Het zal er zo uitzien: ```output 0 indian @@ -58,14 +58,14 @@ Als je [Les 1](../1-Introduction/README.md) hebt voltooid, zorg er dan voor dat Name: cuisine, dtype: object ``` -1. Laat die `Unnamed: 0`-kolom en de `cuisine`-kolom vallen door `drop()` aan te roepen. Sla de rest van de gegevens op als trainbare kenmerken: +1. Verwijder die `Unnamed: 0` kolom en de `cuisine` kolom door `drop()` aan te roepen. Bewaar de rest van de data als trainbare features: ```python cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) cuisines_feature_df.head() ``` - Je kenmerken zien er als volgt uit: + Je features zien er zo uit: | | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | @@ -75,75 +75,75 @@ Als je [Les 1](../1-Introduction/README.md) hebt voltooid, zorg er dan voor dat | 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 | -Nu ben je klaar om je model te trainen! +Je bent nu klaar om je model te trainen! -## Het kiezen van je classifier +## Kies je classifier -Nu je gegevens schoon en klaar zijn voor training, moet je beslissen welk algoritme je voor de taak wilt gebruiken. +Nu je data schoon en klaar is voor training, moet je beslissen welk algoritme je voor de klus gaat gebruiken. -Scikit-learn groepeert classificatie onder Gecontroleerd Leren, en in die categorie vind je veel manieren om te classificeren. [De variëteit](https://scikit-learn.org/stable/supervised_learning.html) kan in eerste instantie overweldigend lijken. De volgende methoden bevatten allemaal technieken voor classificatie: +Scikit-learn groepeert classificatie onder Supervised Learning, en in die categorie vind je vele manieren om te classificeren. [De variëteit](https://scikit-learn.org/stable/supervised_learning.html) kan in het begin nogal verwarrend zijn. De volgende methoden bevatten allemaal classificatietechnieken: - Lineaire modellen - Support Vector Machines -- Stochastic Gradient Descent -- Nabijheid van buren -- Gaussiaanse processen +- Stochastische Gradient Descent +- Dichtstbijzijnde buren +- Gaussian Processes - Beslissingsbomen -- Ensemble-methoden (stemmen Classifier) -- Multiclass- en multioutput-algoritmen (multiclass- en multilabel-classificatie, multiclass-multioutput-classificatie) +- Ensemble-methoden (voting Classifier) +- Multiclass en multioutput algoritmes (multiclass en multilabel classificatie, multiclass-multioutput classificatie) -> Je kunt ook [neurale netwerken gebruiken om gegevens te classificeren](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), maar dat valt buiten de scope van deze les. +> Je kunt ook [neurale netwerken gebruiken om data te classificeren](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), maar dat valt buiten de reikwijdte van deze les. -### Welke classifier moet je kiezen? +### Welke classifier te kiezen? -Dus, welke classifier moet je kiezen? Vaak is het testen van verschillende classifiers en kijken naar een goed resultaat een manier om te testen. Scikit-learn biedt een [vergelijking naast elkaar](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) op een gecreëerde dataset, waarbij KNeighbors, SVC op twee manieren, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB en QuadraticDiscriminationAnalysis worden vergeleken, en de resultaten worden gevisualiseerd: +Dus, welke classifier moet je kiezen? Vaak is het doorlopen van meerdere en zoeken naar een goed resultaat een manier om te testen. Scikit-learn biedt een [side-by-side vergelijking](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) op een gemaakte dataset, waarbij KNeighbors, SVC op twee manieren, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB en QuadraticDiscrinationAnalysis worden vergeleken, met de resultaten visueel weergegeven: -![vergelijking van classifiers](../../../../4-Classification/2-Classifiers-1/images/comparison.png) -> Plots gegenereerd in de documentatie van Scikit-learn +![comparison of classifiers](../../../../translated_images/nl/comparison.edfab56193a85e7f.webp) +> Grafieken gegenereerd op de documentatie van Scikit-learn -> AutoML lost dit probleem handig op door deze vergelijkingen in de cloud uit te voeren, zodat je het beste algoritme voor je gegevens kunt kiezen. Probeer het [hier](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) +> AutoML lost dit probleem netjes op door deze vergelijkingen in de cloud uit te voeren, waardoor je het beste algoritme voor je data kunt kiezen. Probeer het [hier](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) -### Een betere aanpak +### Een betere benadering -Een betere manier dan willekeurig gokken is echter om de ideeën te volgen op dit downloadbare [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Hier ontdekken we dat we voor ons multiclass-probleem enkele keuzes hebben: +Een betere manier dan wild raden, is echter om de ideeën op dit downloadbare [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) te volgen. Hier ontdekken we dat we bij ons multiclass-probleem enkele keuzes hebben: -![cheatsheet voor multiclass-problemen](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png) -> Een sectie van Microsoft's Algorithm Cheat Sheet, met opties voor multiclass-classificatie +![cheatsheet for multiclass problems](../../../../translated_images/nl/cheatsheet.07a475ea444d2223.webp) +> Een gedeelte van Microsoft's Algorithm Cheat Sheet, met details over multiclass classificatie-opties -✅ Download dit cheat sheet, print het uit en hang het aan je muur! +✅ Download deze cheat sheet, print hem uit en hang hem op je muur! ### Redenering -Laten we kijken of we verschillende benaderingen kunnen beredeneren, gegeven de beperkingen die we hebben: +Laten we eens kijken of we met redeneren tot verschillende benaderingen kunnen komen, gezien de beperkingen die we hebben: -- **Neurale netwerken zijn te zwaar**. Gezien onze schone, maar minimale dataset, en het feit dat we lokaal trainen via notebooks, zijn neurale netwerken te zwaar voor deze taak. -- **Geen tweeklassen-classifier**. We gebruiken geen tweeklassen-classifier, dus dat sluit one-vs-all uit. -- **Beslissingsboom of logistische regressie zou kunnen werken**. Een beslissingsboom zou kunnen werken, of logistische regressie voor multiclass-gegevens. -- **Multiclass Boosted Decision Trees lossen een ander probleem op**. De multiclass boosted decision tree is het meest geschikt voor niet-parametrische taken, bijvoorbeeld taken die zijn ontworpen om ranglijsten te maken, dus het is niet nuttig voor ons. +- **Neurale netwerken zijn te zwaar**. Gezien onze schone, maar minimale dataset, en het feit dat we lokaal via notebooks trainen, zijn neurale netwerken te zwaar voor deze taak. +- **Geen tweeklassen-classifier**. We gebruiken geen tweeklassen-classifier, dus one-vs-all valt af. +- **Beslissingsboom of logistische regressie kan werken**. Een beslissingsboom kan werken, of logistische regressie voor multiclass data. +- **Multiclass Boosted Decision Trees lossen een ander probleem op**. De multiclass boosted decision tree is het meest geschikt voor niet-parametrische taken, bijvoorbeeld taken die rankings bouwen, dus is niet bruikbaar voor ons. -### Gebruik van Scikit-learn +### Gebruik van Scikit-learn -We zullen Scikit-learn gebruiken om onze gegevens te analyseren. Er zijn echter veel manieren om logistische regressie te gebruiken in Scikit-learn. Bekijk de [parameters om door te geven](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). +We gaan Scikit-learn gebruiken om onze data te analyseren. Er zijn echter veel manieren om logistische regressie in Scikit-learn te gebruiken. Bekijk de [parameters die je moet meegeven](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). -In wezen zijn er twee belangrijke parameters - `multi_class` en `solver` - die we moeten specificeren wanneer we Scikit-learn vragen om een logistische regressie uit te voeren. De waarde van `multi_class` past een bepaald gedrag toe. De waarde van de solver bepaalt welk algoritme wordt gebruikt. Niet alle solvers kunnen worden gecombineerd met alle `multi_class`-waarden. +In wezen zijn er twee belangrijke parameters - `multi_class` en `solver` - die we moeten specificeren wanneer we Scikit-learn om logistische regressie vragen. De waarde van `multi_class` bepaalt een bepaald gedrag. De waarde van `solver` bepaalt welk algoritme wordt gebruikt. Niet alle solvers kunnen gecombineerd worden met alle `multi_class` waarden. -Volgens de documentatie, in het multiclass-geval, gebruikt het trainingsalgoritme: +Volgens de docs gebruikt het trainingsalgoritme in het multiclass-geval: - **Het one-vs-rest (OvR) schema**, als de `multi_class` optie is ingesteld op `ovr` -- **De cross-entropy loss**, als de `multi_class` optie is ingesteld op `multinomial`. (Momenteel wordt de `multinomial` optie alleen ondersteund door de ‘lbfgs’, ‘sag’, ‘saga’ en ‘newton-cg’ solvers.)" +- **De cross-entropy verliesfunctie**, als de `multi_class` optie is ingesteld op `multinomial`. (Momenteel wordt de `multinomial` optie alleen ondersteund door de ‘lbfgs’, ‘sag’, ‘saga’ en ‘newton-cg’ solvers.)" -> 🎓 Het 'schema' hier kan 'ovr' (one-vs-rest) of 'multinomial' zijn. Aangezien logistische regressie eigenlijk is ontworpen om binaire classificatie te ondersteunen, stellen deze schema's het in staat om beter om te gaan met multiclass-classificatietaken. [bron](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) +> 🎓 Het 'schema' hier kan 'ovr' (one-vs-rest) of 'multinomial' zijn. Omdat logistische regressie eigenlijk is ontworpen voor binaire classificatie, stellen deze schema's het beter in staat om multiclass-classificatieproblemen aan te pakken. [bron](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) > 🎓 De 'solver' wordt gedefinieerd als "het algoritme dat wordt gebruikt in het optimalisatieprobleem". [bron](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). -Scikit-learn biedt deze tabel om uit te leggen hoe solvers omgaan met verschillende uitdagingen die worden gepresenteerd door verschillende soorten datastructuren: +Scikit-learn biedt deze tabel om uit te leggen hoe solvers verschillende uitdagingen van verschillende soorten datastructuren aanpakken: -![solvers](../../../../4-Classification/2-Classifiers-1/images/solvers.png) +![solvers](../../../../translated_images/nl/solvers.5fc648618529e627.webp) -## Oefening - splits de gegevens +## Oefening - split de data -We kunnen ons richten op logistische regressie voor onze eerste trainingspoging, aangezien je onlangs over de laatste hebt geleerd in een vorige les. -Splits je gegevens in trainings- en testgroepen door `train_test_split()` aan te roepen: +We kunnen ons richten op logistische regressie voor onze eerste trainingsexperiment omdat je daar onlangs over hebt geleerd in een vorige les. +Splits je data in trainings- en testgroepen door `train_test_split()` aan te roepen: ```python X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) @@ -151,9 +151,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine ## Oefening - pas logistische regressie toe -Aangezien je het multiclass-geval gebruikt, moet je kiezen welk _schema_ je wilt gebruiken en welke _solver_ je wilt instellen. Gebruik LogisticRegression met een multiclass-instelling en de **liblinear** solver om te trainen. +Omdat je de multiclass-variant gebruikt, moet je kiezen welk _schema_ je gebruikt en welke _solver_ je instelt. Gebruik LogisticRegression met een multiclass-instelling en de **liblinear** solver om te trainen. -1. Maak een logistische regressie met multi_class ingesteld op `ovr` en de solver ingesteld op `liblinear`: +1. Maak een logistische regressie met multi_class ingesteld op `ovr` en de solver op `liblinear`: ```python lr = LogisticRegression(multi_class='ovr',solver='liblinear') @@ -163,11 +163,13 @@ Aangezien je het multiclass-geval gebruikt, moet je kiezen welk _schema_ je wilt print ("Accuracy is {}".format(accuracy)) ``` - ✅ Probeer een andere solver zoals `lbfgs`, die vaak als standaard wordt ingesteld -> Let op, gebruik de Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) functie om je data te flatten wanneer nodig. -De nauwkeurigheid is goed bij meer dan **80%**! + ✅ Probeer een andere solver zoals `lbfgs`, die vaak als standaard is ingesteld -1. Je kunt dit model in actie zien door één rij gegevens te testen (#50): + > Let op: gebruik de Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) functie om je data af te vlakken wanneer nodig. + + De nauwkeurigheid is goed, ruim boven de **80%**! + +1. Je kunt dit model in actie zien door één regel data te testen (#50): ```python print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}') @@ -181,9 +183,8 @@ De nauwkeurigheid is goed bij meer dan **80%**! cuisine: indian ``` - ✅ Probeer een ander rijnummer en controleer de resultaten. - -1. Door dieper te graven, kun je de nauwkeurigheid van deze voorspelling controleren: + ✅ Probeer een ander rij-nummer en controleer de resultaten +1. Dieper graven, je kunt de nauwkeurigheid van deze voorspelling controleren: ```python test= X_test.iloc[50].values.reshape(-1, 1).T @@ -207,29 +208,29 @@ De nauwkeurigheid is goed bij meer dan **80%**! ✅ Kun je uitleggen waarom het model er vrij zeker van is dat dit een Indiase keuken is? -1. Krijg meer details door een classificatierapport af te drukken, zoals je deed in de lessen over regressie: +1. Krijg meer detail door een classificatierapport af te drukken, zoals je deed in de regressielessen: ```python y_pred = model.predict(X_test) print(classification_report(y_test,y_pred)) ``` - | | precisie | 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 | - | nauwkeurigheid| 0.80 | 1199 | | | - | macro gem. | 0.80 | 0.80 | 0.80 | 1199 | - | gewogen gem. | 0.80 | 0.80 | 0.80 | 1199 | + | | precision | recall | f1-score | support | + | ------------ | --------- | ------ | -------- | ------- | + | chinese | 0.73 | 0.71 | 0.72 | 229 | + | indian | 0.91 | 0.93 | 0.92 | 254 | + | japanese | 0.70 | 0.75 | 0.72 | 220 | + | korean | 0.86 | 0.76 | 0.81 | 242 | + | thai | 0.79 | 0.85 | 0.82 | 254 | + | accuracy | | | 0.80 | 1199 | + | macro avg | 0.80 | 0.80 | 0.80 | 1199 | + | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | ## 🚀Uitdaging -In deze les heb je je schoongemaakte gegevens gebruikt om een machine learning-model te bouwen dat een nationale keuken kan voorspellen op basis van een reeks ingrediënten. Neem de tijd om de vele opties te bekijken die Scikit-learn biedt om gegevens te classificeren. Verdiep je in het concept van 'solver' om te begrijpen wat er achter de schermen gebeurt. +In deze les heb je je opgeschoonde data gebruikt om een machine learning-model te bouwen dat een nationale keuken kan voorspellen op basis van een reeks ingrediënten. Neem de tijd om de vele opties die Scikit-learn biedt om data te classificeren door te lezen. Duik dieper in het concept van 'solver' om te begrijpen wat er achter de schermen gebeurt. -## [Quiz na de les](https://ff-quizzes.netlify.app/en/ml/) +## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) ## Review & Zelfstudie @@ -240,5 +241,7 @@ Verdiep je wat meer in de wiskunde achter logistische regressie in [deze les](ht --- + **Disclaimer**: -Dit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file +Dit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor belangrijke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. + \ No newline at end of file diff --git a/translations/nl/README.md b/translations/nl/README.md index b408ab39f..04522fdd4 100644 --- a/translations/nl/README.md +++ b/translations/nl/README.md @@ -8,16 +8,16 @@ [![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) [![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) -### 🌐 Meertalige ondersteuning +### 🌐 Meertalige Ondersteuning -#### Ondersteund via GitHub Action (Automatisch & Altijd Up-to-Date) +#### Ondersteund via GitHub Action (Geautomatiseerd & Altijd Actueel) -[Arabisch](../ar/README.md) | [Bengaals](../bn/README.md) | [Bulgaars](../bg/README.md) | [Birmaans (Myanmar)](../my/README.md) | [Chinees (Vereenvoudigd)](../zh-CN/README.md) | [Chinees (Traditioneel, Hong Kong)](../zh-HK/README.md) | [Chinees (Traditioneel, Macau)](../zh-MO/README.md) | [Chinees (Traditioneel, Taiwan)](../zh-TW/README.md) | [Kroatisch](../hr/README.md) | [Tsjechisch](../cs/README.md) | [Deens](../da/README.md) | [Nederlands](./README.md) | [Ests](../et/README.md) | [Fins](../fi/README.md) | [Frans](../fr/README.md) | [Duits](../de/README.md) | [Grieks](../el/README.md) | [Hebreeuws](../he/README.md) | [Hindi](../hi/README.md) | [Hongaars](../hu/README.md) | [Indonesisch](../id/README.md) | [Italiaans](../it/README.md) | [Japans](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Koreaans](../ko/README.md) | [Litouws](../lt/README.md) | [Maleis](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalees](../ne/README.md) | [Nigeriaans Pidgin](../pcm/README.md) | [Noors](../no/README.md) | [Perzisch (Farsi)](../fa/README.md) | [Pools](../pl/README.md) | [Portugees (Brazilië)](../pt-BR/README.md) | [Portugees (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Roemeens](../ro/README.md) | [Russisch](../ru/README.md) | [Servisch (Cyrillisch)](../sr/README.md) | [Slowaaks](../sk/README.md) | [Sloveens](../sl/README.md) | [Spaans](../es/README.md) | [Swahili](../sw/README.md) | [Zweeds](../sv/README.md) | [Tagalog (Filipijns)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turks](../tr/README.md) | [ Oekraïens](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamees](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](./README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Lieferen om lokaal te klonen?** +> **Liever lokaal klonen?** > -> Deze repository bevat meer dan 50 vertalingen wat de downloadgrootte aanzienlijk verhoogt. Om zonder vertalingen te klonen, gebruik sparse checkout: +> Deze repository bevat meer dan 50 taalvertalingen wat de downloadgrootte aanzienlijk vergroot. Om zonder vertalingen te klonen, gebruik sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,14 +33,14 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Dit geeft je alles wat je nodig hebt om de cursus te voltooien met een veel snellere download. +> Dit geeft je alles wat je nodig hebt voor de cursus met een veel snellere download. -#### Word lid van onze community +#### Word Lid van Onze Community [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -We hebben een lopende Discord-serie ‘Learn with AI’, leer er meer over en doe mee via [Learn with AI Series](https://aka.ms/learnwithai/discord) van 18 - 30 september 2025. Je krijgt tips en trucs over het gebruik van GitHub Copilot voor Data Science. +We hebben een lopende Discord leer met AI-serie, kom meer te weten en doe mee via [Learn with AI Series](https://aka.ms/learnwithai/discord) van 18 tot 30 september 2025. Je krijgt tips en trucs over het gebruik van GitHub Copilot voor Data Science. ![Learn with AI series](../../translated_images/nl/3.9b58fd8d6c373c20.webp) @@ -48,149 +48,149 @@ We hebben een lopende Discord-serie ‘Learn with AI’, leer er meer over en do > 🌍 Reis de wereld rond terwijl we Machine Learning verkennen via wereldculturen 🌍 -Cloud Advocates bij Microsoft bieden met plezier een 12-weken durend curriculum aan met 26 lessen over **Machine Learning**. In dit curriculum leer je over wat soms wordt genoemd **klassieke machine learning**, met voornamelijk Scikit-learn als bibliotheek en zonder diepgaand leren, dat aan bod komt in ons [AI for Beginners curriculum](https://aka.ms/ai4beginners). Combineer deze lessen ook met ons ['Data Science for Beginners curriculum'](https://aka.ms/ds4beginners)! +Cloud Advocates bij Microsoft bieden met plezier een 12-weken durend, 26-lessen curriculum aan over **Machine Learning**. In dit curriculum leer je wat soms wordt genoemd **klassieke machine learning**, waarbij voornamelijk Scikit-learn als bibliotheek wordt gebruikt en diepe neurale netwerken worden vermeden, die behandeld worden in ons [AI for Beginners'-curriculum](https://aka.ms/ai4beginners). Combineer deze lessen ook met ons ['Data Science for Beginners'-curriculum](https://aka.ms/ds4beginners)! -Reis met ons mee over de wereld terwijl we deze klassieke technieken toepassen op data uit vele gebieden wereldwijd. Elke les bevat vooraf- en na-lessen quizzen, geschreven instructies om de les te voltooien, een oplossing, een opdracht en meer. Onze projectgebaseerde didactiek stelt je in staat te leren terwijl je bouwt, een bewezen manier om nieuwe vaardigheden ‘te laten beklijven’. +Reis met ons mee over de wereld terwijl we deze klassieke technieken toepassen op data uit vele gebieden van de wereld. Elke les bevat quizzen voor en na de les, geschreven instructies om de les te voltooien, een oplossing, een opdracht en meer. Onze projectgerichte pedagogiek laat je leren terwijl je bouwt, een bewezen manier om nieuwe vaardigheden te verankeren. **✍️ Hartelijke dank aan onze auteurs** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu en Amy Boyd -**🎨 Tevens dank aan onze illustratoren** Tomomi Imura, Dasani Madipalli en Jen Looper +**🎨 Dank ook aan onze illustratoren** Tomomi Imura, Dasani Madipalli en Jen Looper **🙏 Speciale dank 🙏 aan onze Microsoft Student Ambassador auteurs, reviewers en inhoudsbijdragers**, met name Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila en Snigdha Agarwal -**🤩 Extra waardering voor Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi en Vidushi Gupta voor onze R-lessen!** +**🤩 Extra dank aan Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi en Vidushi Gupta voor onze R-lessen!** -# Aan de slag +# Aan de Slag Volg deze stappen: -1. **Fork de repository**: Klik op de "Fork" knop rechtsboven op deze pagina. -2. **Clone de repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Fork de Repository**: Klik op de knop "Fork" rechtsboven op deze pagina. +2. **Clone de Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [vind alle aanvullende middelen voor deze cursus in onze Microsoft Learn collectie](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [vind alle aanvullende bronnen voor deze cursus in onze Microsoft Learn-collectie](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Hulp nodig?** Bekijk onze [Probleemoplossingsgids](TROUBLESHOOTING.md) voor oplossingen bij installatie, setup en het draaien van lessen. +> 🔧 **Hulp nodig?** Bekijk onze [Probleemoplossingsgids](TROUBLESHOOTING.md) voor oplossingen voor veelvoorkomende problemen met installatie, setup en het uitvoeren van lessen. -**[Studenten](https://aka.ms/student-page)**, om dit curriculum te gebruiken, fork je de hele repo naar je eigen GitHub-account en maak je de oefeningen zelfstandig of in een groep: +**[Studenten](https://aka.ms/student-page)**, om dit curriculum te gebruiken, fork de hele repo naar je eigen GitHub-account en maak de oefeningen alleen of in een groep: -- Begin met een pre-lecture quiz. -- Lees de les en voltooi de activiteiten, pauzeer en reflecteer bij elke kennischeck. -- Probeer de projecten zelf te maken door de lessen te begrijpen in plaats van direct de oplossing te gebruiken; die code staat echter beschikbaar in de `/solution` mappen van elke projectgerichte les. -- Maak de post-lecture quiz. +- Begin met een pre-lectuur quiz. +- Lees de lesstof en voltooi de activiteiten, pauzeer en reflecteer bij elke kennischeck. +- Probeer de projecten te maken door de lessen te begrijpen in plaats van simpelweg de code van de oplossing uit te voeren; die code is echter beschikbaar in de `/solution` mappen in elke projectgerichte les. +- Maak de post-lectuur quiz. - Voltooi de challenge. - Maak de opdracht. -- Na het voltooien van een lesgroep, bezoek het [Discussiebord](https://github.com/microsoft/ML-For-Beginners/discussions) en "leer hardop" door de juiste PAT rubric in te vullen. Een ‘PAT’ is een Progress Assessment Tool die je invult om je leren te verdiepen. Je kunt ook reageren op andere PATs zodat we samen kunnen leren. +- Na het afronden van een lesgroep, bezoek het [Discussiebord](https://github.com/microsoft/ML-For-Beginners/discussions) en "leer hardop" door de passende PAT-rubriek in te vullen. Een 'PAT' is een Progress Assessment Tool die je invult om je leerproces te verdiepen. Je kunt ook reageren op andere PAT's zodat we samen kunnen leren. -> Voor verdere studie bevelen we deze [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules en leerpaden aan. +> Voor verdere studie raden we aan deze [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules en leerpaden te volgen. -**Docenten**, we hebben [enkele suggesties](for-teachers.md) opgenomen over hoe dit curriculum te gebruiken. +**Docenten**, we hebben [wat suggesties toegevoegd](for-teachers.md) over hoe je dit curriculum kunt gebruiken. --- -## Videowandelingen +## Video-uitleg -Een aantal lessen is beschikbaar als korte video’s. Je kunt ze in de lessen zelf vinden of op de [ML for Beginners afspeellijst op het Microsoft Developer YouTube-kanaal](https://aka.ms/ml-beginners-videos) door te klikken op de afbeelding hieronder. +Sommige lessen zijn beschikbaar als korte video. Je vindt ze in de lessen zelf of op de [ML for Beginners afspeellijst op het Microsoft Developer YouTube-kanaal](https://aka.ms/ml-beginners-videos) door op onderstaande afbeelding te klikken. [![ML for beginners banner](../../translated_images/nl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Ontmoet het team +## Ontmoet het Team [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif door** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif van** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klik op de afbeelding hierboven voor een video over het project en de mensen die het gemaakt hebben! +> 🎥 Klik op de afbeelding hierboven voor een video over het project en de mensen die het hebben gemaakt! --- ## Pedagogiek -We hebben twee didactische principes gekozen bij het bouwen van dit curriculum: zorgen dat het hands-on en **projectgebaseerd** is en dat het **frequente quizzen** bevat. Daarnaast heeft dit curriculum een gemeenschappelijk **thema** voor samenhang. +We hebben twee pedagogische uitgangspunten gekozen bij het bouwen van dit curriculum: zorgen dat het hands-on **project-gebaseerd** is en dat het **regelmatige quizzen** bevat. Daarnaast heeft dit curriculum een gemeenschappelijk **thema** voor samenhang. -Door te zorgen dat de inhoud aansluit bij projecten wordt het leerproces boeiender voor studenten en wordt het vasthouden van concepten vergroot. Bovendien stelt een quiz met lage inzet voor de les de intentie om een onderwerp te leren, terwijl een tweede quiz na de les zorgt voor verdere retentie. Dit curriculum is ontworpen om flexibel en leuk te zijn en kan geheel of gedeeltelijk gevolgd worden. De projecten starten klein en worden steeds complexer aan het einde van de 12 weken. Dit curriculum bevat ook een naschrift over echte wereldtoepassingen van ML, dat kan worden gebruikt als extra opdracht of als basis voor discussie. +Door te zorgen dat de inhoud aansluit bij projecten, wordt het proces boeiender voor studenten en wordt de onthouding van concepten vergroot. Daarnaast stelt een laagdrempelige quiz voor de les de intentie van de student op leren van een onderwerp, terwijl een tweede quiz na de les verdere retentie bevordert. Dit curriculum is ontworpen om flexibel en leuk te zijn en kan geheel of gedeeltelijk gevolgd worden. De projecten beginnen klein en worden geleidelijk complexer tegen het einde van de 12-weken cyclus. Dit curriculum bevat ook een naproject over praktijktoepassingen van ML, dat gebruikt kan worden als extra credit of als basis voor discussie. -> Vind onze [Gedragsregels](CODE_OF_CONDUCT.md), [Bijdragen](CONTRIBUTING.md), [Vertalingen](..) en [Probleemoplossing](TROUBLESHOOTING.md) richtlijnen. We verwelkomen je constructieve feedback! +> Bekijk onze [Gedragscode](CODE_OF_CONDUCT.md), [Bijdragen](CONTRIBUTING.md), [Vertalingen](..), en [Probleemoplossing](TROUBLESHOOTING.md) richtlijnen. We verwelkomen je constructieve feedback! ## Elke les bevat - optionele sketchnote - optionele aanvullende video -- video walkthrough (sommige lessen alleen) -- [pre-lecture warming-up quiz](https://ff-quizzes.netlify.app/en/ml/) +- video-uitleg (sommige lessen) +- [pre-lecture opwarmquiz](https://ff-quizzes.netlify.app/en/ml/) - geschreven les -- voor projectgebaseerde lessen, stapsgewijze handleidingen om het project te bouwen +- voor project-gebaseerde lessen: stapsgewijze handleidingen om het project te bouwen - kenniscontroles - een uitdaging -- aanvullende lectuur +- aanvullende literatuur - opdracht - [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) -> **Een opmerking over talen**: Deze lessen zijn voornamelijk in Python geschreven, maar veel zijn ook beschikbaar in R. Om een R-les te voltooien, ga je naar de map `/solution` en zoek je naar R-lessen. Deze bevatten een .rmd-extensie die een **R Markdown**-bestand vertegenwoordigt, wat eenvoudig kan worden gedefinieerd als een insluiting van `code chunks` (van R of andere talen) en een `YAML-koptekst` (die aangeeft hoe outputs zoals PDF worden opgemaakt) in een `Markdown-document`. Als zodanig dient het als een voorbeeld van een auteursraamwerk voor datawetenschap, omdat het je in staat stelt je code, output en gedachten te combineren door ze in Markdown te schrijven. Bovendien kunnen R Markdown-documenten worden gerenderd naar outputformaten zoals PDF, HTML of Word. - -> **Een opmerking over quizzes**: Alle quizzes bevinden zich in de [Quiz App-map](../../quiz-app), met in totaal 52 quizzes van elk drie vragen. Ze zijn gekoppeld vanuit de lessen, maar de quiz-app kan lokaal worden uitgevoerd; volg de instructies in de `quiz-app`-map om lokaal te hosten of te implementeren op Azure. - -| Lesnummer | Onderwerp | Les Groepering | Leerdoelen | Gekoppelde Les | Auteur | -| :--------: | :----------------------------------------------------------------: | :------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | -| 01 | Introductie tot machine learning | [Introductie](1-Introduction/README.md) | Leer de basisconcepten achter machine learning | [Les](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | De geschiedenis van machine learning | [Introductie](1-Introduction/README.md) | Leer de geschiedenis achter dit vakgebied | [Les](1-Introduction/2-history-of-ML/README.md) | Jen en Amy | -| 03 | Rechtvaardigheid en machine learning | [Introductie](1-Introduction/README.md) | Wat zijn de belangrijke filosofische kwesties rondom rechtvaardigheid waar studenten rekening mee moeten houden bij het bouwen en toepassen van ML-modellen? | [Les](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Technieken voor machine learning | [Introductie](1-Introduction/README.md) | Welke technieken gebruiken ML-onderzoekers om ML-modellen te bouwen? | [Les](1-Introduction/4-techniques-of-ML/README.md) | Chris en Jen | -| 05 | Introductie tot regressie | [Regressie](2-Regression/README.md) | Begin met Python en Scikit-learn voor regressiemodellen | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Visualiseer en reinig data ter voorbereiding op ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw lineaire en polynomiale regressiemodellen | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen en Dmitry • Eric Wanjau | -| 08 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw een logistiek regressiemodel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Een webapp 🔌 | [Web App](3-Web-App/README.md) | Bouw een webapp om je getrainde model te gebruiken | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introductie tot classificatie | [Classificatie](4-Classification/README.md) | Reinig, bereid voor en visualiseer je data; introductie tot classificatie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen en Cassie • Eric Wanjau | -| 11 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Introductie tot classifiers | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen en Cassie • Eric Wanjau | -| 12 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Meer classifiers | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen en Cassie • Eric Wanjau | -| 13 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Bouw een aanbevelings-webapp met je model | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introductie tot clustering | [Clustering](5-Clustering/README.md) | Reinig, bereid voor en visualiseer je data; introductie tot clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Verkenning van Nigeriaanse muzieksmaken 🎧 | [Clustering](5-Clustering/README.md) | Verken de K-Means clusteringmethode | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introductie tot natuurlijke taalverwerking ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Leer de basis van NLP door het bouwen van een eenvoudige bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Veelvoorkomende NLP-taken ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Verdiep je NLP-kennis door veelvoorkomende taken te begrijpen die nodig zijn bij het omgaan met taalstructuren | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Vertaling en sentimentanalyse ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Vertaling en sentimentanalyse met Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantische hotels in Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotelbeoordelingen 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantische hotels in Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotelbeoordelingen 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introductie tot tijdreeksvoorspelling | [Tijdreeks](7-TimeSeries/README.md) | Introductie tot tijdreeksvoorspelling | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Werelduitgaven aan elektriciteit ⚡️ - tijdreeksvoorspelling met ARIMA | [Tijdreeks](7-TimeSeries/README.md) | Tijdreeksvoorspelling met ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Werelduitgaven aan elektriciteit ⚡️ - tijdreeksvoorspelling met SVR | [Tijdreeks](7-TimeSeries/README.md) | Tijdreeksvoorspelling met Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introductie tot reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introductie tot reinforcement learning met Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Help Peter de wolf te ontwijken! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Napr. | Praktijkvoorbeelden en -toepassingen van ML | [ML in het wild](9-Real-World/README.md) | Interessante en onthullende praktijkvoorbeelden van klassieke ML | [Les](9-Real-World/1-Applications/README.md) | Team | -| Napr. | Model debugging in ML met behulp van de RAI-dashboard | [ML in het wild](9-Real-World/README.md) | Model debugging in Machine Learning met Responsible AI-dashboardcomponenten | [Les](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +> **Een opmerking over talen**: Deze lessen zijn voornamelijk geschreven in Python, maar veel zijn ook beschikbaar in R. Om een R-les te voltooien, ga naar de map `/solution` en zoek naar R-lessen. Deze bevatten een .rmd-extensie die staat voor een **R Markdown**-bestand, wat eenvoudig kan worden gedefinieerd als een insluiting van `codeblokken` (van R of andere talen) en een `YAML-header` (die aangeeft hoe outputs zoals PDF moeten worden opgemaakt) in een `Markdown-document`. Daardoor dient het als een uitstekend auteurskader voor datawetenschap, omdat het je in staat stelt om je code, de output en je gedachten te combineren door ze in Markdown nee te schrijven. Bovendien kunnen R Markdown-bestanden worden gerenderd naar outputformaten zoals PDF, HTML of Word. + +> **Een opmerking over quizzen**: Alle quizzen bevinden zich in de map [Quiz App folder](../../quiz-app), met in totaal 52 quizzen van elk drie vragen. Ze zijn verbonden vanuit de lessen, maar de quiz-app kan lokaal worden uitgevoerd; volg de instructies in de map `quiz-app` om lokaal te hosten of te deployen naar Azure. + +| Lesnummer | Onderwerp | Lesgroep | Leerdoelen | Gelinkte Les | Auteur | +| :-------: | :---------------------------------------------------------------: | :-------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | +| 01 | Introductie tot machine learning | [Introductie](1-Introduction/README.md) | Leer de basisconcepten achter machine learning | [Les](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | De geschiedenis van machine learning | [Introductie](1-Introduction/README.md) | Leer de geschiedenis achter dit vakgebied | [Les](1-Introduction/2-history-of-ML/README.md) | Jen en Amy | +| 03 | Eerlijkheid en machine learning | [Introductie](1-Introduction/README.md) | Wat zijn de belangrijke filosofische kwesties rond eerlijkheid die studenten moeten overwegen bij het bouwen en toepassen van ML modellen? | [Les](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Technieken voor machine learning | [Introductie](1-Introduction/README.md) | Welke technieken gebruiken ML-onderzoekers om ML-modellen te bouwen? | [Les](1-Introduction/4-techniques-of-ML/README.md) | Chris en Jen | +| 05 | Introductie tot regressie | [Regressie](2-Regression/README.md) | Begin met Python en Scikit-learn voor regressiemodellen | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Visualiseer en reinig data ter voorbereiding op ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw lineaire en polynomiale regressiemodellen | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen en Dmitry • Eric Wanjau | +| 08 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw een logistiek regressiemodel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Een Web App 🔌 | [Web App](3-Web-App/README.md) | Bouw een web-app om je getrainde model te gebruiken | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introductie tot classificatie | [Classificatie](4-Classification/README.md) | Reinig, bereid voor en visualiseer je data; introductie tot classificatie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen en Cassie • Eric Wanjau | +| 11 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Introductie tot classifiers | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen en Cassie • Eric Wanjau | +| 12 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Meer classifiers | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen en Cassie • Eric Wanjau | +| 13 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Bouw een recommender web-app met je model | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introductie tot clustering | [Clustering](5-Clustering/README.md) | Reinig, bereid voor en visualiseer je data; introductie tot clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Verkennen van Nigeriaanse muzikale smaken 🎧 | [Clustering](5-Clustering/README.md) | Verken de K-Means clusteringmethode | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introductie tot natuurlijke taalverwerking ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Leer de basis van NLP door een simpele bot te bouwen | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Veelvoorkomende NLP-taken ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Verdiep je NLP-kennis door veelvoorkomende taken te begrijpen die nodig zijn bij het verwerken van taalstructuren | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Vertaling en sentimentanalyse ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Vertaling en sentimentanalyse met Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantische hotels in Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotelrecensies 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantische hotels in Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotelrecensies 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introductie tot tijdreeksvoorspelling | [Tijdreeks](7-TimeSeries/README.md) | Introductie tot tijdreeksvoorspelling | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Wereldwijde energieverbruik ⚡️ - tijdreeksvoorspelling met ARIMA | [Tijdreeks](7-TimeSeries/README.md) | Tijdreeksvoorspelling met ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Wereldwijde energieverbruik ⚡️ - tijdreeksvoorspelling met SVR | [Tijdreeks](7-TimeSeries/README.md) | Tijdreeksvoorspelling met Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introductie tot reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introductie tot reinforcement learning met Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Help Peter de wolf vermijden! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Nawoord | Machine Learning scenario’s en toepassingen in de praktijk | [ML in het Wild](9-Real-World/README.md) | Interessante en onthullende toepassingen van klassieke ML | [Les](9-Real-World/1-Applications/README.md) | Team | +| Nawoord | Modeldebugging in ML met RAI-dashboard | [ML in het Wild](9-Real-World/README.md) | Modeldebugging in Machine Learning met componenten van Responsible AI-dashboard | [Les](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [vind alle aanvullende bronnen voor deze cursus in onze Microsoft Learn-collectie](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline toegang -Je kunt deze documentatie offline gebruiken met [Docsify](https://docsify.js.org/#/). Fork deze repo, [installeer Docsify](https://docsify.js.org/#/quickstart) op je lokale machine en typ vervolgens in de hoofdmap van deze repo `docsify serve`. De website wordt dan lokaal geserveerd op poort 3000: `localhost:3000`. +Je kunt deze documentatie offline gebruiken met [Docsify](https://docsify.js.org/#/). Fork deze repo, [installeer Docsify](https://docsify.js.org/#/quickstart) op je lokale machine en typ dan in de hoofdmap van deze repo `docsify serve`. De website wordt dan geserveerd op poort 3000 op je localhost: `localhost:3000`. ## PDF's -Vind hier een pdf van het curriculum met links [hier](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Vind een pdf van het curriculum met links [hier](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Andere cursussen +## 🎒 Andere cursussen Ons team produceert ook andere cursussen! Bekijk: ### LangChain -[![LangChain4j voor beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js voor beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain voor beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j voor Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js voor Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain voor Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD voor beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI voor beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD voor Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI voor Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP voor Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI-agenten voor Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents voor Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generatieve AI-serie +### Generatieve AI Serie [![Generatieve AI voor Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generatieve AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generatieve AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -200,39 +200,50 @@ Ons team produceert ook andere cursussen! Bekijk: ### Kernleren [![ML voor Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Datawetenschap voor Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science voor Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI voor Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Cybersecurity voor Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Webontwikkeling voor Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![Web Dev voor Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![IoT voor Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR-ontwikkeling voor Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Ontwikkeling voor Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot-serie -[![Copilot voor AI-gepaarde programmering](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +### Copilot Serie +[![Copilot voor AI Gedragen Programmeren](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot voor C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Avontuur](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Hulp krijgen +## Hulp Krijgen -Als je vastloopt of vragen hebt over het maken van AI-apps, sluit je dan aan bij mede-leerlingen en ervaren ontwikkelaars in discussies over MCP. Het is een ondersteunende community waar vragen welkom zijn en kennis vrij gedeeld wordt. +Als je vastloopt of vragen hebt tijdens het leren van Machine Learning of het bouwen van AI-toepassingen, maak je geen zorgen — er is hulp beschikbaar. -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +Je kunt deelnemen aan discussies met andere leerlingen en ontwikkelaars, vragen stellen en je ideeën delen met de community. + +- Word lid van de gemeenschap om vragen te stellen en samen te leren +- Bespreek concepten van Machine Learning en projectideeën +- Krijg begeleiding van ervaren ontwikkelaars + +Een ondersteunende gemeenschap is een geweldige manier om je vaardigheden te vergroten en problemen sneller op te lossen. -Als je productfeedback hebt of fouten tegenkomt tijdens het bouwen, bezoek dan: +[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG) + +Als je bugs, fouten tegenkomt of suggesties hebt voor verbeteringen, kun je ook een **Issue** in deze repository openen om het probleem te melden. + +Voor productfeedback of om bestaande communitystukken te doorzoeken, bezoek het Developer Forum: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Aanvullende leertips + +## Aanvullende Leertips - Bekijk notitieboeken na elke les voor beter begrip. -- Oefen met het zelf implementeren van algoritmen. -- Verken real-world datasets met behulp van geleerde concepten. +- Oefen met het implementeren van algoritmen zelf. +- Verken datasets uit de praktijk met de geleerde concepten. --- **Disclaimer**: -Dit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal geldt als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor enige misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. +Dit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat automatische vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het oorspronkelijke document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor kritieke informatie wordt een professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file diff --git a/translations/vi/.co-op-translator.json b/translations/vi/.co-op-translator.json index c2cca0067..f662e0d38 100644 --- a/translations/vi/.co-op-translator.json +++ b/translations/vi/.co-op-translator.json @@ -90,8 +90,8 @@ "language_code": "vi" }, "2-Regression/3-Linear/README.md": { - "original_hash": "9a8359f1945bd3beccccb2b46592580e", - "translation_date": "2026-02-28T10:37:59+00:00", + "original_hash": "26c53a922f1f1e8542b0ea41ff52221a", + "translation_date": "2026-04-20T20:56:30+00:00", "source_file": "2-Regression/3-Linear/README.md", "language_code": "vi" }, @@ -168,8 +168,8 @@ "language_code": "vi" }, "4-Classification/2-Classifiers-1/README.md": { - "original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b", - "translation_date": "2025-09-05T19:50:19+00:00", + "original_hash": "cb761595e5b6c42b99bb81bd13683311", + "translation_date": "2026-04-20T20:57:33+00:00", "source_file": "4-Classification/2-Classifiers-1/README.md", "language_code": "vi" }, @@ -552,8 +552,8 @@ "language_code": "vi" }, "README.md": { - "original_hash": "7fb48097f57e680b380cd9aae988d317", - "translation_date": "2026-04-06T17:07:23+00:00", + "original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0", + "translation_date": "2026-04-20T20:54:49+00:00", "source_file": "README.md", "language_code": "vi" }, diff --git a/translations/vi/2-Regression/3-Linear/README.md b/translations/vi/2-Regression/3-Linear/README.md index b47e20458..f496716c3 100644 --- a/translations/vi/2-Regression/3-Linear/README.md +++ b/translations/vi/2-Regression/3-Linear/README.md @@ -1,136 +1,136 @@ -# Xây dựng mô hình hồi quy sử dụng Scikit-learn: hồi quy bốn cách +# Xây dựng mô hình hồi quy sử dụng Scikit-learn: hồi quy theo bốn phương pháp -## Ghi chú dành cho người mới bắt đầu +## Ghi chú cho người mới bắt đầu -Hồi quy tuyến tính được sử dụng khi chúng ta muốn dự đoán một **giá trị số** (ví dụ: giá nhà, nhiệt độ hoặc doanh số bán hàng). +Hồi quy tuyến tính được sử dụng khi chúng ta muốn dự đoán một **giá trị số** (ví dụ, giá nhà, nhiệt độ hoặc doanh số). Nó hoạt động bằng cách tìm một đường thẳng đại diện tốt nhất cho mối quan hệ giữa các đặc trưng đầu vào và đầu ra. Trong bài học này, chúng ta tập trung vào việc hiểu khái niệm trước khi khám phá các kỹ thuật hồi quy nâng cao hơn. -![Infographic so sánh hồi quy tuyến tính và đa thức](../../../../translated_images/vi/linear-polynomial.5523c7cb6576ccab.webp) +![Linear vs polynomial regression infographic](../../../../translated_images/vi/linear-polynomial.5523c7cb6576ccab.webp) > Infographic bởi [Dasani Madipalli](https://twitter.com/dasani_decoded) -## [Trắc nghiệm trước bài giảng](https://ff-quizzes.netlify.app/en/ml/) +## [Bài kiểm tra trước bài giảng](https://ff-quizzes.netlify.app/en/ml/) -> ### [Bài học này có sẵn bằng R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html) -### Giới thiệu +> ### [Bài học này cũng có sẵn bằng R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html) +### Giới thiệu -Cho đến nay bạn đã khám phá hồi quy là gì với dữ liệu mẫu lấy từ bộ dữ liệu giá bí ngô mà chúng ta sẽ sử dụng xuyên suốt bài học này. Bạn cũng đã trực quan hóa nó bằng Matplotlib. +Từ trước đến nay bạn đã khám phá khái niệm hồi quy với dữ liệu mẫu thu thập từ bộ dữ liệu giá bí ngô mà chúng ta sẽ sử dụng xuyên suốt bài học này. Bạn cũng đã hình dung dữ liệu bằng Matplotlib. -Bây giờ bạn đã sẵn sàng để đi sâu hơn vào hồi quy trong ML. Trong khi việc trực quan hóa giúp bạn hiểu dữ liệu, sức mạnh thực sự của Machine Learning đến từ _việc huấn luyện mô hình_. Các mô hình được huấn luyện trên dữ liệu lịch sử để tự động nắm bắt các phụ thuộc dữ liệu, và cho phép bạn dự đoán kết quả cho dữ liệu mới mà mô hình chưa từng thấy trước đó. +Bây giờ bạn đã sẵn sàng để đi sâu hơn vào hồi quy trong ML. Trong khi việc trực quan hóa dữ liệu giúp bạn hiểu được dữ liệu, sức mạnh thực sự của Machine Learning đến từ _việc huấn luyện mô hình_. Mô hình được huấn luyện trên dữ liệu lịch sử để tự động nắm bắt các phụ thuộc trong dữ liệu, cho phép bạn dự đoán kết quả cho dữ liệu mới mà mô hình chưa từng thấy trước đó. -Trong bài học này, bạn sẽ học thêm về hai loại hồi quy: _hồi quy tuyến tính cơ bản_ và _hồi quy đa thức_, cùng với một số phép toán nền tảng của các kỹ thuật này. Những mô hình đó sẽ giúp chúng ta dự đoán giá bí ngô dựa trên các dữ liệu đầu vào khác nhau. +Trong bài học này, bạn sẽ học thêm về hai loại hồi quy: _hồi quy tuyến tính cơ bản_ và _hồi quy đa thức_, cùng với một số toán học nền tảng của các kỹ thuật này. Những mô hình đó sẽ giúp chúng ta dự đoán giá bí ngô tùy thuộc vào các dữ liệu đầu vào khác nhau. -[![Học máy cho người mới - Hiểu về hồi quy tuyến tính](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "Học máy cho người mới - Hiểu về hồi quy tuyến tính") +[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression") -> 🎥 Nhấn vào hình ảnh trên để xem video giới thiệu ngắn về hồi quy tuyến tính. +> 🎥 Nhấn vào hình trên để xem video tóm tắt ngắn về hồi quy tuyến tính. -> Xuyên suốt chương trình học này, chúng tôi giả định kiến thức toán học tối thiểu, và cố gắng làm cho nó dễ tiếp cận với học viên đến từ các lĩnh vực khác, vì vậy hãy chú ý đến các ghi chú, 🧮 phần tóm tắt, sơ đồ và các công cụ học tập khác để hỗ trợ hiểu bài. +> Xuyên suốt chương trình học này, chúng tôi giả định kiến thức toán học tối thiểu, và cố gắng làm cho nó dễ tiếp cận cho học viên từ các lĩnh vực khác, vì vậy hãy chú ý đến các ghi chú, 🧮 cảnh báo, sơ đồ và các công cụ học tập khác để hỗ trợ tiếp thu. -### Yêu cầu trước +### Kiến thức nền tảng -Bạn nên đã quen thuộc với cấu trúc dữ liệu bí ngô mà chúng ta đang xem xét. Bạn có thể tìm thấy nó được tải sẵn và đã được làm sạch trong tập _notebook.ipynb_ của bài học này. Trong tập đó, giá bí ngô được hiển thị theo từng bushel trong một bảng dữ liệu mới. Đảm bảo bạn có thể chạy các notebook này trong các kernel của Visual Studio Code. +Bạn nên đã quen với cấu trúc dữ liệu bí ngô mà chúng ta đang xem xét. Bạn có thể tìm thấy nó được tải sẵn và đã được làm sạch trong tệp _notebook.ipynb_ của bài học này. Trong tệp, giá bí ngô được hiển thị theo mỗi bushel trong một dataframe mới. Đảm bảo bạn có thể chạy các notebook này trong môi trường kernel trên Visual Studio Code. ### Chuẩn bị -Như lời nhắc nhở, bạn đang tải dữ liệu này để đặt câu hỏi cho nó. +Như một lời nhắc, bạn đang tải dữ liệu này để đặt câu hỏi với nó. - Khi nào là thời điểm tốt nhất để mua bí ngô? -- Tôi có thể kỳ vọng giá bao nhiêu cho một thùng bí ngô mini? -- Tôi có nên mua chúng theo giỏ nửa bushel hay theo hộp 1 1/9 bushel? -Hãy tiếp tục khám phá dữ liệu này. +- Giá của một thùng bí ngô tí hon có thể kỳ vọng là bao nhiêu? +- Tôi nên mua chúng trong giỏ nửa bushel hay theo hộp 1 1/9 bushel? +Hãy tiếp tục khai thác dữ liệu này. -Trong bài học trước, bạn đã tạo một Pandas data frame và điền dữ liệu từ một phần của bộ dữ liệu gốc, chuẩn hóa giá theo bushel. Tuy nhiên, bằng cách đó bạn chỉ có thể lấy được khoảng 400 điểm dữ liệu và chỉ cho các tháng mùa thu. +Trong bài học trước, bạn đã tạo một Pandas dataframe và điền dữ liệu từ bộ dữ liệu gốc, chuẩn hóa giá theo bushel. Tuy nhiên, bằng cách đó bạn chỉ thu thập được khoảng 400 điểm dữ liệu và chỉ cho các tháng mùa thu. -Hãy xem dữ liệu mà chúng tôi đã tải sẵn trong notebook kèm bài học này. Dữ liệu được tải sẵn và một biểu đồ phân tán ban đầu được vẽ để hiển thị dữ liệu theo tháng. Có thể chúng ta sẽ có thêm thông tin chi tiết về bản chất của dữ liệu bằng cách làm sạch nó kỹ hơn. +Hãy xem dữ liệu được tải sẵn trong notebook đi kèm bài học này. Dữ liệu đã được tải sẵn và một biểu đồ điểm ban đầu đã được vẽ để hiển thị dữ liệu theo tháng. Có lẽ chúng ta có thể thu được nhiều chi tiết hơn về bản chất dữ liệu bằng cách làm sạch thêm. ## Đường hồi quy tuyến tính -Như bạn đã học trong Bài 1, mục tiêu của bài tập hồi quy tuyến tính là có thể vẽ được một đường để: +Như bạn đã học trong Bài 1, mục tiêu của bài tập hồi quy tuyến tính là có thể vẽ một đường để: -- **Hiển thị mối quan hệ giữa các biến.** Hiển thị mối quan hệ giữa các biến -- **Dự đoán.** Dự đoán chính xác vị trí của một điểm dữ liệu mới so với đường đó. +- **Hiển thị quan hệ biến số**. Thể hiện mối quan hệ giữa các biến +- **Dự đoán**. Dự đoán chính xác vị trí mà một điểm dữ liệu mới rơi vào tương quan với đường đó. -Điều phổ biến trong **Hồi quy bình phương tối thiểu** là vẽ kiểu đường như thế này. Thuật ngữ "Bình phương tối thiểu" đề cập đến quá trình giảm thiểu tổng sai số trong mô hình. Với mỗi điểm dữ liệu, chúng ta đo khoảng cách theo chiều dọc (gọi là phần dư) giữa điểm thực tế và đường hồi quy của chúng ta. +Dòng thường được sử dụng trong **Hồi quy bình phương tối thiểu**. Thuật ngữ "Bình phương tối thiểu" đề cập đến quá trình giảm thiểu tổng sai số trong mô hình. Với mỗi điểm dữ liệu, ta đo khoảng cách thẳng đứng (gọi là phần dư) giữa điểm thực tế và đường hồi quy của chúng ta. -Chúng ta bình phương các khoảng cách này vì hai lý do chính: +Chúng ta lấy bình phương các khoảng cách này vì hai lý do chính: -1. **Độ lớn hơn Hướng:** Chúng ta muốn coi sai số -5 giống như sai số +5. Việc bình phương biến tất cả giá trị thành số dương. +1. **Cường độ hơn hướng:** Chúng ta muốn xem lỗi -5 tương đương với lỗi +5. Việc bình phương làm tất cả giá trị thành số dương. -2. **Phạt các ngoại lệ:** Việc bình phương làm tăng trọng số cho các sai số lớn hơn, buộc đường phải nằm gần những điểm nằm xa hơn. +2. **Phạt các ngoại lệ:** Việc bình phương cho trọng số cao hơn với các lỗi lớn, buộc đường hồi quy phải gần hơn với các điểm dữ liệu xa. -Sau đó, chúng ta cộng tất cả các giá trị bình phương này lại với nhau. Mục tiêu là tìm đường cụ thể mà tổng này đạt giá trị nhỏ nhất (giá trị nhỏ nhất có thể) — do đó gọi là "Bình phương tối thiểu". +Sau đó chúng ta cộng tất cả các giá trị bình phương lại với nhau. Mục tiêu là tìm ra đường cụ thể nơi tổng này nhỏ nhất có thể — do đó tên gọi "Bình phương tối thiểu". -> **🧮 Cho tôi xem toán học** +> **🧮 Cho tôi xem toán học** > -> Đường này, gọi là _đường phù hợp tốt nhất_, có thể biểu diễn bằng [một phương trình](https://en.wikipedia.org/wiki/Simple_linear_regression): +> Đường này, gọi là _đường khớp tốt nhất_ có thể được biểu diễn bằng [một phương trình](https://en.wikipedia.org/wiki/Simple_linear_regression): > > ``` > Y = a + bX > ``` > -> `X` là biến 'giải thích'. `Y` là biến 'phụ thuộc'. Độ dốc của đường là `b` và `a` là giao điểm y, tức giá trị của `Y` khi `X = 0`. +> `X` là 'biến giải thích'. `Y` là 'biến phụ thuộc'. Độ dốc của đường là `b` và `a` là điểm giao y, tức là giá trị của `Y` khi `X = 0`. > ->![tính độ dốc](../../../../translated_images/vi/slope.f3c9d5910ddbfcf9.webp) +>![calculate the slope](../../../../translated_images/vi/slope.f3c9d5910ddbfcf9.webp) > -> Đầu tiên, tính độ dốc `b`. Infographic bởi [Jen Looper](https://twitter.com/jenlooper) +> Trước tiên, tính độ dốc `b`. Infographic bởi [Jen Looper](https://twitter.com/jenlooper) > -> Nói cách khác, và liên quan đến câu hỏi gốc của dữ liệu bí ngô: "dự đoán giá bí ngô theo bushel theo tháng", `X` sẽ là giá và `Y` sẽ là tháng bán. +> Nói cách khác, và liên quan đến câu hỏi ban đầu về dữ liệu bí ngô của chúng ta: "dự đoán giá bí ngô theo bushel theo tháng", `X` sẽ là giá và `Y` sẽ là tháng bán. > ->![hoàn thành phương trình](../../../../translated_images/vi/calculation.a209813050a1ddb1.webp) +>![complete the equation](../../../../translated_images/vi/calculation.a209813050a1ddb1.webp) > -> Tính giá trị của Y. Nếu bạn trả khoảng 4 đô la, chắc chắn là tháng Tư rồi! Infographic bởi [Jen Looper](https://twitter.com/jenlooper) +> Tính giá trị Y. Nếu bạn trả khoảng $4, chắc hẳn là tháng Tư! Infographic bởi [Jen Looper](https://twitter.com/jenlooper) > -> Phép toán tính đường phải thể hiện độ dốc đường, cũng phụ thuộc vào giao điểm, hay vị trí của `Y` khi `X = 0`. +> Toán học tính toán đường phải biểu thị độ dốc của đường, cũng phụ thuộc vào giao điểm, tức vị trí `Y` khi `X = 0`. > -> Bạn có thể xem phương pháp tính các giá trị này trên trang web [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Cũng hãy ghé thăm [máy tính bình phương tối thiểu này](https://www.mathsisfun.com/data/least-squares-calculator.html) để xem cách các giá trị số gây ảnh hưởng cho đường như thế nào. +> Bạn có thể quan sát phương pháp tính cho những giá trị này trên trang web [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Cũng hãy ghé xem [máy tính bình phương tối thiểu này](https://www.mathsisfun.com/data/least-squares-calculator.html) để xem cách giá trị số ảnh hưởng đến đường. ## Tương quan -Một thuật ngữ nữa cần hiểu là **Hệ số tương quan** giữa các biến X và Y cho trước. Sử dụng biểu đồ phân tán, bạn có thể nhanh chóng hình dung hệ số này. Một biểu đồ với các điểm dữ liệu nằm gần một đường thẳng thể hiện tương quan cao, còn biểu đồ với các điểm phân tán khắp nơi giữa X và Y thì thể hiện tương quan thấp. +Một thuật ngữ nữa cần hiểu là **Hệ số Tương quan** giữa các biến X và Y cho trước. Bằng việc sử dụng biểu đồ phân tán, bạn có thể nhanh chóng trực quan hệ số này. Một biểu đồ với các điểm dữ liệu xếp thành một đường thẳng rõ ràng có tương quan cao, còn biểu đồ với điểm dữ liệu rải rác khắp nơi giữa X và Y có tương quan thấp. -Một mô hình hồi quy tuyến tính tốt sẽ có Hệ số tương quan cao (gần 1 hơn 0) sử dụng phương pháp Hồi quy bình phương tối thiểu với một đường hồi quy. +Một mô hình hồi quy tuyến tính tốt sẽ có hệ số tương quan cao (gần 1 hơn 0) sử dụng phương pháp Hồi quy bình phương tối thiểu với đường hồi quy. -✅ Hãy chạy notebook kèm theo bài học này và xem biểu đồ phân tán Tháng với Giá. Dữ liệu liên kết Tháng với Giá cho doanh số bí ngô có vẻ có tương quan cao hay thấp, theo cách bạn quan sát biểu đồ phân tán? Điều này có thay đổi nếu bạn dùng phép đo chi tiết hơn thay vì `Month`, ví dụ *ngày của năm* (tức số ngày kể từ đầu năm)? +✅ Chạy notebook đi kèm bài học và xem biểu đồ phân tán Tháng với Giá. Theo quan sát của bạn, dữ liệu liên hệ giữa Tháng và Giá trong bán bí ngô có vẻ tương quan cao hay thấp? Liệu điều này có thay đổi nếu bạn sử dụng đo lường chi tiết hơn thay vì `Month`, ví dụ *ngày trong năm* (tức số ngày kể từ đầu năm)? -Trong đoạn mã dưới đây, chúng ta giả định đã làm sạch dữ liệu, và thu được data frame gọi là `new_pumpkins`, tương tự như sau: +Trong đoạn mã dưới đây, ta giả sử đã làm sạch dữ liệu và thu được một dataframe có tên `new_pumpkins`, tương tự như sau: -ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price ----|-------|-----------|---------|------|---------|-----------|------------|------- -70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364 -71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636 -72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636 -73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545 -74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364 +ID | Tháng | NgàyTrongNăm | ChủngLoại | ThànhPhố | Gói | Giá Thấp | Giá Cao | Giá Trung Bình +---|-------|--------------|-----------|----------|--------|---------|---------|-------------- +70 | 9 | 267 | LOẠI BÁNH | BALTIMORE | hộp 1 1/9 bushel | 15.0 | 15.0 | 13.636364 +71 | 9 | 267 | LOẠI BÁNH | BALTIMORE | hộp 1 1/9 bushel | 18.0 | 18.0 | 16.363636 +72 | 10 | 274 | LOẠI BÁNH | BALTIMORE | hộp 1 1/9 bushel | 18.0 | 18.0 | 16.363636 +73 | 10 | 274 | LOẠI BÁNH | BALTIMORE | hộp 1 1/9 bushel | 17.0 | 17.0 | 15.454545 +74 | 10 | 281 | LOẠI BÁNH | BALTIMORE | hộp 1 1/9 bushel | 15.0 | 15.0 | 13.636364 -> Mã để làm sạch dữ liệu có trong [`notebook.ipynb`](notebook.ipynb). Chúng tôi đã thực hiện các bước làm sạch tương tự như bài học trước, và đã tính cột `DayOfYear` bằng biểu thức sau: +> Mã lệnh làm sạch dữ liệu có trong [`notebook.ipynb`](notebook.ipynb). Chúng ta đã tiến hành các bước làm sạch giống như bài học trước, và đã tính toán cột `DayOfYear` theo biểu thức sau: ```python day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days) ``` -Bây giờ bạn đã hiểu toán học phía sau hồi quy tuyến tính, hãy tạo một mô hình hồi quy để xem liệu chúng ta có thể dự đoán gói bí ngô nào sẽ có giá tốt nhất không. Ai đó mua bí ngô cho mùa lễ hội có thể muốn thông tin này để tối ưu hóa việc mua các gói bí ngô cho mùa lễ. +Bây giờ bạn đã hiểu toán học nền tảng của hồi quy tuyến tính, hãy tạo mô hình Hồi quy để xem liệu chúng ta có thể dự đoán gói bí ngô nào sẽ có giá tốt nhất không. Người mua bí ngô cho khu vực trang trí lễ hội có thể muốn thông tin này để tối ưu hóa việc mua hàng. ## Tìm kiếm tương quan -[![Học máy cho người mới - Tìm kiếm tương quan: Chìa khóa của hồi quy tuyến tính](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Học máy cho người mới - Tìm kiếm tương quan: Chìa khóa của hồi quy tuyến tính") +[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression") -> 🎥 Nhấn vào hình ảnh trên để xem video tóm tắt về tương quan. +> 🎥 Nhấn vào hình trên để xem video tóm tắt ngắn về tương quan. -Từ bài học trước bạn có thể đã thấy giá trung bình theo các tháng trông như sau: +Từ bài học trước, bạn có thể đã thấy rằng giá trung bình cho các tháng khác nhau trông như sau: -Giá trung bình theo tháng +Average price by month -Điều này cho thấy có thể có một số tương quan, và chúng ta có thể thử huấn luyện mô hình hồi quy tuyến tính để dự đoán mối quan hệ giữa `Month` và `Price`, hoặc giữa `DayOfYear` và `Price`. Dưới đây là biểu đồ phân tán cho thấy mối quan hệ sau: +Điều này gợi ý rằng có thể có tương quan, và chúng ta có thể thử huấn luyện mô hình hồi quy tuyến tính để dự đoán mối quan hệ giữa `Month` và `Price`, hoặc giữa `DayOfYear` và `Price`. Dưới đây là biểu đồ phân tán thể hiện mối quan hệ sau: -Biểu đồ phân tán Giá so với Ngày trong năm +Scatter plot of Price vs. Day of Year -Hãy xem có tương quan bằng cách sử dụng hàm `corr`: +Hãy xem tương quan qua hàm `corr`: ```python print(new_pumpkins['Month'].corr(new_pumpkins['Price'])) print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price'])) ``` -Có vẻ như tương quan khá nhỏ, -0.15 theo `Month` và -0.17 theo `DayOfMonth`, nhưng có thể có mối quan hệ quan trọng khác. Có vẻ như có các cụm giá khác nhau tương ứng với các loại bí ngô khác nhau. Để xác nhận giả thuyết này, hãy vẽ từng loại bí ngô với màu khác nhau. Bằng cách truyền tham số `ax` cho hàm `scatter` chúng ta có thể vẽ tất cả điểm trên cùng một biểu đồ: +Có vẻ hệ số tương quan khá nhỏ, -0.15 theo `Month` và -0.17 theo `DayOfYear`, nhưng rất có thể còn mối quan hệ quan trọng khác. Có vẻ như có các cụm điểm giá ứng với các chủng loại bí ngô khác nhau. Để xác nhận giả thuyết này, hãy vẽ mỗi loại bí ngô bằng màu khác nhau. Bằng cách truyền tham số `ax` vào hàm vẽ `scatter` ta có thể vẽ tất cả điểm trong cùng một biểu đồ: ```python ax=None @@ -140,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()): ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var) ``` -Biểu đồ phân tán Giá so với Ngày trong năm với màu sắc +Scatter plot of Price vs. Day of Year -Cuộc điều tra cho thấy loại bí ngô ảnh hưởng nhiều hơn đến giá tổng thể so với ngày bán thực tế. Ta có thể thấy điều này với biểu đồ thanh: +Cuộc điều tra cho thấy chủng loại ảnh hưởng nhiều hơn đến giá chung so với ngày bán thực tế. Ta có thể thấy điều này qua biểu đồ cột: ```python new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar') ``` -Biểu đồ thanh giá theo loại bí ngô +Bar graph of price vs variety -Chúng ta hãy tập trung tạm thời chỉ vào một loại bí ngô, loại 'pie type', và xem tác động của ngày đến giá như thế nào: +Tạm thời chúng ta hãy tập trung chỉ vào một chủng loại bí ngô, 'loại bánh', và xem ngày bán ảnh hưởng thế nào đến giá: ```python pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE'] pie_pumpkins.plot.scatter('DayOfYear','Price') ``` -Biểu đồ phân tán Giá so với Ngày trong năm - loại pie pumpkins +Scatter plot of Price vs. Day of Year -Nếu chúng ta tính tương quan giữa `Price` và `DayOfYear` sử dụng hàm `corr`, ta sẽ thu được giá trị khoảng `-0.27` - nghĩa là việc huấn luyện một mô hình dự đoán là có ý nghĩa. +Nếu ta tính toán tương quan giữa `Price` và `DayOfYear` bằng hàm `corr`, ta sẽ thu được khoảng `-0.27` - nghĩa là việc huấn luyện mô hình dự đoán là có lý. -> Trước khi huấn luyện mô hình hồi quy tuyến tính, điều quan trọng là đảm bảo dữ liệu sạch. Hồi quy tuyến tính không hoạt động tốt với các giá trị thiếu, nên nên loại bỏ tất cả ô trống: +> Trước khi đào tạo mô hình hồi quy tuyến tính, quan trọng là phải đảm bảo dữ liệu sạch. Hồi quy tuyến tính không làm việc tốt với các giá trị thiếu, vì vậy nên loại bỏ tất cả ô trống: ```python pie_pumpkins.dropna(inplace=True) pie_pumpkins.info() ``` -Một cách khác là điền các giá trị thiếu bằng giá trị trung bình của cột tương ứng. +Một cách tiếp cận khác là điền các giá trị thiếu bằng giá trị trung bình của cột tương ứng. ## Hồi quy tuyến tính đơn giản -[![Học máy cho người mới - Hồi quy tuyến tính và đa thức sử dụng Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Học máy cho người mới - Hồi quy tuyến tính và đa thức sử dụng Scikit-learn") +[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn") -> 🎥 Nhấn vào hình ảnh trên để xem video giới thiệu ngắn về hồi quy tuyến tính và đa thức. +> 🎥 Nhấn vào hình trên để xem video tóm tắt ngắn về hồi quy tuyến tính và đa thức. -Để huấn luyện mô hình hồi quy tuyến tính, chúng ta sẽ sử dụng thư viện **Scikit-learn**. +Để huấn luyện mô hình Hồi quy tuyến tính, chúng ta sẽ dùng thư viện **Scikit-learn**. ```python from sklearn.linear_model import LinearRegression @@ -183,48 +183,49 @@ from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split ``` -Chúng ta bắt đầu bằng cách tách giá trị đầu vào (đặc trưng) và đầu ra dự kiến (nhãn) thành các mảng numpy riêng biệt: +Đầu tiên ta tách các giá trị đầu vào (đặc trưng) và kết quả mong đợi (nhãn) ra thành các mảng numpy riêng biệt: ```python X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1) y = pie_pumpkins['Price'] ``` -> Lưu ý rằng chúng ta phải thực hiện thao tác `reshape` trên dữ liệu đầu vào để gói Linear Regression hiểu đúng. Linear Regression yêu cầu đầu vào là mảng 2 chiều, trong đó mỗi hàng tương ứng với một vector đặc trưng đầu vào. Trường hợp của chúng ta chỉ có một đầu vào, nên cần mảng có kích thước N×1, với N là số lượng data. +> Lưu ý chúng ta phải thực hiện `reshape` trên dữ liệu đầu vào để gói Linear Regression hiểu đúng cách. Hồi quy tuyến tính yêu cầu đầu vào là mảng 2 chiều, trong đó mỗi dòng là một vector đặc trưng. Trong trường hợp của ta, vì chỉ có một đầu vào nên cần mảng có kích thước N×1, với N là kích thước bộ dữ liệu. -Sau đó, chúng ta cần chia dữ liệu thành tập huấn luyện và tập kiểm thử để có thể kiểm tra mô hình sau khi huấn luyện: +Sau đó, ta phải chia dữ liệu thành tập huấn luyện và tập kiểm tra để có thể kiểm tra mô hình sau khi huấn luyện: ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` -Cuối cùng, việc huấn luyện mô hình hồi quy tuyến tính thực sự chỉ cần hai dòng lệnh. Chúng ta tạo đối tượng `LinearRegression`, rồi điều chỉnh nó với dữ liệu bằng phương pháp `fit`: +Cuối cùng, việc huấn luyện mô hình Linear Regression thực tế chỉ mất hai dòng code. Ta định nghĩa đối tượng `LinearRegression`, và gọi phương thức `fit` để phù hợp với dữ liệu: ```python lin_reg = LinearRegression() lin_reg.fit(X_train,y_train) ``` -Đối tượng `LinearRegression` sau khi thực hiện `fit` chứa tất cả các hệ số của hồi quy, có thể được truy cập thông qua thuộc tính `.coef_`. Trong trường hợp của chúng ta, chỉ có một hệ số, khoảng `-0.017`. Điều này có nghĩa là giá cả có vẻ giảm một chút theo thời gian, nhưng không quá nhiều, khoảng 2 xu mỗi ngày. Chúng ta cũng có thể truy cập điểm cắt của đường hồi quy với trục Y bằng cách sử dụng `lin_reg.intercept_` - nó sẽ khoảng `21` trong trường hợp của chúng ta, cho thấy giá vào đầu năm. +Đối tượng `LinearRegression` sau khi được `fit` chứa tất cả các hệ số của hồi quy, có thể truy cập thông qua thuộc tính `.coef_`. Trong trường hợp của chúng ta, chỉ có một hệ số duy nhất, khoảng `-0.017`. Điều này có nghĩa là giá cả có xu hướng giảm nhẹ theo thời gian, nhưng không nhiều, khoảng 2 cent mỗi ngày. Chúng ta cũng có thể truy cập điểm giao của hồi quy với trục Y bằng `lin_reg.intercept_` - nó sẽ khoảng `21` trong trường hợp của chúng ta, biểu thị giá vào đầu năm. -Để xem mô hình của chúng ta chính xác như thế nào, ta có thể dự đoán giá trên một tập dữ liệu kiểm tra, sau đó đo lường mức độ gần với giá trị mong đợi. Điều này có thể được thực hiện bằng cách sử dụng chỉ số lỗi bình phương trung bình (MSE), là trung bình của tất cả các hiệu số bình phương giữa giá trị mong đợi và giá trị dự đoán. +Để xem mô hình của chúng ta chính xác đến mức nào, chúng ta có thể dự đoán giá trên bộ dữ liệu test, và sau đó đo xem các dự đoán có gần với giá trị mong đợi hay không. Điều này có thể được thực hiện bằng cách sử dụng chỉ số lỗi trung bình bình phương căn (RMSE), là căn bậc hai của trung bình tất cả các sai số bình phương giữa giá trị mong đợi và giá trị dự đoán. ```python pred = lin_reg.predict(X_test) -mse = np.sqrt(mean_squared_error(y_test,pred)) -print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') +rmse = np.sqrt(mean_squared_error(y_test,pred)) +print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)') ``` -Lỗi của chúng ta có vẻ khoảng 2 điểm, tức khoảng ~17%. Không quá tốt. Một chỉ số khác về chất lượng mô hình là **hệ số xác định**, có thể được lấy như sau: +Lỗi của chúng ta có vẻ khoảng 2 điểm, tức là ~17%. Không được tốt lắm. Một chỉ số khác để đánh giá chất lượng mô hình là **hệ số xác định**, có thể lấy như sau: ```python score = lin_reg.score(X_train,y_train) print('Model determination: ', score) ``` -Nếu giá trị là 0, điều đó có nghĩa mô hình không xem xét dữ liệu đầu vào, và hoạt động như *bộ dự đoán tuyến tính tệ nhất*, là giá trị trung bình của kết quả. Giá trị 1 có nghĩa là chúng ta có thể dự đoán chính xác tất cả các kết quả mong đợi. Trong trường hợp của chúng ta, hệ số này khoảng 0.06, khá thấp. -Chúng ta cũng có thể vẽ dữ liệu kiểm tra cùng với đường hồi quy để thấy rõ cách hồi quy hoạt động trong trường hợp này: +Nếu giá trị là 0, nghĩa là mô hình không xem xét dữ liệu đầu vào, và hoạt động như *bộ dự đoán tuyến tính tệ nhất*, chính là giá trị trung bình của kết quả. Giá trị 1 nghĩa là chúng ta có thể dự đoán chính xác tất cả các đầu ra mong đợi. Trong trường hợp của chúng ta, hệ số khoảng 0.06, khá thấp. + +Chúng ta cũng có thể vẽ dữ liệu test cùng với đường hồi quy để thấy rõ hơn hồi quy hoạt động như thế nào trong trường hợp của chúng ta: ```python plt.scatter(X_test,y_test) @@ -233,19 +234,19 @@ plt.plot(X_test,pred) Linear regression -## Hồi Quy Đa Thức (Polynomial Regression) +## Hồi quy đa thức -Một loại khác của Hồi Quy Tuyến Tính là Hồi Quy Đa Thức. Trong khi đôi khi có mối quan hệ tuyến tính giữa các biến - quả bí ngô càng to về thể tích thì giá càng cao - đôi khi những mối quan hệ này không thể biểu diễn bằng mặt phẳng hoặc đường thẳng. +Một loại khác của Hồi quy tuyến tính là Hồi quy đa thức. Mặc dù đôi khi có mối quan hệ tuyến tính giữa các biến - càng to thì giá càng cao - đôi khi các mối quan hệ này không thể biểu diễn bằng một mặt phẳng hoặc đường thẳng. -✅ Đây là [một vài ví dụ khác](https://online.stat.psu.edu/stat501/lesson/9/9.8) về dữ liệu có thể sử dụng Hồi Quy Đa Thức +✅ Đây là [một số ví dụ khác](https://online.stat.psu.edu/stat501/lesson/9/9.8) về dữ liệu có thể sử dụng Hồi quy đa thức -Hãy nhìn lại mối quan hệ giữa Date và Price. Biểu đồ phân tán này có nhất thiết phải được phân tích bằng một đường thẳng không? Giá cả có thể dao động phải không? Trong trường hợp này, bạn có thể thử hồi quy đa thức. +Hãy xem lại mối quan hệ giữa Ngày và Giá. Đồ thị phân tán này có thật sự nên được phân tích bằng đường thẳng không? Không thể có sự dao động về giá sao? Trong trường hợp này, bạn có thể thử hồi quy đa thức. -✅ Đa thức là biểu thức toán học có thể bao gồm một hoặc nhiều biến và hệ số +✅ Đa thức là các biểu thức toán học có thể gồm một hoặc nhiều biến và hệ số -Hồi quy đa thức tạo ra một đường cong để phù hợp hơn với dữ liệu phi tuyến. Trong trường hợp của chúng ta, nếu thêm biến `DayOfYear` bình phương vào dữ liệu đầu vào, ta có thể phù hợp dữ liệu bằng một đường parabol, sẽ có điểm cực tiểu tại một thời điểm nhất định trong năm. +Hồi quy đa thức tạo đường cong để phù hợp hơn với dữ liệu phi tuyến. Trong trường hợp của chúng ta, nếu thêm biến `DayOfYear` bình phương vào dữ liệu đầu vào, chúng ta có thể khớp dữ liệu với đường cong parabol, có điểm cực tiểu ở một thời điểm trong năm. -Scikit-learn bao gồm một [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) hữu ích để kết hợp các bước xử lý dữ liệu khác nhau với nhau. Một **pipeline** là chuỗi các **estimator**. Trong trường hợp này, ta sẽ tạo pipeline trước tiên thêm các đặc trưng đa thức vào mô hình, sau đó đào tạo hồi quy: +Scikit-learn có API [pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) hữu ích để kết hợp các bước xử lý dữ liệu lại với nhau. Một **pipeline** là chuỗi các **estimator**. Trong trường hợp này, chúng ta sẽ tạo pipeline đầu tiên thêm các đặc trưng đa thức vào mô hình, rồi sau đó huấn luyện hồi quy: ```python from sklearn.preprocessing import PolynomialFeatures @@ -256,36 +257,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) pipeline.fit(X_train,y_train) ``` -Sử dụng `PolynomialFeatures(2)` có nghĩa là ta sẽ bao gồm tất cả các đa thức bậc hai từ dữ liệu đầu vào. Trong trường hợp của chúng ta chỉ có `DayOfYear`2, nhưng nếu có hai biến đầu vào X và Y, nó sẽ thêm X2, XY và Y2. Ta cũng có thể sử dụng đa thức bậc cao hơn nếu muốn. +Sử dụng `PolynomialFeatures(2)` nghĩa là chúng ta sẽ bao gồm tất cả đa thức bậc hai từ dữ liệu đầu vào. Trong trường hợp này chỉ là `DayOfYear`2, nhưng với hai biến đầu vào X và Y, sẽ thêm X2, XY và Y2. Chúng ta cũng có thể dùng đa thức bậc cao hơn nếu muốn. -Pipeline có thể được sử dụng giống như đối tượng `LinearRegression` gốc, tức là có thể `fit` pipeline, sau đó dùng `predict` để có kết quả dự đoán. Dưới đây là đồ thị thể hiện dữ liệu kiểm tra và đường cong xấp xỉ: +Pipeline có thể dùng như đối tượng `LinearRegression` ban đầu, tức là ta có thể `fit` pipeline rồi sau đó dùng `predict` để lấy kết quả dự đoán. Dưới đây là đồ thị cho thấy dữ liệu test và đường cong xấp xỉ: Polynomial regression -Sử dụng Hồi Quy Đa Thức, ta có thể thu được MSE thấp hơn một chút và hệ số xác định cao hơn, nhưng không đáng kể. Ta cần xem xét các đặc trưng khác! +Dùng Hồi quy đa thức, ta có thể có MSE hơi thấp hơn và hệ số xác định cao hơn, nhưng không đáng kể. Ta cần xem xét các đặc trưng khác! -> Bạn có thể thấy giá bí ngô thấp nhất được quan sát vào khoảng dịp Halloween. Bạn giải thích điều này như thế nào? +> Bạn có thể thấy giá tối thiểu của bí ngô xuất hiện xung quanh Halloween. Bạn giải thích điều này thế nào? -🎃 Chúc mừng, bạn vừa tạo một mô hình có thể dự đoán giá bí ngô làm bánh. Bạn có thể làm tương tự cho tất cả các loại bí ngô, nhưng điều đó sẽ khá tẻ nhạt. Bây giờ hãy học cách xem xét loại bí ngô trong mô hình của chúng ta! +🎃 Chúc mừng, bạn vừa tạo mô hình có thể giúp dự đoán giá bí ngô làm bánh. Có thể bạn sẽ lặp lại quy trình cho các loại bí khác, nhưng sẽ rất tốn thời gian. Giờ hãy học cách đưa loại bí vào mô hình nhé! -## Đặc Trưng Phân Loại (Categorical Features) +## Đặc trưng phân loại -Trong thế giới lý tưởng, chúng ta muốn dự đoán giá cho các giống bí ngô khác nhau dùng cùng một mô hình. Tuy nhiên, cột `Variety` hơi khác với các cột như `Month`, vì nó chứa các giá trị không phải số. Những cột như vậy được gọi là **categorical**. +Trong thế giới lý tưởng, ta muốn dự đoán giá cho các loại bí khác nhau bằng cùng một mô hình. Tuy nhiên, cột `Variety` khá khác so với các cột như `Month` vì nó chứa giá trị không phải số. Các cột như vậy gọi là **phân loại**. [![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression") -> 🎥 Nhấp vào hình ảnh trên để xem video tổng quan ngắn về cách dùng đặc trưng phân loại. +> 🎥 Nhấn vào hình trên để xem video ngắn về cách dùng các đặc trưng phân loại. -Ở đây bạn có thể thấy giá trung bình phụ thuộc vào giống: +Bạn có thể thấy giá trung bình phụ thuộc vào loại bí như thế nào: Average price by variety -Để xem xét giống, trước tiên ta cần chuyển nó sang dạng số, hay còn gọi là **mã hóa**. Có vài cách để làm điều này: +Để đưa loại bí vào mô hình, trước tiên cần chuyển thành dạng số, hay **mã hóa**. Có một số cách để làm điều này: -* **Mã hóa số đơn giản** sẽ xây dựng bảng các giống khác nhau, rồi thay thế tên giống bằng chỉ số trong bảng đó. Đây không phải ý tưởng tốt cho hồi quy tuyến tính vì hồi quy tuyến tính lấy giá trị số của chỉ số, và cộng nó vào kết quả nhân với hệ số tương ứng. Trong trường hợp này, mối quan hệ giữa số chỉ mục và giá là phi tuyến rõ ràng, ngay cả khi chúng ta sắp xếp chỉ mục theo 1 cách cụ thể. -* **Mã hóa one-hot** sẽ thay thế cột `Variety` bằng 4 cột khác nhau, mỗi cột dành một giống. Mỗi cột sẽ chứa `1` nếu dòng tương ứng thuộc giống đó, và `0` nếu không. Điều này có nghĩa hồi quy tuyến tính sẽ có bốn hệ số, mỗi hệ số ứng với một giống bí ngô, đại diện cho "giá khởi điểm" (hay chính xác hơn là "giá cộng thêm") của giống đó. +* **Mã hóa số đơn giản** tạo bảng các loại khác nhau, rồi thay tên loại bằng chỉ số trong bảng đó. Đây không phải ý hay cho hồi quy tuyến tính, vì hồi quy tuyến tính dùng trực tiếp giá trị số của chỉ số và nhân với hệ số. Trong trường hợp này, mối quan hệ giữa số chỉ số và giá không phải là tuyến tính, dù ta cố sắp xếp các chỉ số theo thứ tự nào đó. +* **Mã hóa one-hot** sẽ thay cột `Variety` bằng 4 cột khác, mỗi cột cho một loại. Mỗi cột có giá trị `1` nếu hàng tương ứng thuộc loại đó, `0` nếu không. Điều này dẫn đến 4 hệ số trong hồi quy, mỗi hệ số dành cho một loại bí, thể hiện "giá khởi đầu" (hoặc "giá thêm") cho loại đó. -Đoạn mã dưới đây cho thấy cách ta mã hóa one-hot cho giống: +Đoạn mã dưới đây cho thấy cách mã hóa one-hot cho loại bí: ```python pd.get_dummies(new_pumpkins['Variety']) @@ -302,14 +303,14 @@ pd.get_dummies(new_pumpkins['Variety']) 1741 | 0 | 1 | 0 | 0 1742 | 0 | 1 | 0 | 0 -Để huấn luyện hồi quy tuyến tính sử dụng dạng one-hot mã hóa giống làm đầu vào, ta chỉ cần khởi tạo dữ liệu `X` và `y` đúng cách: +Để huấn luyện hồi quy tuyến tính dùng kiểu mã hóa one-hot, ta chỉ cần khởi tạo dữ liệu `X` và `y` đúng cách: ```python X = pd.get_dummies(new_pumpkins['Variety']) y = new_pumpkins['Price'] ``` -Phần còn lại của mã giống như đã dùng trên để huấn luyện hồi quy tuyến tính. Nếu bạn thử, sẽ thấy lỗi bình phương trung bình (MSE) gần như không đổi, nhưng hệ số xác định tăng lên đáng kể (~77%). Để có dự đoán chính xác hơn nữa, ta có thể thêm các đặc trưng phân loại khác cũng như các đặc trưng số, như `Month` hay `DayOfYear`. Để có một mảng đặc trưng lớn, ta có thể dùng `join`: +Phần còn lại của mã giống như trên dùng để huấn luyện hồi quy tuyến tính. Nếu bạn thử, sẽ thấy MSE gần như bằng nhau, nhưng hệ số xác định tăng lên khá nhiều (~77%). Để dự đoán chính xác hơn, ta có thể dùng nhiều đặc trưng phân loại hơn, cũng như các đặc trưng số, ví dụ như `Month` hoặc `DayOfYear`. Để có mảng đặc trưng lớn, dùng `join`: ```python X = pd.get_dummies(new_pumpkins['Variety']) \ @@ -319,21 +320,21 @@ X = pd.get_dummies(new_pumpkins['Variety']) \ y = new_pumpkins['Price'] ``` -Tại đây ta cũng xem xét `City` và loại `Package`, cho kết quả MSE 2.84 (10%), và hệ số xác định 0.94! +Ở đây ta cũng thêm vào `City` và loại `Package`, cho kết quả MSE 2.84 (10%), và hệ số xác định 0.94! -## Kết Hợp Toàn Bộ +## Tổng hợp lại -Để có mô hình tốt nhất, ta có thể dùng dữ liệu kết hợp (mã hóa one-hot các đặc trưng phân loại + đặc trưng số) từ ví dụ trên cùng với Hồi Quy Đa Thức. Dưới đây là đoạn mã hoàn chỉnh để thuận tiện sử dụng: +Để có mô hình tốt nhất, ta có thể dùng dữ liệu kết hợp (phân loại mã hóa one-hot + số) từ ví dụ trên cùng hồi quy đa thức. Dưới đây là mã đầy đủ cho bạn tiện sử dụng: ```python -# thiết lập dữ liệu huấn luyện +# thiết lập dữ liệu đào tạo 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'] -# thực hiện chia tập huấn luyện và kiểm tra +# chia dữ liệu thành tập huấn luyện và kiểm tra X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # thiết lập và huấn luyện pipeline @@ -351,36 +352,36 @@ score = pipeline.score(X_train,y_train) print('Model determination: ', score) ``` -Điều này sẽ cho hệ số xác định tốt nhất gần 97%, và MSE=2.23 (~8% lỗi dự đoán). +Mô hình này cho hệ số xác định cao nhất gần 97% và MSE=2.23 (~8% lỗi dự đoán). | Mô hình | MSE | Hệ số xác định | -|---------|-----|----------------| -| Hồi Quy Tuyến Tính với `DayOfYear` | 2.77 (17.2%) | 0.07 | -| Hồi Quy Đa Thức với `DayOfYear` | 2.73 (17.0%) | 0.08 | -| Hồi Quy Tuyến Tính với `Variety` | 5.24 (19.7%) | 0.77 | -| Hồi Quy Tuyến Tính với tất cả đặc trưng | 2.84 (10.5%) | 0.94 | -| Hồi Quy Đa Thức với tất cả đặc trưng | 2.23 (8.25%) | 0.97 | +|-------|-----|---------------| +| `DayOfYear` Tuyến tính | 2.77 (17.2%) | 0.07 | +| `DayOfYear` Đa thức | 2.73 (17.0%) | 0.08 | +| `Variety` Tuyến tính | 5.24 (19.7%) | 0.77 | +| Tất cả đặc trưng Tuyến tính | 2.84 (10.5%) | 0.94 | +| Tất cả đặc trưng Đa thức | 2.23 (8.25%) | 0.97 | -🏆 Làm tốt lắm! Bạn đã tạo bốn mô hình hồi quy trong một bài học, và cải thiện chất lượng mô hình lên 97%. Trong phần cuối cùng về hồi quy, bạn sẽ học về Hồi Quy Logistic để phân loại. +🏆 Làm tốt lắm! Bạn đã tạo bốn mô hình hồi quy trong một bài học, và cải thiện chất lượng mô hình lên 97%. Trong phần cuối về Hồi quy, bạn sẽ học về Hồi quy Logistic để phân loại. --- -## 🚀Thách Thức +## 🚀Thử thách -Thử nghiệm nhiều biến khác nhau trong sổ tay này để xem mức độ tương quan ảnh hưởng thế nào đến độ chính xác mô hình. +Thử nghiệm với vài biến khác nhau trong notebook này để xem yếu tố tương quan tương ứng với độ chính xác mô hình như thế nào. ## [Bài kiểm tra sau bài giảng](https://ff-quizzes.netlify.app/en/ml/) ## Ôn tập & Tự học -Trong bài học này, chúng ta học về Hồi Quy Tuyến Tính. Có những loại hồi quy quan trọng khác. Hãy đọc về các kỹ thuật Stepwise, Ridge, Lasso và Elasticnet. Một khóa học tốt để học thêm là [Khóa học Học thống kê của Stanford](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) +Trong bài học này chúng ta tìm hiểu về Hồi quy tuyến tính. Còn nhiều loại hồi quy quan trọng khác. Hãy đọc về các kỹ thuật Stepwise, Ridge, Lasso và Elasticnet. Một khóa học hay để học thêm là [khóa học Học thống kê Stanford](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) ## Bài tập -[Xây dựng một Mô hình](assignment.md) +[Xây dựng mô hình](assignment.md) --- -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, vui lòng lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc sai sót. Văn bản gốc bằng ngôn ngữ nguyên bản nên được coi là nguồn thông tin chính thức. Đối với các thông tin quan trọng, chúng tôi khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm đối với bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. +**Tuyên bố miễn trừ trách nhiệm**: +Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tin chính thức. Đối với thông tin quan trọng, nên sử dụng dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm đối với bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file diff --git a/translations/vi/4-Classification/2-Classifiers-1/README.md b/translations/vi/4-Classification/2-Classifiers-1/README.md index 730cfb291..5946c2938 100644 --- a/translations/vi/4-Classification/2-Classifiers-1/README.md +++ b/translations/vi/4-Classification/2-Classifiers-1/README.md @@ -1,17 +1,17 @@ -# Bộ phân loại ẩm thực 1 +# Phân loại ẩm thực 1 -Trong bài học này, bạn sẽ sử dụng tập dữ liệu mà bạn đã lưu từ bài học trước, chứa đầy dữ liệu cân bằng và sạch về các nền ẩm thực. +Trong bài học này, bạn sẽ sử dụng bộ dữ liệu bạn đã lưu từ bài học trước, đầy đủ dữ liệu cân bằng, sạch về các loại ẩm thực. -Bạn sẽ sử dụng tập dữ liệu này với nhiều bộ phân loại khác nhau để _dự đoán một nền ẩm thực quốc gia dựa trên nhóm nguyên liệu_. Trong quá trình thực hiện, bạn sẽ tìm hiểu thêm về một số cách mà các thuật toán có thể được sử dụng cho các nhiệm vụ phân loại. +Bạn sẽ sử dụng bộ dữ liệu này với nhiều bộ phân loại khác nhau để _dự đoán một nền ẩm thực quốc gia dựa trên nhóm nguyên liệu_. Trong khi làm việc này, bạn sẽ học thêm về một số cách mà các thuật toán có thể được tận dụng cho các tác vụ phân loại. -## [Câu hỏi trước bài giảng](https://ff-quizzes.netlify.app/en/ml/) +## [Bài kiểm tra trước bài giảng](https://ff-quizzes.netlify.app/en/ml/) # Chuẩn bị -Giả sử bạn đã hoàn thành [Bài học 1](../1-Introduction/README.md), hãy đảm bảo rằng tệp _cleaned_cuisines.csv_ tồn tại trong thư mục gốc `/data` cho bốn bài học này. +Giả sử bạn đã hoàn thành [Bài học 1](../1-Introduction/README.md), hãy đảm bảo rằng một tập tin _cleaned_cuisines.csv_ tồn tại trong thư mục gốc `/data` cho bốn bài học này. ## Bài tập - dự đoán một nền ẩm thực quốc gia -1. Làm việc trong thư mục _notebook.ipynb_ của bài học này, nhập tệp đó cùng với thư viện Pandas: +1. Làm việc trong thư mục _notebook.ipynb_ của bài học này, nhập tập tin đó cùng với thư viện Pandas: ```python import pandas as pd @@ -19,7 +19,7 @@ Giả sử bạn đã hoàn thành [Bài học 1](../1-Introduction/README.md), cuisines_df.head() ``` - Dữ liệu trông như thế này: + Dữ liệu trông như sau: | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | @@ -30,7 +30,7 @@ Giả sử bạn đã hoàn thành [Bài học 1](../1-Introduction/README.md), | 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | -1. Bây giờ, nhập thêm một số thư viện: +1. Bây giờ, nhập thêm một số thư viện khác: ```python from sklearn.linear_model import LogisticRegression @@ -40,7 +40,7 @@ Giả sử bạn đã hoàn thành [Bài học 1](../1-Introduction/README.md), import numpy as np ``` -1. Chia tọa độ X và y thành hai dataframe để huấn luyện. `cuisine` có thể là dataframe nhãn: +1. Chia tọa độ X và y thành hai dataframe cho việc huấn luyện. `cuisine` có thể là dataframe nhãn: ```python cuisines_label_df = cuisines_df['cuisine'] @@ -58,14 +58,14 @@ Giả sử bạn đã hoàn thành [Bài học 1](../1-Introduction/README.md), Name: cuisine, dtype: object ``` -1. Loại bỏ cột `Unnamed: 0` và cột `cuisine` bằng cách gọi `drop()`. Lưu phần còn lại của dữ liệu làm các đặc trưng để huấn luyện: +1. Loại bỏ cột `Unnamed: 0` và cột `cuisine`, gọi `drop()`. Lưu phần còn lại của dữ liệu làm các đặc trưng để huấn luyện: ```python cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) cuisines_feature_df.head() ``` - Các đặc trưng của bạn trông như thế này: + Các đặc trưng của bạn sẽ trông như sau: | | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | @@ -75,75 +75,75 @@ Giả sử bạn đã hoàn thành [Bài học 1](../1-Introduction/README.md), | 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 | -Bây giờ bạn đã sẵn sàng để huấn luyện mô hình của mình! +Bây giờ bạn đã sẵn sàng để huấn luyện mô hình! -## Chọn bộ phân loại +## Chọn bộ phân loại của bạn -Bây giờ dữ liệu của bạn đã sạch và sẵn sàng để huấn luyện, bạn cần quyết định thuật toán nào sẽ sử dụng cho công việc. +Bây giờ dữ liệu của bạn đã sạch và sẵn sàng cho việc huấn luyện, bạn phải quyết định thuật toán nào để sử dụng cho công việc này. -Scikit-learn nhóm phân loại dưới Học có giám sát, và trong danh mục này, bạn sẽ tìm thấy nhiều cách để phân loại. [Sự đa dạng](https://scikit-learn.org/stable/supervised_learning.html) có thể khá choáng ngợp lúc ban đầu. Các phương pháp sau đây đều bao gồm các kỹ thuật phân loại: +Scikit-learn nhóm các nhiệm vụ phân loại dưới Học có giám sát, và trong danh mục này bạn sẽ tìm thấy nhiều cách để phân loại. [Sự đa dạng](https://scikit-learn.org/stable/supervised_learning.html) có thể gây khó hiểu khi nhìn lần đầu. Các phương pháp sau đây đều bao gồm các kỹ thuật phân loại: - Mô hình tuyến tính - Máy vector hỗ trợ -- Gradient ngẫu nhiên -- Láng giềng gần nhất +- Gradient Descent Stochastic +- Hàng xóm gần nhất - Quá trình Gaussian - Cây quyết định -- Phương pháp tổng hợp (bộ phân loại bỏ phiếu) +- Phương pháp tập hợp (voting Classifier) - Thuật toán đa lớp và đa đầu ra (phân loại đa lớp và đa nhãn, phân loại đa lớp-đa đầu ra) -> Bạn cũng có thể sử dụng [mạng nơ-ron để phân loại dữ liệu](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), nhưng điều này nằm ngoài phạm vi của bài học này. +> Bạn cũng có thể sử dụng [mạng nơ-ron để phân loại dữ liệu](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), nhưng điều đó nằm ngoài phạm vi của bài học này. ### Nên chọn bộ phân loại nào? -Vậy, bạn nên chọn bộ phân loại nào? Thường thì việc thử qua nhiều bộ phân loại và tìm kiếm kết quả tốt là một cách để kiểm tra. Scikit-learn cung cấp một [so sánh song song](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) trên một tập dữ liệu được tạo, so sánh KNeighbors, SVC hai cách, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB và QuadraticDiscrinationAnalysis, hiển thị kết quả dưới dạng hình ảnh: +Vậy nên chọn bộ phân loại nào? Thường thì, chạy thử một số và tìm kết quả tốt là một cách để thử nghiệm. Scikit-learn cung cấp một [bảng so sánh song song](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) trên một bộ dữ liệu tạo sẵn, so sánh KNeighbors, SVC hai cách, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB và QuadraticDiscrinationAnalysis, hiển thị kết quả bằng biểu đồ: -![so sánh các bộ phân loại](../../../../4-Classification/2-Classifiers-1/images/comparison.png) -> Các biểu đồ được tạo trên tài liệu của Scikit-learn +![so sánh các bộ phân loại](../../../../translated_images/vi/comparison.edfab56193a85e7f.webp) +> Biểu đồ được tạo ra trong tài liệu của Scikit-learn -> AutoML giải quyết vấn đề này một cách gọn gàng bằng cách chạy các so sánh này trên đám mây, cho phép bạn chọn thuật toán tốt nhất cho dữ liệu của mình. Thử tại [đây](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) +> AutoML giải quyết vấn đề này rất gọn gàng bằng cách chạy những so sánh này trong đám mây, giúp bạn chọn thuật toán tốt nhất cho dữ liệu của mình. Hãy thử [tại đây](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) ### Một cách tiếp cận tốt hơn -Một cách tốt hơn thay vì đoán mò là làm theo các ý tưởng trong [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) có thể tải xuống. Tại đây, chúng ta phát hiện rằng, đối với vấn đề phân loại đa lớp của chúng ta, chúng ta có một số lựa chọn: +Một cách tốt hơn là không đoán bừa, bạn có thể theo các ý tưởng trong [bảng cheatsheet ML có thể tải xuống](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Ở đây, chúng ta khám phá ra là, với bài toán đa lớp của mình, chúng ta có một số lựa chọn: -![cheatsheet cho các vấn đề đa lớp](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png) -> Một phần của Bảng Cheat Thuật toán của Microsoft, chi tiết các tùy chọn phân loại đa lớp +![cheatsheet cho các bài toán đa lớp](../../../../translated_images/vi/cheatsheet.07a475ea444d2223.webp) +> Một phần của Bảng cheatsheet Thuật toán của Microsoft, chi tiết các lựa chọn phân loại đa lớp -✅ Tải xuống bảng cheat này, in ra và treo lên tường của bạn! +✅ Tải bảng cheatsheet này xuống, in ra và treo trên tường của bạn! -### Lý luận +### Lý do lựa chọn -Hãy xem liệu chúng ta có thể lý luận qua các cách tiếp cận khác nhau dựa trên các ràng buộc mà chúng ta có: +Hãy xem chúng ta có thể lý luận qua các phương án khác nhau dựa trên các ràng buộc hiện có: -- **Mạng nơ-ron quá nặng**. Với tập dữ liệu sạch nhưng tối thiểu của chúng ta, và thực tế là chúng ta đang chạy huấn luyện cục bộ qua notebook, mạng nơ-ron quá nặng cho nhiệm vụ này. -- **Không sử dụng bộ phân loại hai lớp**. Chúng ta không sử dụng bộ phân loại hai lớp, vì vậy loại bỏ phương pháp one-vs-all. -- **Cây quyết định hoặc hồi quy logistic có thể hoạt động**. Một cây quyết định có thể hoạt động, hoặc hồi quy logistic cho dữ liệu đa lớp. -- **Cây quyết định tăng cường đa lớp giải quyết vấn đề khác**. Cây quyết định tăng cường đa lớp phù hợp nhất cho các nhiệm vụ phi tham số, ví dụ như các nhiệm vụ được thiết kế để xây dựng xếp hạng, vì vậy nó không hữu ích cho chúng ta. +- **Mạng nơ-ron quá nặng**. Với bộ dữ liệu sạch nhưng đơn giản của chúng ta, và thực tế rằng chúng ta đang chạy huấn luyện cục bộ qua notebook, mạng nơ-ron quá nặng cho nhiệm vụ này. +- **Không dùng bộ phân loại hai lớp**. Chúng ta không sử dụng bộ phân loại hai lớp, nên loại bỏ phương pháp một-chọi-tất cả. +- **Cây quyết định hoặc hồi quy logistic có thể hiệu quả**. Cây quyết định có thể làm việc, hoặc hồi quy logistic cho dữ liệu đa lớp. +- **Cây quyết định đa lớp tăng cường giải quyết vấn đề khác**. Cây quyết định tăng cường đa lớp thích hợp nhất cho các tác vụ phi tham số, ví dụ các tác vụ xây dựng thứ hạng, nên không phù hợp cho chúng ta. -### Sử dụng Scikit-learn +### Sử dụng Scikit-learn -Chúng ta sẽ sử dụng Scikit-learn để phân tích dữ liệu của mình. Tuy nhiên, có nhiều cách để sử dụng hồi quy logistic trong Scikit-learn. Hãy xem các [tham số cần truyền](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). +Chúng ta sẽ sử dụng Scikit-learn để phân tích dữ liệu của mình. Tuy nhiên, có nhiều cách sử dụng hồi quy logistic trong Scikit-learn. Hãy xem xét [tham số để truyền vào](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). -Về cơ bản, có hai tham số quan trọng - `multi_class` và `solver` - mà chúng ta cần chỉ định khi yêu cầu Scikit-learn thực hiện hồi quy logistic. Giá trị `multi_class` áp dụng một hành vi nhất định. Giá trị của solver là thuật toán nào sẽ được sử dụng. Không phải tất cả các solver đều có thể kết hợp với tất cả các giá trị `multi_class`. +Về cơ bản có hai tham số quan trọng - `multi_class` và `solver` - mà chúng ta cần xác định khi yêu cầu Scikit-learn thực hiện hồi quy logistic. Giá trị của `multi_class` áp dụng một hành vi nhất định. Giá trị của `solver` là thuật toán sẽ sử dụng. Không phải mọi solver đều phù hợp với tất cả giá trị `multi_class`. -Theo tài liệu, trong trường hợp đa lớp, thuật toán huấn luyện: +Theo tài liệu, ở trường hợp đa lớp, thuật toán huấn luyện: -- **Sử dụng phương pháp one-vs-rest (OvR)**, nếu tùy chọn `multi_class` được đặt là `ovr` -- **Sử dụng tổn thất cross-entropy**, nếu tùy chọn `multi_class` được đặt là `multinomial`. (Hiện tại tùy chọn `multinomial` chỉ được hỗ trợ bởi các solver ‘lbfgs’, ‘sag’, ‘saga’ và ‘newton-cg’.)" +- **Sử dụng sơ đồ một-chọi-rest (OvR)**, nếu tùy chọn `multi_class` được đặt là `ovr` +- **Sử dụng mất mát entropy chéo (cross-entropy loss)**, nếu tùy chọn `multi_class` được đặt là `multinomial`. (Hiện tại tùy chọn `multinomial` chỉ được hỗ trợ bởi các solver ‘lbfgs’, ‘sag’, ‘saga’ và ‘newton-cg’.)" -> 🎓 'Phương pháp' ở đây có thể là 'ovr' (one-vs-rest) hoặc 'multinomial'. Vì hồi quy logistic thực sự được thiết kế để hỗ trợ phân loại nhị phân, các phương pháp này cho phép nó xử lý tốt hơn các nhiệm vụ phân loại đa lớp. [nguồn](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) +> 🎓 ‘scheme’ ở đây có thể là ‘ovr’ (một-chọi-rest) hoặc ‘multinomial’. Vì hồi quy logistic được thiết kế chủ yếu cho phân loại nhị phân, những sơ đồ này giúp nó xử lý tốt hơn các bài toán phân loại đa lớp. [nguồn](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) -> 🎓 'Solver' được định nghĩa là "thuật toán được sử dụng trong bài toán tối ưu hóa". [nguồn](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). +> 🎓 ‘solver’ được định nghĩa là "thuật toán để sử dụng trong bài toán tối ưu hóa". [nguồn](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). -Scikit-learn cung cấp bảng này để giải thích cách các solver xử lý các thách thức khác nhau do các cấu trúc dữ liệu khác nhau gây ra: +Scikit-learn cung cấp bảng này để giải thích cách các solver xử lý những thách thức khác nhau được gây ra bởi các cấu trúc dữ liệu khác nhau: -![solvers](../../../../4-Classification/2-Classifiers-1/images/solvers.png) +![solvers](../../../../translated_images/vi/solvers.5fc648618529e627.webp) -## Bài tập - chia dữ liệu +## Bài tập - tách dữ liệu -Chúng ta có thể tập trung vào hồi quy logistic cho lần thử huấn luyện đầu tiên của mình vì bạn đã học về nó trong bài học trước. -Chia dữ liệu của bạn thành nhóm huấn luyện và kiểm tra bằng cách gọi `train_test_split()`: +Chúng ta có thể tập trung vào hồi quy logistic cho lần thử huấn luyện đầu tiên vì bạn mới học về phương pháp này trong bài học trước. +Chia dữ liệu của bạn thành nhóm huấn luyện và kiểm thử bằng cách gọi `train_test_split()`: ```python X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) @@ -151,9 +151,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine ## Bài tập - áp dụng hồi quy logistic -Vì bạn đang sử dụng trường hợp đa lớp, bạn cần chọn _phương pháp_ nào để sử dụng và _solver_ nào để đặt. Sử dụng LogisticRegression với cài đặt đa lớp và solver **liblinear** để huấn luyện. +Vì bạn đang sử dụng trường hợp đa lớp, bạn cần chọn _scheme_ nào để dùng và _solver_ nào để đặt. Sử dụng LogisticRegression với thiết lập đa lớp và solver **liblinear** để huấn luyện. -1. Tạo một hồi quy logistic với multi_class được đặt là `ovr` và solver được đặt là `liblinear`: +1. Tạo một hồi quy logistic với multi_class đặt là `ovr` và solver đặt là `liblinear`: ```python lr = LogisticRegression(multi_class='ovr',solver='liblinear') @@ -163,11 +163,13 @@ Vì bạn đang sử dụng trường hợp đa lớp, bạn cần chọn _phư print ("Accuracy is {}".format(accuracy)) ``` - ✅ Thử một solver khác như `lbfgs`, thường được đặt làm mặc định. -> Lưu ý, sử dụng hàm Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) để làm phẳng dữ liệu của bạn khi cần thiết. -Độ chính xác đạt trên **80%**! + ✅ Thử một solver khác như `lbfgs`, thường được đặt làm mặc định -1. Bạn có thể xem mô hình này hoạt động bằng cách thử nghiệm một hàng dữ liệu (#50): + > Lưu ý, sử dụng hàm [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) của Pandas để dẹt dữ liệu khi cần. + + Độ chính xác tốt trên **80%**! + +1. Bạn có thể xem mô hình này hoạt động bằng cách thử với một hàng dữ liệu (#50): ```python print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}') @@ -181,8 +183,7 @@ Vì bạn đang sử dụng trường hợp đa lớp, bạn cần chọn _phư cuisine: indian ``` - ✅ Thử một số hàng khác và kiểm tra kết quả - + ✅ Thử với một số hàng khác và kiểm tra kết quả 1. Đào sâu hơn, bạn có thể kiểm tra độ chính xác của dự đoán này: ```python @@ -195,7 +196,7 @@ Vì bạn đang sử dụng trường hợp đa lớp, bạn cần chọn _phư topPrediction.head() ``` - Kết quả được in ra - ẩm thực Ấn Độ là dự đoán tốt nhất, với xác suất cao: + Kết quả được in ra - Ẩm thực Ấn Độ là dự đoán tốt nhất, với xác suất cao: | | 0 | | -------: | -------: | @@ -205,9 +206,9 @@ Vì bạn đang sử dụng trường hợp đa lớp, bạn cần chọn _phư | korean | 0.017277 | | thai | 0.007634 | - ✅ Bạn có thể giải thích tại sao mô hình khá chắc chắn đây là ẩm thực Ấn Độ không? + ✅ Bạn có thể giải thích tại sao mô hình lại khá chắc chắn đây là ẩm thực Ấn Độ không? -1. Tìm hiểu chi tiết hơn bằng cách in báo cáo phân loại, như bạn đã làm trong bài học về hồi quy: +1. Lấy thêm chi tiết bằng cách in báo cáo phân loại, như bạn đã làm trong các bài học hồi quy: ```python y_pred = model.predict(X_test) @@ -221,24 +222,26 @@ Vì bạn đang sử dụng trường hợp đa lớp, bạn cần chọn _phư | japanese | 0.70 | 0.75 | 0.72 | 220 | | korean | 0.86 | 0.76 | 0.81 | 242 | | thai | 0.79 | 0.85 | 0.82 | 254 | - | accuracy | 0.80 | 1199 | | | + | accuracy | | | 0.80 | 1199 | | macro avg | 0.80 | 0.80 | 0.80 | 1199 | | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | ## 🚀Thử thách -Trong bài học này, bạn đã sử dụng dữ liệu đã được làm sạch để xây dựng một mô hình học máy có thể dự đoán ẩm thực quốc gia dựa trên một loạt các nguyên liệu. Dành thời gian để đọc qua các tùy chọn mà Scikit-learn cung cấp để phân loại dữ liệu. Đào sâu hơn vào khái niệm 'solver' để hiểu những gì diễn ra phía sau. +Trong bài học này, bạn đã sử dụng dữ liệu đã làm sạch để xây dựng một mô hình học máy có thể dự đoán một nền ẩm thực quốc gia dựa trên một loạt các nguyên liệu. Hãy dành chút thời gian để đọc qua nhiều tùy chọn mà Scikit-learn cung cấp để phân loại dữ liệu. Đào sâu hơn về khái niệm 'solver' để hiểu những gì diễn ra phía sau hậu trường. -## [Câu hỏi sau bài giảng](https://ff-quizzes.netlify.app/en/ml/) +## [Bài kiểm tra sau bài giảng](https://ff-quizzes.netlify.app/en/ml/) ## Ôn tập & Tự học -Tìm hiểu thêm về toán học đằng sau hồi quy logistic trong [bài học này](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) -## Bài tập +Đào sâu hơn về toán học phía sau hồi quy logistic trong [bài học này](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) +## Bài tập -[Khám phá các solver](assignment.md) +[Nghiên cứu các solvers](assignment.md) --- + **Tuyên bố miễn trừ trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn thông tin chính thức. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file +Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc nên được xem là nguồn chính thức. Đối với thông tin quan trọng, nên sử dụng dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. + \ No newline at end of file diff --git a/translations/vi/README.md b/translations/vi/README.md index 5df31de71..1a77fe510 100644 --- a/translations/vi/README.md +++ b/translations/vi/README.md @@ -2,10 +2,10 @@ [![Người đóng góp GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) [![Vấn đề GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![Yêu cầu kéo GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![Hoan nghênh PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![Chào mừng PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![Người theo dõi GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Forks GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![Nhánh GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) [![Sao GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 Hỗ trợ đa ngôn ngữ @@ -13,11 +13,11 @@ #### Hỗ trợ thông qua GitHub Action (Tự động & Luôn cập nhật) -[Tiếng Ả Rập](../ar/README.md) | [Tiếng Bengal](../bn/README.md) | [Tiếng Bungari](../bg/README.md) | [Tiếng Miến Điện (Myanmar)](../my/README.md) | [Tiếng Trung (Giản thể)](../zh-CN/README.md) | [Tiếng Trung (Phồn thể, Hồng Kông)](../zh-HK/README.md) | [Tiếng Trung (Phồn thể, Macau)](../zh-MO/README.md) | [Tiếng Trung (Phồn thể, Đài Loan)](../zh-TW/README.md) | [Tiếng Croatia](../hr/README.md) | [Tiếng Séc](../cs/README.md) | [Tiếng Đan Mạch](../da/README.md) | [Tiếng Hà Lan](../nl/README.md) | [Tiếng Estonia](../et/README.md) | [Tiếng Phần Lan](../fi/README.md) | [Tiếng Pháp](../fr/README.md) | [Tiếng Đức](../de/README.md) | [Tiếng Hy Lạp](../el/README.md) | [Tiếng Do Thái](../he/README.md) | [Tiếng Hindi](../hi/README.md) | [Tiếng Hungary](../hu/README.md) | [Tiếng Indonesia](../id/README.md) | [Tiếng Ý](../it/README.md) | [Tiếng Nhật](../ja/README.md) | [Tiếng Kannada](../kn/README.md) | [Tiếng Khmer](../km/README.md) | [Tiếng Hàn](../ko/README.md) | [Tiếng Lithuania](../lt/README.md) | [Tiếng Malay](../ms/README.md) | [Tiếng Malayalam](../ml/README.md) | [Tiếng Marathi](../mr/README.md) | [Tiếng Nepal](../ne/README.md) | [Tiếng Pidgin Nigeria](../pcm/README.md) | [Tiếng Na Uy](../no/README.md) | [Tiếng Ba Tư (Farsi)](../fa/README.md) | [Tiếng Ba Lan](../pl/README.md) | [Tiếng Bồ Đào Nha (Brazil)](../pt-BR/README.md) | [Tiếng Bồ Đào Nha (Bồ Đào Nha)](../pt-PT/README.md) | [Tiếng Punjabi (Gurmukhi)](../pa/README.md) | [Tiếng Romania](../ro/README.md) | [Tiếng Nga](../ru/README.md) | [Tiếng Serbia (Chữ Cyrillic)](../sr/README.md) | [Tiếng Slovakia](../sk/README.md) | [Tiếng Slovenia](../sl/README.md) | [Tiếng Tây Ban Nha](../es/README.md) | [Tiếng Swahili](../sw/README.md) | [Tiếng Thụy Điển](../sv/README.md) | [Tiếng Tagalog (Filipino)](../tl/README.md) | [Tiếng Tamil](../ta/README.md) | [Tiếng Telugu](../te/README.md) | [Tiếng Thái](../th/README.md) | [Tiếng Thổ Nhĩ Kỳ](../tr/README.md) | [Tiếng Ukraina](../uk/README.md) | [Tiếng Urdu](../ur/README.md) | [Tiếng Việt](./README.md) +[Tiếng Ả Rập](../ar/README.md) | [Tiếng Bengali](../bn/README.md) | [Tiếng Bungari](../bg/README.md) | [Tiếng Miến Điện (Myanmar)](../my/README.md) | [Tiếng Trung (Giản thể)](../zh-CN/README.md) | [Tiếng Trung (Phồn thể, Hồng Kông)](../zh-HK/README.md) | [Tiếng Trung (Phồn thể, Macau)](../zh-MO/README.md) | [Tiếng Trung (Phồn thể, Đài Loan)](../zh-TW/README.md) | [Tiếng Croatia](../hr/README.md) | [Tiếng Séc](../cs/README.md) | [Tiếng Đan Mạch](../da/README.md) | [Tiếng Hà Lan](../nl/README.md) | [Tiếng Estonia](../et/README.md) | [Tiếng Phần Lan](../fi/README.md) | [Tiếng Pháp](../fr/README.md) | [Tiếng Đức](../de/README.md) | [Tiếng Hy Lạp](../el/README.md) | [Tiếng Do Thái](../he/README.md) | [Tiếng Hindi](../hi/README.md) | [Tiếng Hungary](../hu/README.md) | [Tiếng Indonesia](../id/README.md) | [Tiếng Ý](../it/README.md) | [Tiếng Nhật](../ja/README.md) | [Tiếng Kannada](../kn/README.md) | [Tiếng Khmer](../km/README.md) | [Tiếng Hàn](../ko/README.md) | [Tiếng Litva](../lt/README.md) | [Tiếng Malay](../ms/README.md) | [Tiếng Malayalam](../ml/README.md) | [Tiếng Marathi](../mr/README.md) | [Tiếng Nepal](../ne/README.md) | [Tiếng Pidgin Nigeria](../pcm/README.md) | [Tiếng Na Uy](../no/README.md) | [Tiếng Ba Tư (Farsi)](../fa/README.md) | [Tiếng Ba Lan](../pl/README.md) | [Tiếng Bồ Đào Nha (Brazil)](../pt-BR/README.md) | [Tiếng Bồ Đào Nha (Bồ Đào Nha)](../pt-PT/README.md) | [Tiếng Punjabi (Gurmukhi)](../pa/README.md) | [Tiếng Rumani](../ro/README.md) | [Tiếng Nga](../ru/README.md) | [Tiếng Serbia (Chữ Kirin)](../sr/README.md) | [Tiếng Slovakia](../sk/README.md) | [Tiếng Slovenia](../sl/README.md) | [Tiếng Tây Ban Nha](../es/README.md) | [Tiếng Swahili](../sw/README.md) | [Tiếng Thụy Điển](../sv/README.md) | [Tiếng Tagalog (Filipino)](../tl/README.md) | [Tiếng Tamil](../ta/README.md) | [Tiếng Telugu](../te/README.md) | [Tiếng Thái](../th/README.md) | [Tiếng Thổ Nhĩ Kỳ](../tr/README.md) | [Tiếng Ukraina](../uk/README.md) | [Tiếng Urdu](../ur/README.md) | [Tiếng Việt](./README.md) -> **Ưu tiên sao chép về máy?** +> **Muốn sao chép về máy cục bộ?** > -> Kho lưu trữ này bao gồm hơn 50 bản dịch ngôn ngữ, làm tăng đáng kể kích thước tải về. Để sao chép mà không có bản dịch, hãy sử dụng sparse checkout: +> Kho lưu trữ này bao gồm hơn 50 bản dịch ngôn ngữ làm tăng đáng kể dung lượng tải xuống. Để sao chép mà không có bản dịch, hãy sử dụng sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -36,70 +36,70 @@ > Điều này cung cấp cho bạn mọi thứ cần thiết để hoàn thành khóa học với tốc độ tải nhanh hơn nhiều. -#### Tham gia cộng đồng của chúng tôi +#### Tham gia Cộng đồng của Chúng tôi -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +[![Discord Microsoft Foundry](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Chúng tôi có một chuỗi học tập Discord với chủ đề AI đang diễn ra, tìm hiểu thêm và tham gia cùng chúng tôi tại [Chuỗi Học với AI](https://aka.ms/learnwithai/discord) từ ngày 18 - 30 tháng 9, 2025. Bạn sẽ nhận được mẹo và thủ thuật sử dụng GitHub Copilot cho Khoa học Dữ liệu. +Chúng tôi có chuỗi học cùng AI trên Discord, tìm hiểu thêm và tham gia cùng chúng tôi tại [Chuỗi học cùng AI](https://aka.ms/learnwithai/discord) từ ngày 18 - 30 tháng 9 năm 2025. Bạn sẽ nhận được mẹo và thủ thuật sử dụng GitHub Copilot cho Khoa học Dữ liệu. -![Chuỗi học với AI](../../translated_images/vi/3.9b58fd8d6c373c20.webp) +![Chuỗi học cùng AI](../../translated_images/vi/3.9b58fd8d6c373c20.webp) -# Máy học cho người mới bắt đầu - Một chương trình học +# Máy Học cho Người Mới Bắt Đầu - Một Khung Chương Trình -> 🌍 Du lịch vòng quanh thế giới khi chúng ta khám phá Máy học thông qua các nền văn hóa thế giới 🌍 +> 🌍 Du lịch vòng quanh thế giới khi chúng ta khám phá Máy Học thông qua các văn hóa thế giới 🌍 -Các Đại sứ Điện toán Đám mây tại Microsoft vui mừng cung cấp một chương trình học 12 tuần, 26 bài học hoàn toàn về **Máy học**. Trong chương trình này, bạn sẽ học về những gì đôi khi gọi là **máy học cổ điển**, chủ yếu sử dụng thư viện Scikit-learn và tránh deep learning, được đề cập trong chương trình [AI cho người mới bắt đầu](https://aka.ms/ai4beginners) của chúng tôi. Kết hợp các bài học này với chương trình ['Khoa học dữ liệu cho người mới bắt đầu'](https://aka.ms/ds4beginners) cũng của chúng tôi! +Các Nhà Thúc Đẩy Đám Mây tại Microsoft rất vui được cung cấp một chương trình học 12 tuần, 26 bài học hoàn toàn về **Máy Học**. Trong chương trình này, bạn sẽ tìm hiểu về cái mà đôi khi được gọi là **máy học kinh điển**, chủ yếu sử dụng thư viện Scikit-learn và tránh xa học sâu (deep learning), phần này được đề cập trong [chương trình AI cho Người Mới Bắt Đầu](https://aka.ms/ai4beginners). Kèm theo đó, hãy học cùng với chương trình ['Khoa học Dữ liệu cho Người Mới Bắt Đầu'](https://aka.ms/ds4beginners) của chúng tôi! -Hãy du hành cùng chúng tôi vòng quanh thế giới khi áp dụng các kỹ thuật máy học cổ điển này vào dữ liệu từ nhiều nơi trên thế giới. Mỗi bài học bao gồm các bài kiểm tra trước và sau bài học, hướng dẫn viết để hoàn thành bài học, lời giải, bài tập, và nhiều nữa. Phương pháp giảng dạy dựa trên dự án cho phép bạn học trong lúc xây dựng, một cách đã được chứng minh để kỹ năng mới dễ ghi nhớ hơn. +Hãy cùng du lịch vòng quanh thế giới khi chúng ta áp dụng các kỹ thuật kinh điển này vào dữ liệu từ nhiều khu vực trên thế giới. Mỗi bài học bao gồm bài kiểm tra trước và sau bài học, hướng dẫn bằng văn bản để hoàn thành bài học, một giải pháp, một bài tập, và nhiều hơn thế nữa. Phương pháp dạy dựa trên dự án của chúng tôi cho phép bạn học trong khi xây dựng, một cách đã được chứng minh giúp kỹ năng mới "bám dính" lâu hơn. -**✍️ Xin gửi lời cảm ơn chân thành đến các tác giả** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu và Amy Boyd +**✍️ Xin chân thành cảm ơn các tác giả** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu và Amy Boyd **🎨 Cảm ơn các họa sĩ minh họa** Tomomi Imura, Dasani Madipalli, và Jen Looper -**🙏 Cảm ơn đặc biệt 🙏 các Đại sứ Sinh viên Microsoft là tác giả, người đánh giá và người đóng góp nội dung**, đặc biệt là Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, và Snigdha Agarwal +**🙏 Cảm ơn đặc biệt 🙏 các tác giả, người đánh giá và đóng góp nội dung Đại sứ Sinh viên Microsoft**, đặc biệt là Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, và Snigdha Agarwal -**🤩 Cảm ơn thêm các Đại sứ Sinh viên Microsoft Eric Wanjau, Jasleen Sondhi, và Vidushi Gupta cho các bài học R của chúng tôi!** +**🤩 Biết ơn thêm đến Đại sứ Sinh viên Microsoft Eric Wanjau, Jasleen Sondhi và Vidushi Gupta cho các bài học R của chúng tôi!** # Bắt đầu Làm theo các bước sau: -1. **Fork kho lưu trữ**: Nhấp vào nút "Fork" ở góc trên bên phải trang này. -2. **Clone kho lưu trữ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Gfork kho lưu trữ**: Nhấn nút "Fork" ở góc trên bên phải trang này. +2. **Clone kho lưu trữ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [tìm tất cả tài nguyên bổ sung cho khóa học này trong bộ sưu tập Microsoft Learn của chúng tôi](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Cần trợ giúp?** Kiểm tra [Hướng dẫn xử lý sự cố](TROUBLESHOOTING.md) để tìm giải pháp cho các vấn đề phổ biến về cài đặt, thiết lập và chạy bài học. +> 🔧 **Cần giúp đỡ?** Hãy xem [Hướng dẫn Khắc phục sự cố](TROUBLESHOOTING.md) để tìm giải pháp cho các vấn đề phổ biến về cài đặt, thiết lập và chạy bài học. -**[Học sinh](https://aka.ms/student-page)**, để sử dụng chương trình này, hãy fork toàn bộ kho lưu trữ vào tài khoản GitHub của bạn và hoàn thành các bài tập một mình hoặc theo nhóm: +**[Học sinh](https://aka.ms/student-page)**, để sử dụng chương trình này, hãy fork toàn bộ repo về tài khoản GitHub cá nhân và hoàn thành các bài tập một mình hoặc theo nhóm: -- Bắt đầu với bài kiểm tra trước bài giảng. -- Đọc bài giảng và hoàn thành các hoạt động, tạm dừng và suy ngẫm ở mỗi phần kiểm tra kiến thức. -- Cố gắng tạo các dự án bằng cách hiểu bài học thay vì chạy mã giải pháp; mã giải pháp có sẵn trong các thư mục `/solution` ở mỗi bài học theo dự án. -- Làm bài kiểm tra sau bài giảng. +- Bắt đầu với bài kiểm tra khởi động trước bài giảng. +- Đọc bài giảng và hoàn thành các hoạt động, dừng lại và suy ngẫm tại mỗi phần kiểm tra kiến thức. +- Cố gắng tạo các dự án bằng cách hiểu bài học thay vì chỉ chạy code giải pháp; tuy nhiên code đó có sẵn trong các thư mục `/solution` trong mỗi bài học dự án. +- Tham gia bài kiểm tra sau bài giảng. - Hoàn thành thử thách. - Hoàn thành bài tập. -- Sau khi hoàn thành một nhóm bài học, truy cập [Bảng Thảo luận](https://github.com/microsoft/ML-For-Beginners/discussions) và "học cùng mọi người" bằng cách điền vào bảng đánh giá PAT phù hợp. 'PAT' là Công cụ Đánh giá Tiến độ mà bạn điền để nâng cao việc học của mình. Bạn cũng có thể phản hồi các PAT khác để chúng ta cùng học hỏi. +- Sau khi hoàn thành một nhóm bài học, hãy truy cập [Bảng Thảo luận](https://github.com/microsoft/ML-For-Beginners/discussions) và "học cùng chia sẻ" bằng cách điền rubric PAT thích hợp. 'PAT' là Công Cụ Đánh Giá Tiến Độ bạn điền để nâng cao việc học của bạn. Bạn cũng có thể phản hồi các PAT khác để cùng nhau học hỏi. -> Để học sâu hơn, chúng tôi khuyến nghị theo dõi các mô-đun và lộ trình học trong [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Để học sâu hơn, chúng tôi khuyên bạn theo dõi các mô-đun và lộ trình học của [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Giáo viên**, chúng tôi có [bao gồm một số gợi ý](for-teachers.md) về cách sử dụng chương trình này. +**Giáo viên**, chúng tôi đã [bao gồm một số đề xuất](for-teachers.md) về cách sử dụng chương trình này. --- ## Video hướng dẫn -Một số bài học có dưới dạng video ngắn. Bạn có thể tìm thấy tất cả các video này ngay trong bài học, hoặc trên [danh sách phát ML for Beginners trên kênh YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) bằng cách nhấp vào hình ảnh dưới đây. +Một số bài học có sẵn dưới dạng video ngắn. Bạn có thể tìm thấy tất cả chúng trong bài học, hoặc trên [Danh sách phát ML cho Người Mới Bắt Đầu trên kênh Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) bằng cách nhấp vào hình bên dưới. -[![Biểu ngữ ML cho người mới bắt đầu](../../translated_images/vi/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![Banner ML cho người mới bắt đầu](../../translated_images/vi/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Gặp gỡ đội ngũ +## Gặp đội ngũ -[![Video quảng bá](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Video giới thiệu](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif bởi** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Ảnh GIF bởi** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) > 🎥 Nhấp vào hình ảnh trên để xem video về dự án và những người đã tạo ra nó! @@ -107,132 +107,143 @@ Một số bài học có dưới dạng video ngắn. Bạn có thể tìm th ## Phương pháp giảng dạy -Chúng tôi đã chọn hai nguyên tắc giảng dạy khi xây dựng chương trình này: đảm bảo nó thuộc loại **dựa trên dự án thực hành** và bao gồm **các bài kiểm tra thường xuyên**. Ngoài ra, chương trình có một **chủ đề chung** để tạo sự gắn kết. +Chúng tôi đã chọn hai nguyên tắc giáo dục khi xây dựng chương trình này: đảm bảo đó là dựa trên dự án **thực hành** và bao gồm các **bài kiểm tra thường xuyên**. Ngoài ra, chương trình học có một **chủ đề chung** để tạo sự liên kết. -Bằng việc đảm bảo nội dung phù hợp với dự án, quá trình học trở nên hấp dẫn hơn với học sinh và tăng cường khả năng ghi nhớ khái niệm. Bên cạnh đó, một bài kiểm tra mức thấp trước lớp đặt mục đích học tập cho học sinh, trong khi bài kiểm tra thứ hai sau lớp giúp củng cố kiến thức. Chương trình này được thiết kế linh hoạt và vui nhộn, có thể học trọn vẹn hoặc từng phần. Các dự án bắt đầu nhỏ và trở nên phức tạp hơn vào cuối chu kỳ 12 tuần. Chương trình còn bao gồm phần phụ lục về ứng dụng thực tế của ML, có thể dùng làm bài tập thêm hoặc cơ sở thảo luận. +Bằng cách đảm bảo nội dung phù hợp với dự án, quá trình học trở nên hấp dẫn hơn cho học sinh và tăng cường ghi nhớ các khái niệm. Thêm vào đó, bài kiểm tra nhẹ nhàng trước lớp đặt mục tiêu học tập cho học sinh về chủ đề cần học, trong khi bài kiểm tra thứ hai sau lớp đảm bảo việc ghi nhớ thêm. Chương trình này thiết kế để linh hoạt và vui vẻ, có thể học toàn bộ hoặc một phần. Các dự án bắt đầu nhỏ và ngày càng phức tạp hơn vào cuối chu kỳ 12 tuần. Chương trình cũng bao gồm một phần ghi chú về các ứng dụng thực tế của ML, có thể dùng điểm thưởng hoặc làm cơ sở thảo luận. -> Tìm các hướng dẫn [Quy tắc ứng xử](CODE_OF_CONDUCT.md), [Đóng góp](CONTRIBUTING.md), [Bản dịch](..), và [Xử lý sự cố](TROUBLESHOOTING.md) của chúng tôi. Chúng tôi rất hoan nghênh phản hồi mang tính xây dựng của bạn! +> Tìm [Quy tắc ứng xử](CODE_OF_CONDUCT.md), [Đóng góp](CONTRIBUTING.md), [Bản dịch](..), và [Hướng dẫn khắc phục sự cố](TROUBLESHOOTING.md) của chúng tôi. Chúng tôi hoan nghênh phản hồi xây dựng của bạn! ## Mỗi bài học bao gồm -- bản phác thảo tùy chọn -- video bổ sung tùy chọn +- ghi chú phác thảo tùy chọn +- video bổ trợ tùy chọn - video hướng dẫn (chỉ một số bài học) - [bài kiểm tra khởi động trước bài giảng](https://ff-quizzes.netlify.app/en/ml/) - bài học bằng văn bản -- đối với các bài học dự án, hướng dẫn từng bước cách xây dựng dự án -- kiểm tra kiến thức +- đối với bài học dự án, hướng dẫn từng bước xây dựng dự án +- các kiểm tra kiến thức - một thử thách -- bài đọc bổ sung +- tài liệu tham khảo bổ sung - bài tập - [bài kiểm tra sau bài giảng](https://ff-quizzes.netlify.app/en/ml/) -> **Một lưu ý về ngôn ngữ**: Các bài học này chủ yếu được viết bằng Python, nhưng nhiều bài cũng có sẵn bằng R. Để hoàn thành một bài học bằng R, hãy vào thư mục `/solution` và tìm các bài học R. Chúng bao gồm phần mở rộng .rmd đại diện cho một tập tin **R Markdown** có thể đơn giản được định nghĩa là sự nhúng các `khối mã` (bằng R hoặc các ngôn ngữ khác) và một `đầu trang YAML` (hướng dẫn cách định dạng các đầu ra như PDF) trong một `tài liệu Markdown`. Do đó, nó phục vụ như một khung tác giả mẫu cho khoa học dữ liệu vì nó cho phép bạn kết hợp mã của mình, kết quả đầu ra và suy nghĩ của bạn bằng cách cho phép bạn viết chúng ra dưới dạng Markdown. Hơn nữa, các tài liệu R Markdown có thể được kết xuất sang các định dạng đầu ra như PDF, HTML hoặc Word. - -> **Một lưu ý về các bài kiểm tra**: Tất cả các bài kiểm tra được chứa trong [thư mục Ứng dụng Quiz](../../quiz-app), tổng cộng 52 bài kiểm tra với mỗi bài gồm ba câu hỏi. Chúng được liên kết trong các bài học nhưng ứng dụng kiểm tra có thể chạy cục bộ; hãy làm theo hướng dẫn trong thư mục `quiz-app` để lưu trữ hoặc triển khai cục bộ lên Azure. - -| Số Bài Học | Chủ Đề | Nhóm Bài Học | Mục Tiêu Học Tập | Bài Học Liên Kết | Tác Giả | -| :---------: | :---------------------------------------------------------------: | :-----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | -| 01 | Giới thiệu về học máy | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu các khái niệm cơ bản đằng sau học máy | [Bài học](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Lịch sử của học máy | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu lịch sử nền tảng của lĩnh vực này | [Bài học](1-Introduction/2-history-of-ML/README.md) | Jen và Amy | -| 03 | Công bằng và học máy | [Giới thiệu](1-Introduction/README.md) | Những vấn đề triết học quan trọng về công bằng mà học viên nên cân nhắc khi xây dựng và áp dụng các mô hình ML? | [Bài học](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Kỹ thuật học máy | [Giới thiệu](1-Introduction/README.md) | Những kỹ thuật nào các nhà nghiên cứu ML sử dụng để xây dựng các mô hình ML? | [Bài học](1-Introduction/4-techniques-of-ML/README.md) | Chris và Jen | -| 05 | Giới thiệu về hồi quy | [Hồi quy](2-Regression/README.md) | Bắt đầu với Python và Scikit-learn cho các mô hình hồi quy | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Giá bí đỏ Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Trực quan hóa và làm sạch dữ liệu chuẩn bị cho học máy | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Giá bí đỏ Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng các mô hình hồi quy tuyến tính và đa thức | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen và Dmitry • Eric Wanjau | -| 08 | Giá bí đỏ Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng mô hình hồi quy logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Ứng dụng Web 🔌 | [Ứng dụng Web](3-Web-App/README.md) | Xây dựng một ứng dụng web để sử dụng mô hình đã huấn luyện | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Giới thiệu về phân loại | [Phân loại](4-Classification/README.md) | Làm sạch, chuẩn bị và trực quan hóa dữ liệu; giới thiệu về phân loại | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen và Cassie • Eric Wanjau | -| 11 | Món ăn ngon Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Giới thiệu về bộ phân loại | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen và Cassie • Eric Wanjau | -| 12 | Món ăn ngon Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Thêm nhiều bộ phân loại | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen và Cassie • Eric Wanjau | -| 13 | Món ăn ngon Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Xây dựng ứng dụng web đề xuất sử dụng mô hình của bạn | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Giới thiệu về phân cụm | [Phân cụm](5-Clustering/README.md) | Làm sạch, chuẩn bị và trực quan hóa dữ liệu; Giới thiệu về phân cụm | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Khám phá thị hiếu âm nhạc Nigeria 🎧 | [Phân cụm](5-Clustering/README.md) | Khám phá phương pháp phân cụm K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Giới thiệu xử lý ngôn ngữ tự nhiên ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Học các kiến thức cơ bản về NLP bằng cách xây dựng một bot đơn giản | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Các nhiệm vụ NLP phổ biến ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Làm sâu thêm kiến thức NLP của bạn bằng cách hiểu các nhiệm vụ phổ biến cần thiết khi xử lý cấu trúc ngôn ngữ | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Phân tích dịch và cảm xúc ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích dịch và cảm xúc với Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Khách sạn lãng mạn ở Châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với đánh giá khách sạn 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Khách sạn lãng mạn ở Châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với đánh giá khách sạn 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Giới thiệu dự báo chuỗi thời gian | [Chuỗi thời gian](7-TimeSeries/README.md) | Giới thiệu về dự báo chuỗi thời gian | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Sử dụng điện năng toàn cầu ⚡️ - dự báo chuỗi thời gian ARIMA | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Sử dụng điện năng toàn cầu ⚡️ - dự báo chuỗi thời gian SVR | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Giới thiệu học tăng cường | [Học tăng cường](8-Reinforcement/README.md) | Giới thiệu học tăng cường với Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Giúp Peter tránh sói! 🐺 | [Học tăng cường](8-Reinforcement/README.md) | Học tăng cường Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Lời kết | Các tình huống và ứng dụng ML trong thực tế | [ML trong Thực tế](9-Real-World/README.md) | Các ứng dụng thú vị và tiết lộ trong thế giới thực của học máy cổ điển | [Bài học](9-Real-World/1-Applications/README.md) | Đội ngũ | -| Lời kết | Gỡ lỗi mô hình ML bằng bảng điều khiển RAI | [ML trong Thực tế](9-Real-World/README.md) | Gỡ lỗi mô hình trong học máy sử dụng các thành phần bảng điều khiển AI có trách nhiệm | [Bài học](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +> **Lưu ý về ngôn ngữ**: Các bài học này chủ yếu được viết bằng Python, nhưng nhiều bài cũng có sẵn bằng R. Để hoàn thành bài học bằng R, hãy vào thư mục `/solution` và tìm các bài học R. Chúng bao gồm phần mở rộng .rmd, đại diện cho một **tệp R Markdown** có thể được định nghĩa đơn giản là việc nhúng `đoạn mã` (của R hoặc các ngôn ngữ khác) và một `đầu đề YAML` (hướng dẫn cách định dạng đầu ra như PDF) trong một `tài liệu Markdown`. Do đó, nó phục vụ như một khuôn khổ tác giả tuyệt vời cho khoa học dữ liệu vì cho phép bạn kết hợp mã của mình, đầu ra của nó, và suy nghĩ của bạn bằng cách cho phép bạn viết chúng trong Markdown. Hơn nữa, các tài liệu R Markdown có thể được kết xuất ra các định dạng đầu ra như PDF, HTML hoặc Word. + +> **Lưu ý về các bài kiểm tra**: Tất cả các bài kiểm tra được chứa trong [thư mục Ứng Dụng Quiz](../../quiz-app), tổng cộng 52 bài kiểm tra với mỗi bài gồm ba câu hỏi. Chúng được liên kết trong các bài học nhưng ứng dụng kiểm tra có thể chạy cục bộ; hãy làm theo hướng dẫn trong thư mục `quiz-app` để lưu trữ hoặc triển khai lên Azure. + +| Số bài học | Chủ đề | Nhóm bài học | Mục tiêu học tập | Bài học liên kết | Tác giả | +| :--------: | :-----------------------------------------------------: | :------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------: | :------------------------: | +| 01 | Giới thiệu về học máy | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu các khái niệm cơ bản về học máy | [Bài học](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Lịch sử của học máy | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu lịch sử nền tảng của lĩnh vực này | [Bài học](1-Introduction/2-history-of-ML/README.md) | Jen và Amy | +| 03 | Công bằng và học máy | [Giới thiệu](1-Introduction/README.md) | Những vấn đề triết học quan trọng về công bằng mà học viên cần xem xét khi xây dựng và áp dụng mô hình ML? | [Bài học](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Kỹ thuật cho học máy | [Giới thiệu](1-Introduction/README.md) | Các kỹ thuật mà các nhà nghiên cứu ML sử dụng để xây dựng mô hình ML? | [Bài học](1-Introduction/4-techniques-of-ML/README.md) | Chris và Jen | +| 05 | Giới thiệu về hồi quy | [Hồi quy](2-Regression/README.md) | Bắt đầu với Python và Scikit-learn cho các mô hình hồi quy | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Giá bí ngô Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Trực quan hóa và làm sạch dữ liệu chuẩn bị cho ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Giá bí ngô Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng các mô hình hồi quy tuyến tính và đa thức | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen và Dmitry • Eric Wanjau | +| 08 | Giá bí ngô Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng một mô hình hồi quy logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Ứng dụng Web 🔌 | [Ứng dụng Web](3-Web-App/README.md) | Xây dựng một ứng dụng web sử dụng mô hình đã được huấn luyện | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Giới thiệu về phân loại | [Phân loại](4-Classification/README.md) | Làm sạch, chuẩn bị, và trực quan hóa dữ liệu; giới thiệu về phân loại | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen và Cassie • Eric Wanjau | +| 11 | Các món ăn Châu Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Giới thiệu về bộ phân loại | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen và Cassie • Eric Wanjau | +| 12 | Các món ăn Châu Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Thêm bộ phân loại | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen và Cassie • Eric Wanjau | +| 13 | Các món ăn Châu Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Xây dựng ứng dụng web gợi ý sử dụng mô hình của bạn | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Giới thiệu về phân cụm | [Phân cụm](5-Clustering/README.md) | Làm sạch, chuẩn bị, và trực quan hóa dữ liệu; giới thiệu về phân cụm | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Khám phá sở thích âm nhạc Nigeria 🎧 | [Phân cụm](5-Clustering/README.md) | Khám phá phương pháp phân cụm K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Giới thiệu về xử lý ngôn ngữ tự nhiên ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Tìm hiểu những điều cơ bản về NLP bằng cách xây dựng một bot đơn giản | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Các tác vụ NLP phổ biến ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Nâng cao kiến thức NLP bằng cách hiểu các tác vụ phổ biến khi xử lý cấu trúc ngôn ngữ | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Phân tích dịch và cảm xúc ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích dịch và cảm xúc với Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Các khách sạn lãng mạn của châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với các đánh giá khách sạn 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Các khách sạn lãng mạn của châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với các đánh giá khách sạn 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Giới thiệu về dự báo chuỗi thời gian | [Chuỗi thời gian](7-TimeSeries/README.md) | Giới thiệu về dự báo chuỗi thời gian | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Sử dụng điện thế giới ⚡️ - dự báo chuỗi thời gian với ARIMA | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Sử dụng điện thế giới ⚡️ - dự báo chuỗi thời gian với SVR | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Giới thiệu về học tăng cường | [Học tăng cường](8-Reinforcement/README.md) | Giới thiệu về học tăng cường với Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Giúp Peter tránh con sói! 🐺 | [Học tăng cường](8-Reinforcement/README.md) | Học tăng cường với Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Các tình huống và ứng dụng ML thực tế | [ML trong thực tế](9-Real-World/README.md) | Các ứng dụng thú vị và mang tính khám phá trong thế giới thực của ML cổ điển | [Bài học](9-Real-World/1-Applications/README.md) | Nhóm | +| Postscript | Gỡ lỗi mô hình trong ML bằng bảng điều khiển RAI | [ML trong thực tế](9-Real-World/README.md) | Gỡ lỗi mô hình trong học máy sử dụng các thành phần bảng điều khiển Responsible AI | [Bài học](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [tìm tất cả tài nguyên bổ sung cho khóa học này trong bộ sưu tập Microsoft Learn của chúng tôi](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Truy cập ngoại tuyến -Bạn có thể chạy tài liệu này ngoại tuyến bằng cách sử dụng [Docsify](https://docsify.js.org/#/). Fork repo này, [cài đặt Docsify](https://docsify.js.org/#/quickstart) trên máy tính cục bộ của bạn, sau đó trong thư mục gốc của repo này, gõ `docsify serve`. Trang web sẽ được phục vụ trên cổng 3000 tại localhost của bạn: `localhost:3000`. +Bạn có thể chạy tài liệu này ở chế độ ngoại tuyến bằng cách sử dụng [Docsify](https://docsify.js.org/#/). Hãy sao chép repo này, [cài đặt Docsify](https://docsify.js.org/#/quickstart) trên máy cục bộ của bạn, sau đó trong thư mục gốc của repo này, nhập `docsify serve`. Trang web sẽ được phục vụ trên cổng 3000 trên localhost của bạn: `localhost:3000`. ## PDF -Tìm tài liệu pdf của chương trình học với các liên kết [tại đây](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Tải xuống tệp pdf của chương trình học với các liên kết [tại đây](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Các Khóa học Khác +## 🎒 Các Khóa Học Khác Nhóm của chúng tôi còn sản xuất các khóa học khác! Hãy xem: ### LangChain -[![LangChain4j cho Người mới bắt đầu](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js cho Người mới bắt đầu](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain cho Người mới bắt đầu](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j cho người mới bắt đầu](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js cho người mới bắt đầu](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain cho người mới bắt đầu](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD cho Người mới bắt đầu](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI cho Người mới bắt đầu](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP cho Người mới bắt đầu](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents cho Người mới bắt đầu](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD cho người mới bắt đầu](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI cho người mới bắt đầu](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Chuỗi AI Tạo Sinh -[![AI Tạo Sinh cho Người mới bắt đầu](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Tạo Sinh (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![AI Tạo Sinh (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![AI Tạo Sinh (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Học Tập Cốt Lõi -[![ML cho Người mới bắt đầu](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Khoa học Dữ liệu cho Người mới bắt đầu](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI cho Người mới bắt đầu](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![An ninh mạng cho Người mới bắt đầu](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Phát triển Web cho Người mới bắt đầu](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT cho Người mới bắt đầu](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![Phát triển XR cho Người mới bắt đầu](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Học Tập Cơ Bản +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Chuỗi Copilot -[![Copilot cho Lập trình Ghép đôi AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot cho C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Cuộc phiêu lưu Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Nhận Trợ Giúp -Nếu bạn gặp khó khăn hoặc có bất kỳ câu hỏi nào về việc xây dựng ứng dụng AI. Hãy tham gia cùng những người học khác và các nhà phát triển giàu kinh nghiệm trong các cuộc thảo luận về MCP. Đây là một cộng đồng hỗ trợ, nơi mọi câu hỏi đều được chào đón và kiến thức được chia sẻ tự do. +Nếu bạn bị mắc kẹt hoặc có câu hỏi trong quá trình học Máy Học hoặc xây dựng ứng dụng AI, đừng lo — vẫn có trợ giúp sẵn sàng. -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +Bạn có thể tham gia thảo luận với những người học và nhà phát triển khác, đặt câu hỏi và chia sẻ ý tưởng của mình với cộng đồng. -Nếu bạn có phản hồi về sản phẩm hoặc phát hiện lỗi trong quá trình xây dựng, hãy truy cập: +- Tham gia cộng đồng để đặt câu hỏi và học hỏi cùng người khác +- Thảo luận về các khái niệm Máy Học và ý tưởng dự án +- Nhận sự hướng dẫn từ các nhà phát triển có kinh nghiệm + +Một cộng đồng hỗ trợ là cách tuyệt vời để bạn phát triển kỹ năng và giải quyết vấn đề nhanh hơn. + +[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG) + +Nếu bạn gặp lỗi, sự cố hoặc có đề xuất cải tiến, bạn cũng có thể mở một **Issue** trong kho này để báo cáo vấn đề. + +Để phản hồi sản phẩm hoặc tìm kiếm các bài đăng cộng đồng hiện có, hãy truy cập Diễn Đàn Nhà Phát Triển: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Mẹo Học Thêm -- Xem lại các sổ tay sau mỗi bài học để hiểu sâu hơn. -- Thực hành triển khai các thuật toán một cách độc lập. +## Mẹo Học Tập Bổ Sung + +- Xem lại các notebook sau mỗi bài học để hiểu bài tốt hơn. +- Thực hành tự triển khai các thuật toán. - Khám phá các bộ dữ liệu thực tế bằng cách sử dụng các khái niệm đã học. --- -**Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi nỗ lực để đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sự không chính xác. Tài liệu gốc bằng ngôn ngữ mẹ đẻ nên được xem là nguồn chính xác và có thẩm quyền. Đối với thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp của con người. Chúng tôi không chịu trách nhiệm cho bất kỳ hiểu nhầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. +**Từ chối trách nhiệm**: +Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được xem là nguồn thông tin chính thức. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file