## [שאלון לפני השיעור](https://ff-quizzes.netlify.app/en/ml/)
## [מבחן לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
---
[](https://youtu.be/6mSx_KJxcHI "למידת מכונה למתחילים - מבוא ללמידת מכונה למתחילים")
> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר שמסביר את השיעור.
> 🎥 לחצו על התמונה למעלה לצפייה בסרטון קצר שעובר על השיעור הזה.
ברוכים הבאים לקורס זה על למידת מכונה קלאסית למתחילים! בין אם אתם חדשים לחלוטין לנושא הזה, או מומחים בלמידת מכונה שמחפשים לרענן את הידע, אנחנו שמחים שהצטרפתם אלינו! אנו שואפים ליצור נקודת התחלה ידידותית ללימודי למידת מכונה ונשמח להעריך, להגיב ולשלב את [המשוב שלכם](https://github.com/microsoft/ML-For-Beginners/discussions).
ברוכים הבאים לקורס זה על למידת מכונה קלאסית למתחילים! בין אם אתם חדשים לגמרי בנושא זה, או מומחי ML מנוסים שמעוניינים לרענן ידע בתחום, אנחנו שמחים שאתם מצטרפים אלינו! אנחנו רוצים ליצור נקודת פתיחה ידידותית ללימוד ה-ML שלכם ונשמח להעריך, להגיב ולשלב את ה-[משוב](https://github.com/microsoft/ML-For-Beginners/discussions) שלכם.
> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: ג'ון גוטאג מ-MIT מציג את למידת המכונה
> 🎥 לחצו על התמונה למעלה לסרטון: ג'ון גוטטאג מ-MIT מציג את למידת המכונה
---
## התחלת העבודה עם למידת מכונה
לפני שמתחילים עם תוכנית הלימודים הזו, יש לוודא שהמחשב שלכם מוכן להריץ מחברות באופן מקומי.
לפני שמתחילים עם תכנית הלימודים הזו, יש צורך להכין את המחשב שלכם ולהיות מוכנים להריץ מחברות (notebooks) באופן מקומי.
- **הגדירו את המחשב שלכם באמצעות הסרטונים האלה**. השתמשו בקישורים הבאים כדי ללמוד [איך להתקין את Python](https://youtu.be/CXZYvNRIAKM) במערכת שלכם ו-[להגדיר עורך טקסט](https://youtu.be/EU8eayHWoZg) לפיתוח.
- **למדו Python**. מומלץ גם להבין את הבסיס של [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), שפת תכנות שימושית למדעני נתונים שבה נשתמש בקורס הזה.
- **למדו Node.js ו-JavaScript**. נשתמש גם ב-JavaScript מספר פעמים בקורס הזה כשנבנה אפליקציות ווב, ולכן תצטרכו להתקין [node](https://nodejs.org) ו-[npm](https://www.npmjs.com/), וכן [Visual Studio Code](https://code.visualstudio.com/) שיהיה זמין לפיתוח ב-Python וב-JavaScript.
- **צרו חשבון GitHub**. מכיוון שמצאתם אותנו כאן ב-[GitHub](https://github.com), ייתכן שכבר יש לכם חשבון, אבל אם לא, צרו אחד ואז עשו fork לתוכנית הלימודים הזו כדי להשתמש בה בעצמכם. (אתם מוזמנים גם לתת לנו כוכב 😊)
- **חקור את Scikit-learn**. הכירו את [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), סט ספריות למידת מכונה שנשתמש בהן בשיעורים האלה.
- **הגדירו את המכשיר שלכם עם הסרטונים האלה**. השתמשו בקישורים הבאים כדי ללמוד [איך להתקין Python](https://youtu.be/CXZYvNRIAKM) במערכת שלכם ו-[להגדיר עורך טקסט](https://youtu.be/EU8eayHWoZg) לפיתוח.
- **למדו Python**. מומלץ גם להבין ביסודיות את שפת [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), שפת תכנות שימושית למדעני נתונים שאנחנו משתמשים בה בקורס הזה.
- **למדו Node.js ו-JavaScript**. אנחנו גם משתמשים ב-JavaScript כמה פעמים בקורס הזה כשבונים אפליקציות ווב, לכן תצטרכו שיהיו מותקנים אצלכם [node](https://nodejs.org) ו-[npm](https://www.npmjs.com/), וכן שתהיה לכם גישה ל-[Visual Studio Code](https://code.visualstudio.com/) לשימוש בפיתוח Python ו-JavaScript.
- **צרו חשבון GitHub**. מכיוון שמצאתם אותנו כאן ב-[GitHub](https://github.com), ייתכן שכבר יש לכם חשבון, אך אם לא, צרו אחד ואז עשו fork לתכנית הלימודים הזו לשימושכם האישי. (אתם גם מוזמנים לתת לנו כוכב, 😊)
- **הכירו את Scikit-learn**. היכונו עם [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), סדרת ספריות ML שאנחנו מתייחסים אליהן בשיעורים האלו.
---
## מהי למידת מכונה?
המונח 'למידת מכונה' הוא אחד המונחים הפופולריים והשכיחים ביותר כיום. יש סיכוי לא מבוטל ששמעתם את המונח הזה לפחות פעם אחת אם יש לכם היכרות כלשהי עם טכנולוגיה, לא משנה באיזה תחום אתם עובדים. עם זאת, המכניקה של למידת מכונה היא תעלומה עבור רוב האנשים. עבור מתחילים בלמידת מכונה, הנושא יכול לעיתים להרגיש מרתיע. לכן, חשוב להבין מהי למידת מכונה באמת, וללמוד עליה צעד אחר צעד, דרך דוגמאות מעשיות.
המונח 'למידת מכונה' הוא אחד מהמונחים הפופולריים והשימושיים ביותר כיום. קיים סיכוי גבוה ששמעתם את המונח הזה לפחות פעם אחת אם יש לכם היכרות כלשהי עם טכנולוגיה, לא משנה באיזה תחום אתם עובדים. המכניקה של למידת המכונה, עם זאת, היא תעלומה לרוב האנשים. עבור מתחיל בלמידת מכונה, הנושא יכול לפעמים להיראות מכריע. לכן, חשוב להבין מהי למידת מכונה בפועל, וללמוד עליה שלב אחרי שלב, דרך דוגמאות מעשיות.
---
## עקומת ההייפ
## עקומת הבאז

> Google Trends מציג את עקומת ההייפ האחרונה של המונח 'למידת מכונה'
> Google Trends מראה את 'עקומת הבאז' האחרונה של המונח 'למידת מכונה'
---
## יקום מסתורי
אנחנו חיים ביקום מלא בתעלומות מרתקות. מדענים גדולים כמו סטיבן הוקינג, אלברט איינשטיין ועוד רבים הקדישו את חייהם לחיפוש מידע משמעותי שחושף את התעלומות של העולם סביבנו. זהו מצב הלמידה האנושי: ילד לומד דברים חדשים ומגלה את מבנה עולמו שנה אחר שנה כשהוא גדל לבגרות.
אנחנו חיים ביקום מלא תעלומות מרתקות. מדענים גדולים כמו סטיבן הוקינג, אלברט איינשטיין ועוד רבים הקדישו את חייהם לחיפוש אחר מידע משמעותי שמגלה את תעלומות העולם שסביבנו. זו היא מציאות הלמידה האנושית: ילד לומד דברים חדשים וחושף את מבנה עולמו שנה אחרי שנה כשהוא גדל לבגרות.
---
## מוחו של הילד
המוח והחושים של הילד תופסים את העובדות של סביבתו ולומדים בהדרגה את הדפוסים הנסתרים של החיים, שמסייעים לילד ליצור כללים לוגיים לזיהוי דפוסים נלמדים. תהליך הלמידה של המוח האנושי הופך את בני האדם ליצורים החיים המתוחכמים ביותר בעולם הזה. הלמידה המתמשכת על ידי גילוי דפוסים נסתרים ואז חדשנות על בסיסם מאפשרת לנו להשתפר ולהתפתח לאורך כל חיינו. יכולת הלמידה וההתפתחות הזו קשורה למושג שנקרא [פלסטיות מוחית](https://www.simplypsychology.org/brain-plasticity.html). באופן שטחי, ניתן למצוא כמה דמיון מוטיבציוני בין תהליך הלמידה של המוח האנושי לבין מושגי למידת מכונה.
מוחו וחושיו של הילד תופסים את עובדות סביבתו ולומדים בהדרגה את הדפוסים הנסתרים של החיים שמאפשרים לילד לגבש חוקים לוגיים לזיהוי דפוסים שנלמדו. תהליך הלמידה של המוח האנושי עושה את האדם ליצור חי מורכב ביותר בעולם הזה. למידה מתמשכת בגילוי דפוסים נסתרים ואז חידוש על בסיסם מאפשרת לנו להשתפר כל הזמן לאורך חיי האדם. יכולת למידה זו והיכולת המתפתחת קשורה למושג הנקרא [פלסטיות מוחית](https://www.simplypsychology.org/brain-plasticity.html). למבט חיצוני, ניתן למצוא כמה דמיון מוטיבציוני בין תהליך הלמידה של המוח האנושי לבין המושגים של למידת מכונה.
---
## המוח האנושי
## מוח האדם
המוח [האנושי](https://www.livescience.com/29365-human-brain.html) תופס דברים מהעולם האמיתי, מעבד את המידע הנתפס, מקבל החלטות רציונליות ומבצע פעולות מסוימות בהתאם לנסיבות. זה מה שאנחנו מכנים התנהגות אינטליגנטית. כאשר אנו מתכנתים חיקוי של תהליך ההתנהגות האינטליגנטית למכונה, זה נקרא בינה מלאכותית (AI).
ה-[מוח האנושי](https://www.livescience.com/29365-human-brain.html) תופס דברים מהעולם האמיתי, מעבד את המידע הנתפס, מקבל החלטות הגיוניות, ומבצע פעולות מסוימות בהתאם לנסיבות. זה מה שאנחנו קוראים התנהגות אינטיליגנטית. כאשר אנו מתכנתים מכונה כך שתחקה את תהליך קבלת ההחלטות החכם, זה נקרא אינטליגנציה מלאכותית (AI).
---
## כמה מונחים
למרות שהמונחים יכולים להיות מבלבלים, למידת מכונה (ML) היא תת-תחום חשוב של בינה מלאכותית. **ML עוסקת בשימוש באלגוריתמים מיוחדים כדי לחשוף מידע משמעותי ולמצוא דפוסים נסתרים מנתונים נתפסים כדי לתמוך בתהליך קבלת החלטות רציונלי**.
אף שהמונחים עלולים לבלבל, למידת מכונה (ML) היא תת-קבוצה חשובה של אינטליגנציה מלאכותית. **למידת מכונה מתמקדת בשימוש באלגוריתמים מיוחדים לחשוף מידע משמעותי ולמצוא דפוסים נסתרים מהנתונים הנתפסים על מנת לאמת את תהליך קבלת ההחלטות ההגיוני**.
---
## AI, ML, למידה עמוקה


> דיאגרמה שמציגה את הקשרים בין AI, ML, למידה עמוקה ומדעי הנתונים. אינפוגרפיקה מאת [Jen Looper](https://twitter.com/jenlooper) בהשראת [הגרפיקה הזו](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
> דיאגרמה המציגה את היחסים בין AI, ML, למידה עמוקה ומדעי הנתונים. אינפוגרפיקה של [Jen Looper](https://twitter.com/jenlooper) בהשראת [גרפיקה זו](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
---
## מושגים שנכסה
## מושגים לכיסוי
בתוכנית הלימודים הזו, נכסה רק את מושגי היסוד של למידת מכונה שמתחיל חייב לדעת. נכסה את מה שאנחנו מכנים 'למידת מכונה קלאסית' בעיקר באמצעות Scikit-learn, ספרייה מצוינת שרבים מהסטודנטים משתמשים בה כדי ללמוד את הבסיס. כדי להבין מושגים רחבים יותר של בינה מלאכותית או למידה עמוקה, ידע יסודי חזק בלמידת מכונה הוא הכרחי, ולכן אנו מציעים אותו כאן.
בתכנית הלימודים הזו, נעסוק רק במושגי היסוד של למידת מכונה שמתחיל חייב לדעת. נעסוק במה שאנו קוראים 'למידת מכונה קלאסית' בעיקר תוך שימוש ב-Scikit-learn, ספרייה מצוינת שרוב התלמידים משתמשים בה ללמידת היסודות. כדי להבין מושגים רחבים יותר של אינטליגנציה מלאכותית או למידה עמוקה, ידע יסודי חזק בלמידת מכונה הוא חיוני, ולכן אנו רוצים להציע אותו כאן.
---
## בקורס הזה תלמדו:
## בקורס זה תלמדו:
- מושגי יסוד של למידת מכונה
- ההיסטוריה של ML
- ML והוגנות
- טכניקות רגרסיה בלמידת מכונה
- טכניקות סיווג בלמידת מכונה
- טכניקות אשכולות בלמידת מכונה
- עיבוד שפה טבעית בלמידת מכונה
- חיזוי סדרות זמן בלמידת מכונה
- למידה מחזקת
- יישומים בעולם האמיתי של ML
- מושגי יסוד של למידת מכונה
- ההיסטוריה של ML
- ML והוגנות
- טכניקות רגרסיה ב-ML
- טכניקות סיווג ב-ML
- טכניקות אשכולות ב-ML
- טכניקות עיבוד שפה טבעית ב-ML
- טכניקות חיזוי סדרות זמן ב-ML
- למידה עם חיזוק
- יישומים מעשיים של ML
---
## מה לא נכסה
## מה לא נלמד
- למידה עמוקה
- רשתות נוירונים
- AI
- למידה עמוקה
- רשתות עצביות
- אינטליגנציה מלאכותית
כדי ליצור חוויית למידה טובה יותר, נמנע מהמורכבויות של רשתות נוירונים, 'למידה עמוקה' - בניית מודלים מרובי שכבות באמצעות רשתות נוירונים - ו-AI, שאותם נדון בתוכנית לימודים אחרת. בנוסף, נציע תוכנית לימודים עתידית במדעי הנתונים שתתמקד בהיבט הזה של התחום הרחב יותר.
כדי להבטיח חווית למידה טובה יותר, נמנע מהמורכבויות של רשתות עצביות, 'למידה עמוקה' - בניית מודלים רב-שכבתית באמצעות רשתות עצביות - ו-AI, אשר נעסוק בהם בתכנית לימודים נפרדת. כמו כן, נציע בעתיד תכנית לימודים במדעי הנתונים שתתמקד בהיבט זה של התחום הרחב הזה.
---
## למה ללמוד למידת מכונה?
למידת מכונה, מנקודת מבט מערכתית, מוגדרת כיצירת מערכות אוטומטיות שיכולות ללמוד דפוסים נסתרים מנתונים כדי לסייע בקבלת החלטות אינטליגנטיות.
למידת מכונה, מנקודת מבט מערכתית, מוגדרת כיצירת מערכות אוטומטיות שיכולות ללמוד דפוסים נסתרים מהנתונים על מנת לסייע בקבלת החלטות חכמות.
המוטיבציה הזו מושפעת באופן רופף מאופן שבו המוח האנושי לומד דברים מסוימים על בסיס הנתונים שהוא תופס מהעולם החיצוני.
המוטיבציה הזו בהשראת האופן שבו המוח האנושי לומד דברים מסוימים בהתבסס על הנתונים שהוא תופס מהעולם החיצוני.
✅ חשבו לרגע מדוע עסק ירצה להשתמש באסטרטגיות למידת מכונה במקום ליצור מנוע מבוסס כללים קשיחים.
✅ חשבו לרגע למה עסק היה רוצה לנסות להשתמש באסטרטגיות למידת מכונה לעומת יצירת מנגנון מבוסס חוקים מפורשים.
---
## למה איכות הנתונים חשובה
נתונים איכותיים גבוהים משפרים את ביצועי המודל. נתונים גרועים או רועשים עלולים להוביל לניבויים לא מדויקים, אפילו כשמשתמשים באלגוריתמי למידת מכונה מתקדמים.
---
## יישומים של למידת מכונה
יישומים של למידת מכונה נמצאים כיום כמעט בכל מקום, והם נפוצים כמו הנתונים שזורמים סביב החברה שלנו, שנוצרים על ידי הטלפונים החכמים שלנו, מכשירים מחוברים ומערכות אחרות. בהתחשב בפוטנציאל העצום של אלגוריתמים מתקדמים בלמידת מכונה, חוקרים בוחנים את יכולתם לפתור בעיות רב-ממדיות ורב-תחומיות בחיים האמיתיים עם תוצאות חיוביות רבות.
יישומי למידת מכונה נמצאים כיום כמעט בכל מקום, והם נפוצים כמו הנתונים הזורמים בחברות שלנו, הנוצרים על ידי הטלפונים החכמים שלנו, מכשירים מחוברים ומערכות אחרות. בהתחשב בפוטנציאל העצום של אלגוריתמי למידת המכונה מהדור החדש, חוקרים בוחנים את יכולתם לפתור בעיות רב-ממדיות ורב-תחומיות עם תוצאות חיוביות משמעותיות.
---
## דוגמאות ליישום ML
## דוגמאות ליישומי ML
**ניתן להשתמש בלמידת מכונה בדרכים רבות**:
- לחזות את הסבירות למחלה על סמך ההיסטוריה הרפואית או הדוחות של מטופל.
- להשתמש בנתוני מזג אוויר כדי לחזות אירועי מזג אוויר.
- להבין את התחושה של טקסט.
- לזהות חדשות מזויפות כדי לעצור את הפצת התעמולה.
- לחזות סיכון למחלה מתוך היסטוריה רפואית של מטופל או דוחות.
- לנצל נתוני מזג אוויר כדי לחזות תופעות מזג אוויר.
- להבין את הטון של טקסט.
- לזהות חדשות מזויפות כדי לעצור הפצה של תעמולה.
תחומים כמו פיננסים, כלכלה, מדעי כדור הארץ, חקר החלל, הנדסה ביו-רפואית, מדעי הקוגניציה ואפילו תחומים במדעי הרוח אימצו את למידת המכונה כדי לפתור את הבעיות הכבדות בעיבוד נתונים של התחום שלהם.
תחומים כמו פיננסים, כלכלה, מדעי כדור הארץ, חקר החלל, הנדסה ביו-רפואית, מדעי הקוגניציה, ואתרים בתחומים הומאניים אימצו את למידת המכונה כדי לפתור בעיות מורכבות וכבדות עיבוד נתונים בתחומם.
---
## סיכום
למידת מכונה מאוטומטת את תהליך גילוי הדפוסים על ידי מציאת תובנות משמעותיות מנתונים אמיתיים או נתונים שנוצרו. היא הוכיחה את עצמה כבעלת ערך רב בעסקים, בריאות ויישומים פיננסיים, בין היתר.
למידת מכונה מאוטמת את תהליך גילוי הדפוסים על ידי מציאת תובנות משמעותיות מתוך נתונים אמיתיים או מיוצרים. היא הוכיחה את עצמה כה שווה ערך בתחומי עסקים, בריאות ופיננסים, בין היתר.
בעתיד הקרוב, הבנת היסודות של למידת מכונה תהיה הכרחית עבור אנשים מכל תחום בשל האימוץ הנרחב שלה.
בעתיד הקרוב, הבנת יסודות למידת המכונה תהיה הכרחית לאנשים מכל תחום עקב האימוץ הרחב שלה.
---
# 🚀 אתגר
שרטטו, על נייר או באמצעות אפליקציה מקוונת כמו [Excalidraw](https://excalidraw.com/), את ההבנה שלכם לגבי ההבדלים בין AI, ML, למידה עמוקה ומדעי הנתונים. הוסיפו רעיונות לבעיות שכל אחת מהטכניקות הללו טובה בפתרונן.
שרטטו, על נייר או באמצעות אפליקציה מקוונת כמו [Excalidraw](https://excalidraw.com/), את ההבנה שלכם לגבי ההבדלים בין AI, ML, למידה עמוקה ומדעי הנתונים. הוסיפו רעיונות לבעיות שכל אחת מהשיטות האלה טובה בפתרונן.
# [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
# [מבחן לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
---
# סקירה ולימוד עצמי
# סקירה ולמידה עצמית
כדי ללמוד עוד על איך לעבוד עם אלגוריתמים של ML בענן, עקבו אחרי [מסלול הלמידה הזה](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
להרחיב ידע על איך לעבוד עם אלגוריתמי ML בענן, עקבו אחרי [מסלול למידה](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
קחו [מסלול למידה](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) על יסודות ML.
עשו [מסלול למידה](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) על יסודות ה-ML.
---
# משימה
# מטלה
[התחילו לעבוד](assignment.md)
[התחילו ותריצו](assignment.md)
---
**כתב ויתור**:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). בעוד שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**כתב ויתור**:
מסמך זה תורגם באמצעות שירות תרגום אוטומטי [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. יש להחשיב את המסמך המקורי בשפתו הטבעית כמקור הסמכות. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אדם. אנו לא אחראים לכל אי-הבנה או פירוש שגוי הנובע מהשימוש בתרגום זה.
קיבוץ הוא סוג של [למידה ללא פיקוח](https://wikipedia.org/wiki/Unsupervised_learning) שמניח כי מערך הנתונים אינו מתויג או שהקלטים שלו אינם מותאמים לפלטים מוגדרים מראש. הוא משתמש באלגוריתמים שונים כדי למיין נתונים לא מתויגים ולספק קבוצות בהתאם לדפוסים שהוא מזהה בנתונים.
אשכול הוא סוג של [למידה לא מפוקחת](https://wikipedia.org/wiki/Unsupervised_learning) שמניח כי מערך הנתונים אינו מתויג או שהקלטים שלו אינם מותאמים עם פלטים שהוגדרו מראש. הוא משתמש באלגוריתמים שונים כדי למיין נתונים לא מתויגים ולספק קבוצות על פי דפוסים שהוא מזהה בנתונים.
[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
> 🎥 לחצו על התמונה למעלה לצפייה בסרטון. בזמן שאתם לומדים על למידת מכונה עם קיבוץ, תהנו ממוזיקת דאנס הול ניגרית - זהו שיר מדורג מאוד משנת 2014 של PSquare.
> 🎥 לחצו על התמונה למעלה לצפייה בווידאו. בזמן שאתם לומדים למידת מכונה עם אשכולות, תהנו מקצת רצועות דאנס הול ניגריות - זו שיר מדורג גבוה משנת 2014 של PSquare.
## [שאלון לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
[קיבוץ](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) הוא כלי שימושי מאוד לחקר נתונים. בואו נראה אם הוא יכול לעזור לגלות מגמות ודפוסים באופן שבו קהל ניגרי צורך מוזיקה.
[אשכולות](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) מאוד שימושיים לחקר נתונים. בואו נראה אם הם יכולים לעזור לגלות מגמות ודפוסים בדרך שבה קהל ניגרי צורך מוזיקה.
✅ הקדישו רגע לחשוב על השימושים בקיבוץ. בחיים האמיתיים, קיבוץ מתרחש בכל פעם שיש לכם ערימת כביסה ואתם צריכים למיין את הבגדים של בני המשפחה 🧦👕👖🩲. במדעי הנתונים, קיבוץ מתרחש כשמנסים לנתח את העדפות המשתמש או לקבוע את המאפיינים של כל מערך נתונים לא מתויג. קיבוץ, במובן מסוים, עוזר לעשות סדר בכאוס, כמו מגירת גרביים.
✅ קחו דקה לחשוב על השימושים באשכולות. בחיים האמיתיים, אשכולות מתבצעים כשיש לכם ערימת כביסה וצריך למיין את הבגדים של בני המשפחה 🧦👕👖🩲. במדעי הנתונים, אשכולות מתבצעים כשמנסים לנתח העדפות של משתמש או לקבוע את מאפייני מערך נתונים לא מתויג. אשכולות, באופן מסוים, עוזרים להבין את הכאוס, כמו מגירת גרביים.
[](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
> 🎥 לחצו על התמונה למעלה לצפייה בסרטון: ג'ון גוטאג מ-MIT מציג את נושא הקיבוץ
> 🎥 לחצו על התמונה למעלה לווידאו: ג'ון גאוטג מאית' מציג אשכולות
בסביבה מקצועית, קיבוץ יכול לשמש לקביעת דברים כמו פילוח שוק, למשל, לקבוע אילו קבוצות גיל קונות אילו פריטים. שימוש נוסף יכול להיות זיהוי חריגות, אולי כדי לזהות הונאה מתוך מערך נתונים של עסקאות בכרטיסי אשראי. או שתוכלו להשתמש בקיבוץ כדי לזהות גידולים בסריקות רפואיות.
בסביבה מקצועית, ניתן להשתמש באשכולות כדי לקבוע דברים כמו סגמנטציה בשוק, לקבוע אילו קבוצות גיל קונות אילו פריטים, למשל. שימוש נוסף הוא גילוי חריגות, אולי כדי לזהות הונאה מתוך מערך נתוני עסקאות בכרטיס אשראי. או שאפשר להשתמש באשכולות כדי לזהות גידולים באוסף סריקות רפואיות.
✅ הקדישו רגע לחשוב כיצד נתקלתם בקיבוץ 'בעולם האמיתי', בסביבה בנקאית, מסחר אלקטרוני או עסקית.
✅ חשבו דקה איך אולי פגשתם אשכולות 'בטבע', בסביבת בנקאות, מסחר אלקטרוני או עסקים.
> 🎓 מעניין, ניתוח קיבוץ מקורו בתחומי האנתרופולוגיה והפסיכולוגיה בשנות ה-30. האם אתם יכולים לדמיין כיצד הוא שימש אז?
> 🎓 מעניין, ניתוח אשכולות נוצר בתחומי האנתרופולוגיה והפסיכולוגיה בשנות ה-30 של המאה הקודמת. האם תוכלו לדמיין איך השתמשו בזה?
לחילופין, תוכלו להשתמש בו לקיבוץ תוצאות חיפוש - לפי קישורי קניות, תמונות או ביקורות, למשל. קיבוץ שימושי כשיש לכם מערך נתונים גדול שברצונכם לצמצם ועליו לבצע ניתוח מעמיק יותר, כך שהטכניקה יכולה לשמש ללמידה על נתונים לפני בניית מודלים אחרים.
בנוסף, ניתן להשתמש באשכולות כדי לקבץ תוצאות חיפוש - לפי קישורי קניות, תמונות או ביקורות לדוגמה. אשכולות שימושיים כשיש לכם מערך נתונים גדול שאתם רוצים להקטין ועליו לבצע ניתוח מפורט יותר, לכן השיטה יכולה לשמש ללמידה על נתונים לפני שנבנים מודלים אחרים.
✅ לאחר שמערך הנתונים שלכם מאורגן בקבוצות, אתם מקצים לו מזהה קבוצה, וטכניקה זו יכולה להיות שימושית לשמירה על פרטיות מערך הנתונים; תוכלו להתייחס לנקודת נתונים לפי מזהה הקבוצה שלה, במקום לפי נתונים מזהים יותר. האם אתם יכולים לחשוב על סיבות נוספות מדוע תעדיפו להתייחס למזהה קבוצה במקום לאלמנטים אחרים של הקבוצה כדי לזהות אותה?
✅ לאחר שמארגנים את הנתונים לאשכולות, מקצים להם מזהה אשכול, וטכניקה זו יכולה להיות שימושית לשמירת פרטיות מערך הנתונים; ניתן להתייחס לנקודת נתונים לפי מזהה האשכול במקום לפי נתונים מזהים מפורטים יותר. תוכלו לחשוב על סיבות נוספות בגללן אפשר להתייחס למזהה אשכול במקום לאלמנטים אחרים באשכול כדי לזהותו?
העמיקו את הבנתכם בטכניקות קיבוץ במודול [לימוד זה](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)
העמיקו את ההבנה שלכם בטכניקות אשכולות במודול [Learn module](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)
## התחלת עבודה עם קיבוץ
## התחלת עבודה עם אשכולות
[Scikit-learn מציעה מגוון רחב](https://scikit-learn.org/stable/modules/clustering.html) של שיטות לביצוע קיבוץ. הסוג שתבחרו תלוי במקרה השימוש שלכם. לפי התיעוד, לכל שיטה יש יתרונות שונים. הנה טבלה פשוטה של השיטות הנתמכות על ידי Scikit-learn ומקרי השימוש המתאימים להן:
[Scikit-learn מציע מערך רחב](https://scikit-learn.org/stable/modules/clustering.html) של שיטות לבצע אשכולות. סוג השיטה שתבחרו תלוי במקרי השימוש שלכם. לפי התיעוד, לכל שיטה יש יתרונות שונים. להלן טבלה מפושטת של השיטות הנתמכות על ידי Scikit-learn ומקרי השימוש המתאימים להן:
| BIRCH | מערך נתונים גדול עם חריגות, אינדוקטיבי |
> 🎓 איך אנחנו יוצרים קבוצות קשור מאוד לאופן שבו אנחנו אוספים את נקודות הנתונים לקבוצות. בואו נפרק קצת את המונחים:
> 🎓 איך אנו יוצרים אשכולות קשור מאוד לאופן בו אנו אוספים את נקודות הנתונים לקבוצות. בואו נפרק קצת אוצר מילים:
>
> 🎓 ['טרנסדוקטיבי' מול 'אינדוקטיבי'](https://wikipedia.org/wiki/Transduction_(machine_learning))
> 🎓 ['טראנסדוקטיבי' מול 'אינדוקטיבי'](https://wikipedia.org/wiki/Transduction_(machine_learning))
>
> הסקה טרנסדוקטיבית נגזרת ממקרים שנצפו באימון שממופים למקרים ספציפיים בבדיקה. הסקה אינדוקטיבית נגזרת ממקרים באימון שממופים לכללים כלליים שמיושמים רק לאחר מכן על מקרים בבדיקה.
> הסקת מסקנות טראנסדוקטיבית נגזרת ממקרים שנצפו באימון אשר ממופים למקרים ספציפיים במבחן. הסקת מסקנות אינדוקטיבית נגזרת ממקרים של אימון הממופים לחוקים כלליים, שאז בלבד מיושמים על מקרים במבחן.
>
> דוגמה: דמיינו שיש לכם מערך נתונים שמסומן רק באופן חלקי. חלק מהפריטים הם 'תקליטים', חלק 'דיסקים', וחלק ריקים. המשימה שלכם היא לספק תוויות לריקים. אם תבחרו בגישה אינדוקטיבית, תאמנו מודל שמחפש 'תקליטים' ו'דיסקים', ותיישמו את התוויות הללו על הנתונים הלא מתויגים. גישה זו תתקשה לסווג פריטים שהם למעשה 'קלטות'. גישה טרנסדוקטיבית, לעומת זאת, מתמודדת עם נתונים לא ידועים בצורה יעילה יותר כשהיא עובדת על קיבוץ פריטים דומים יחד ואז מיישמת תווית לקבוצה. במקרה זה, הקבוצות עשויות לשקף 'דברים מוזיקליים עגולים' ו'דברים מוזיקליים מרובעים'.
> דוגמה: דמיינו שיש לכם מערך נתונים שהוא מתויג חלקית. כמה דברים הם 'תקליטים', כמה 'תקליטורים', וכמה ריקים. תפקידכם לספק תוויות לריקים. אם תבחרו בגישה אינדוקטיבית, תאמנו מודל שיחפש 'תקליטים' ו'תקליטורים' ויחיל את התוויות הללו על הנתונים ללא תוויות. גישה זו תתקשה לסווג דברים שהם למעשה 'קסטות'. לעומת זאת, גישה טראנסדוקטיבית מטפלת בנתונים הלא ידועים בצורה יעילה יותר כשמטרתה לקבץ פריטים דומים ביחד ואז להחיל תווית על קבוצה. במקרה זה, האשכולות עשויים לשקף 'דברים מוזיקליים עגולים' ו'דברים מוזיקליים מרובעים'.
>
> 🎓 ['גיאומטריה לא שטוחה' מול 'שטוחה'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
> 🎓 ['גאומטריה לא שטוחה' מול 'שטוחה'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
>
> נגזר מהמונחים המתמטיים, גיאומטריה לא שטוחה מול שטוחה מתייחסת למדידת המרחקים בין נקודות על ידי שיטות גיאומטריות 'שטוחות' ([אוקלידיות](https://wikipedia.org/wiki/Euclidean_geometry)) או 'לא שטוחות' (לא אוקלידיות).
> מושגים מתמטיים, גאומטריה לא שטוחה מול שטוחה מתייחסת למדידת מרחקים בין נקודות בשיטות גאומטריות 'שטוחות' ([אוקלידיות](https://wikipedia.org/wiki/Euclidean_geometry)) או 'לא שטוחות' (לא אוקלידיות).
>
>'שטוחה' בהקשר זה מתייחסת לגיאומטריה אוקלידית (חלקים ממנה נלמדים כגיאומטריה 'מישורית'), ו'לא שטוחה' מתייחסת לגיאומטריה לא אוקלידית. מה הקשר בין גיאומטריה ללמידת מכונה? ובכן, כשני תחומים שמבוססים על מתמטיקה, חייבת להיות דרך משותפת למדוד מרחקים בין נקודות בקבוצות, וזה יכול להיעשות בצורה 'שטוחה' או 'לא שטוחה', תלוי בטבע הנתונים. [מרחקים אוקלידיים](https://wikipedia.org/wiki/Euclidean_distance) נמדדים כאורך של קטע קו בין שתי נקודות. [מרחקים לא אוקלידיים](https://wikipedia.org/wiki/Non-Euclidean_geometry) נמדדים לאורך עקומה. אם הנתונים שלכם, כשהם מוצגים, נראים כאילו אינם קיימים על מישור, ייתכן שתצטרכו להשתמש באלגוריתם מיוחד כדי להתמודד איתם.
>'שטוחה' בהקשר זה מתייחסת לגאומטריה אוקלידית (חלקים ממנה נלמדים כגאומטריית מישור), ו'לא שטוחה' מתייחסת לגאומטריה לא אוקלידית. מה הקשר בין גאומטריה ללמידת מכונה? בתחומים שהם שורשיים במתמטיקה, יש צורך במידה משותפת למדידת מרחקים בין נקודות באשכולות, וזה יכול להתבצע בצורה 'שטוחה' או 'לא שטוחה', בהתאם לטבע הנתונים. [מרחקים אוקלידיים](https://wikipedia.org/wiki/Euclidean_distance) נמדדים כאורך קטע קו בין שתי נקודות. [מרחקים לא אוקלידיים](https://wikipedia.org/wiki/Non-Euclidean_geometry) נמדדים לאורך עקומה. אם הנתונים שלכם, כפי שמוצגים, נראים כאילו אינם נמצאים במישור, ייתכן שתצטרכו להשתמש באלגוריתם מיוחד כדי לטפל בהם.
>

> אינפוגרפיקה מאת [Dasani Madipalli](https://twitter.com/dasani_decoded)
> 
> אינפוגרפיקה מאת [דאסאני מדייפאלי](https://twitter.com/dasani_decoded)
> קבוצות מוגדרות על ידי מטריצת המרחקים שלהן, כלומר המרחקים בין נקודות. מרחק זה יכול להימדד בכמה דרכים. קבוצות אוקלידיות מוגדרות על ידי ממוצע ערכי הנקודות, ומכילות 'centroid' או נקודת מרכז. המרחקים נמדדים כך לפי המרחק ל-centroid. מרחקים לא אוקלידיים מתייחסים ל'clustroids', הנקודה הקרובה ביותר לנקודות אחרות. Clustroids בתורם יכולים להיות מוגדרים בדרכים שונות.
> אשכולות מוגדרים על ידי מטריצת המרחקים שלהם, לדוגמה המרחקים בין נקודות. מרחק זה יכול להימדד בדרכים שונות. אשכולות אוקלידיים מוגדרים על פי הממוצע של ערכי הנקודות, ומכילים 'צנטרואיד' או נקודת מרכז. המרחקים נמדדים אפוא לפי המרחק לצנטרואיד זה. מרחקים לא אוקלידיים מתייחסים ל'קלוסטרואידים', הנקודה הקרובה ביותר לנקודות אחרות. קלוסטרואידים מוגדרים במספר דרכים שונות.
> [קיבוץ מוגבל](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) מכניס 'למידה חצי מפוקחת' לשיטה ללא פיקוח זו. היחסים בין נקודות מסומנים כ'לא ניתן לקשר' או 'חייב לקשר' כך שכמה כללים נכפים על מערך הנתונים.
> [אשכולות מוגבלים](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) מכניסים למידה 'חצי מפוקחת' לשיטה הבלתי מפוקחת הזו. היחסים בין נקודות מסומנים כ'אי-קישור' או 'חייב-קישור', כך שחלק מהחוקים מוחלים על מערך הנתונים.
>
>דוגמה: אם אלגוריתם משוחרר על אצווה של נתונים לא מתויגים או חצי מתויגים, הקבוצות שהוא יוצר עשויות להיות באיכות ירודה. בדוגמה לעיל, הקבוצות עשויות לקבץ 'דברים מוזיקליים עגולים', 'דברים מוזיקליים מרובעים', 'דברים משולשים' ו'עוגיות'. אם ניתנים כמה מגבלות, או כללים לעקוב אחריהם ("הפריט חייב להיות עשוי מפלסטיק", "הפריט צריך להיות מסוגל להפיק מוזיקה") זה יכול לעזור 'להגביל' את האלגוריתם לקבל החלטות טובות יותר.
> דוגמה: אם אלגוריתם ישוחרר על אוסף נתונים ללא תוויות או חצי מתויג, האשכולות שהוא מייצר עשויים להיות באיכות נמוכה. בדוגמה שלמעלה, האשכולות עשויים לקבץ 'דברים מוזיקליים עגולים', 'דברים מוזיקליים מרובעים', 'דברים משולשים' ו'עוגיות'. אם ניתן לו מגבלות או חוקים לעקוב אחריהם ("הפריט חייב להיות מפלסטיק", "הפריט צריך להיות מסוגל להפיק מוזיקה") זה יכול לעזור 'להגביל' את האלגוריתם לבחור טוב יותר.
>
> 🎓 'צפיפות'
>
> נתונים שהם 'רועשים' נחשבים ל'צפופים'. המרחקים בין נקודות בכל אחת מהקבוצות שלהם עשויים להוכיח, בבדיקה, שהם צפופים יותר או פחות, או 'עמוסים' ולכן נתונים אלה צריכים להיות מנותחים עם שיטת הקיבוץ המתאימה. [מאמר זה](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) מדגים את ההבדל בין שימוש בקיבוץ K-Means לבין אלגוריתמים של HDBSCAN לחקר מערך נתונים רועש עם צפיפות קבוצות לא אחידה.
> נתונים שהם 'רועשים' נחשבים כ'צפופים'. המרחקים בין הנקודות בכל אשכול עומדים למבחן כיותר או פחות צפופים, או 'צפופים' ולכן יש לנתח את הנתונים האלו עם שיטת אשכולות מתאימה. [מאמר זה](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) מדגים את ההבדל בין שימוש באשכול K-Means לעומת אלגוריתמי HDBSCAN לחקר מערך רועש עם צפיפות אשכולות משתנה.
## אלגוריתמי קיבוץ
## אלגוריתמים של אשכולות
ישנם מעל 100 אלגוריתמי קיבוץ, והשימוש בהם תלוי בטבע הנתונים שבידכם. בואו נדון בכמה מהעיקריים:
ישנם מעל 100 אלגוריתמים לאשכולות, והשימוש בהם תלוי בטבע הנתונים. בואו נדון בכמה מהעיקריים:
- **קיבוץ היררכי**. אם אובייקט מסווג לפי קרבתו לאובייקט סמוך, ולא לאחד רחוק יותר, קבוצות נוצרות על בסיס המרחק של חבריהן אל ומאובייקטים אחרים. הקיבוץ האגרומרטיבי של Scikit-learn הוא היררכי.
- **אשכול היררכי**. אם אובייקט מסווג על ידי קרבתו לאובייקט סמוך יותר, ולא לאחד רחוק יותר, נוצרים אשכולות על בסיס המרחק בין חבריו לאובייקטים אחרים. אשכול אגרגטיבי של Scikit-learn הוא היררכי.
> אינפוגרפיקה מאת [דאסאני מדייפאלי](https://twitter.com/dasani_decoded)
- **קיבוץ לפי מרכז**. אלגוריתם פופולרי זה דורש בחירה של 'k', או מספר הקבוצות שיש ליצור, ולאחר מכן האלגוריתם קובע את נקודת המרכז של קבוצה ואוסף נתונים סביב אותה נקודה. [קיבוץ K-means](https://wikipedia.org/wiki/K-means_clustering) הוא גרסה פופולרית של קיבוץ לפי מרכז. המרכז נקבע לפי הממוצע הקרוב ביותר, ומכאן השם. המרחק המרובע מהקבוצה ממוזער.
- **אשכול צנטרואיד**. אלגוריתם פופולרי זה מחייב לבחור 'k', או מספר האשכולות שצריך ליצור, לאחר מכן האלגוריתם קובע את נקודת המרכז של אשכול ואוסף סביבו נתונים. [אשכול K-means](https://wikipedia.org/wiki/K-means_clustering) הוא גרסה פופולרית של אשכולות צנטרואיד. המרכז נקבע לפי הממוצע הקרוב ביותר, ולכן השם. מרחק מרובע מהאשכול מוקטן.
> אינפוגרפיקה מאת [דאסאני מדייפאלי](https://twitter.com/dasani_decoded)
- **קיבוץ מבוסס התפלגות**. מבוסס על מודלים סטטיסטיים, קיבוץ מבוסס התפלגות מתמקד בקביעת ההסתברות שנקודת נתונים שייכת לקבוצה, ומקצה אותה בהתאם. שיטות תערובת גאוסיאנית שייכות לסוג זה.
- **אשכול מבוסס התפלגות**. מבוסס על מודלים סטטיסטיים, אשכול מבוסס התפלגות מתמקד בקביעת ההסתברות שנקודת נתונים שייכת לאשכול, ומקצה אותה בהתאם. שיטות תערובת גאוס שייכות לסוג זה.
- **קיבוץ מבוסס צפיפות**. נקודות נתונים מוקצות לקבוצות על בסיס צפיפותן, או התאגדותן זו סביב זו. נקודות נתונים רחוקות מהקבוצה נחשבות לחריגות או רעש. DBSCAN, Mean-shift ו-OPTICS שייכות לסוג זה של קיבוץ.
- **אשכול מבוסס צפיפות**. נקודות נתונים מוקצות לאשכולות על פי צפיפותן, או סידורן סביב זו. נקודות נתונים רחוקות מהקבוצה נחשבות לחריגות או לרעש. DBSCAN, Mean-shift ו-OPTICS שייכים לסוג אשכולות זה.
- **קיבוץ מבוסס רשת**. עבור מערכי נתונים רב-ממדיים, נוצרת רשת והנתונים מחולקים בין תאי הרשת, ובכך נוצרים קבוצות.
- **אשכול רשתית**. למערכי נתונים רב-ממדיים, נוצרת רשת והנתונים מתחלקים בין התאים ברשת, ובכך נוצרים אשכולות.
## תרגיל - קבצו את הנתונים שלכם
## תרגיל - אשכולו את הנתונים שלך
קיבוץ כטכניקה נעזר מאוד בהדמיה נכונה, אז בואו נתחיל בהדמיה של נתוני המוזיקה שלנו. תרגיל זה יעזור לנו להחליט אילו משיטות הקיבוץ נוכל להשתמש בצורה היעילה ביותר עבור טבע הנתונים הללו.
אשכולות כטכניקה מקבלים עזרה רבה מהדמיה מתאימה, אז בואו נתחיל עם הדמיית נתוני המוזיקה שלנו. תרגיל זה יעזור לנו להחליט איזו מהשיטות של אשכולות נשתמש בצורה היעילה ביותר לטבע נתונים זה.
1. פתחו את הקובץ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) בתיקייה זו.
1. ייבאו את חבילת `Seaborn` להדמיה טובה של נתונים.
1. ייבאו את חבילת `Seaborn` להדמיית נתונים טובה.
```python
!pip install seaborn
```
1. הוסיפו את נתוני השירים מתוך [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). טענו מסגרת נתונים עם מידע על השירים. התכוננו לחקור את הנתונים הללו על ידי ייבוא הספריות והצגת הנתונים:
1. הוסיפו את נתוני השירים מתוך [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). טענו מסגרת נתונים עם מידע על השירים. התכוננו לחקור נתונים אלו על ידי ייבוא ספריות והצגת הנתונים:
```python
import matplotlib.pyplot as plt
@ -120,17 +120,17 @@
df.head()
```
בדקו את השורות הראשונות של הנתונים:
בדקו את שורות הנתונים הראשונות:
| | שם | אלבום | אמן | ז'אנר מוביל של האמן | תאריך יציאה | אורך | פופולריות | ריקודיות | אקוסטיות | אנרגיה | אינסטרומנטליות | חיות | עוצמה | דיבוריות | טמפו | חתימת זמן |
> 🤔 אם אנחנו עובדים עם קיבוץ, שיטה לא מפוקחת שאינה דורשת נתונים מתויגים, מדוע אנחנו מציגים את הנתונים עם תוויות? בשלב חקר הנתונים, הם שימושיים, אך הם אינם הכרחיים לפעולת האלגוריתמים של הקיבוץ. אפשר פשוט להסיר את כותרות העמודות ולהתייחס לנתונים לפי מספרי עמודות.
> 🤔 אם אנו עובדים עם אשכולות, שיטה לא מפוקחת שאינה דורשת נתונים מתויגים, מדוע אנו מציגים את הנתונים עם תוויות? בשלב חקר הנתונים, הן מועילות, אך אינן הכרחיות לאלגוריתמי האשכולות לפעול. ניתן פשוט להסיר את כותרות העמודות ולהתייחס לנתונים לפי מספר עמודה.
הסתכל על הערכים הכלליים של הנתונים. שים לב שהפופולריות יכולה להיות '0', מה שמראה שירים שאין להם דירוג. בואו נסיר אותם בקרוב.
הסתכלו על הערכים הכלליים של הנתונים. שימו לב ש-popularity יכול להיות '0', מה שמראה שירים ללא דירוג. נחליף אותם בקרוב.
1. השתמש בגרף עמודות כדי לגלות את הז'אנרים הפופולריים ביותר:
1. השתמש ב-barplot כדי לגלות את הז'אנרים הפופולריים ביותר:
1. שלושת הז'אנרים המובילים שולטים בבירור במאגר הנתונים הזה. בואו נתמקד ב-`afro dancehall`, `afropop`, ו-`nigerian pop`, בנוסף נסנן את מאגר הנתונים כדי להסיר כל דבר עם ערך פופולריות של 0 (כלומר הוא לא סווג עם פופולריות במאגר הנתונים וניתן להתייחס אליו כרעש למטרותינו):
1. עד כה, שלושת הז'אנרים המובילים שולטים במערך נתונים זה. בואו נתמקד ב־`afro dancehall`, `afropop`, ו-`nigerian pop`, בנוסף נסנן את מערך הנתונים להסיר כל ערך עם popularit 0 (כלומר לא סווג עם פופולריות במערך הנתונים וניתן לראות בו כרעש למטרותינו):
ההתאמה החזקה היחידה היא בין `energy` ל-`loudness`, מה שלא מפתיע במיוחד, בהתחשב בכך שמוזיקה רועשת היא בדרך כלל די אנרגטית. מלבד זאת, ההתאמות יחסית חלשות. יהיה מעניין לראות מה אלגוריתם קיבוץ יכול לעשות עם הנתונים האלה.
המתאם היחיד החזק הוא בין `energy`ו-`loudness`, שזה לא מפתיע מדי, בהתחשב בכך שמוזיקה רועשת בדרך כלל די אנרגטית. מעבר לכך, המתאמים יחסית חלשים. יהיה מעניין לראות מה אלגוריתם אשכולות יכול ללמוד מהנתונים האלה.
> 🎓 שים לב שהתאמה אינה מעידה על סיבתיות! יש לנו הוכחה להתאמה אך אין הוכחה לסיבתיות. [אתר משעשע](https://tylervigen.com/spurious-correlations) מציג כמה חזותיות שמדגישות את הנקודה הזו.
> 🎓 שימו לב שמתאם לא מורה על סיבתיות! יש לנו הוכחה למתאם אך לא הוכחה לסיבתיות. אתר אינטרנט משעשע [amusing web site](https://tylervigen.com/spurious-correlations) מכיל כמה ויזואליזציות המדגישות נקודה זו.
האם יש התכנסות במאגר הנתונים הזה סביב הפופולריות הנתפסת של שיר ורמת הריקודיות שלו? גריד פייסט מראה שיש מעגלים קונצנטריים שמתיישרים, ללא קשר לז'אנר. האם ייתכן שהטעם הניגרי מתכנס ברמת ריקודיות מסוימת עבור הז'אנר הזה?
האם יש התכנסות במערך נתונים זה סביב הפופולריות הנתפסת של שיר ויכולת הריקוד שלו? FacetGrid מראה שיש מעגלים מתרכזים שמסתדרים יחד, ללא קשר לז'אנר. האם ייתכן שהטעמים הניגריים מתכנסים ברמת ריקוד מסוימת לז'אנר הזה?
✅ נסה נקודות נתונים שונות (אנרגיה, עוצמה, דיבוריות) ועוד או ז'אנרים מוזיקליים שונים. מה תוכל לגלות? הסתכל בטבלת `df.describe()` כדי לראות את ההתפלגות הכללית של נקודות הנתונים.
✅ נסו נקודות נתונים שונות (energy, loudness, speechiness) וז'אנרים מוזיקליים נוספים או שונים. מה תוכלו לגלות? הבט בטבלת `df.describe()` כדי לראות את התפלגות הנקודות הכללית.
### תרגיל - התפלגות נתונים
האם שלושת הז'אנרים האלה שונים באופן משמעותי בתפיסת הריקודיות שלהם, בהתבסס על הפופולריות שלהם?
האם שלושת הז'אנרים האלה שונים משמעותית בתפיסת יכולת הריקוד שלהם, בהתבסס על הפופולריות שלהם?
1. בדוק את התפלגות הנתונים של שלושת הז'אנרים המובילים שלנו עבור פופולריות וריקודיות לאורך ציר x ו-y נתון.
1. בדוק את התפלגות הנתונים של שלושת הז'אנרים המובילים עבור פופולריות ו-danceability לאורך צירי x ו-y נתונים.
```python
sns.set_theme(style="ticks")
@ -292,13 +292,13 @@
)
```
תוכל לגלות מעגלים קונצנטריים סביב נקודת התכנסות כללית, שמראים את התפלגות הנקודות.
תוכלו לגלות מעגלים מתרכזים סביב נקודת התכנסות כללית, המציגים התפלגות נקודות.
> 🎓 שים לב שהדוגמה הזו משתמשת בגרף KDE (Kernel Density Estimate) שמייצג את הנתונים באמצעות עקומת צפיפות הסתברות רציפה. זה מאפשר לנו לפרש נתונים כשעובדים עם התפלגויות מרובות.
> 🎓 שימו לב שהדוגמה הזאת משתמשת בגרף KDE (Kernel Density Estimate) שמייצג את הנתונים באמצעות עקומת צפיפות הסתברותית רציפה. זה מאפשר לנו לפרש נתונים כאשר עובדים עם התפלגויות מרובות.
באופן כללי, שלושת הז'אנרים מתיישרים באופן רופף מבחינת הפופולריות והריקודיות שלהם. קביעת קבוצות בנתונים שמתיישרים באופן רופף תהיה אתגר:
באופן כללי, שלושת הז'אנרים מתיישבים באופן רופף מבחינת הפופולריות ויכולת הריקוד שלהם. זיהוי אשכולות בנתונים המתיישבים באופן רופף זה יהיה אתגר:
באופן כללי, עבור קיבוץ, ניתן להשתמש בגרפי פיזור כדי להראות קבוצות של נתונים, כך שלשלוט בסוג זה של ויזואליזציה זה מאוד שימושי. בשיעור הבא, ניקח את הנתונים המסוננים האלה ונשתמש בקיבוץ k-means כדי לגלות קבוצות בנתונים האלה שנראה כי חופפות בדרכים מעניינות.
באופן כללי, עבור אשכולות, ניתן להשתמש בגרפי פיזור כדי להראות אשכולות של נתונים, ולכן שליטה בסוג ויזואליזציה זה שימושית מאוד. בשיעור הבא, נשתמש בנתונים המסוננים האלה וניישם אשכולות k-means כדי לגלות קבוצות בנתונים אלה שנראות כמתחברות בדרכים מעניינות.
---
## 🚀אתגר
בהכנה לשיעור הבא, צור תרשים על אלגוריתמי הקיבוץ השונים שתוכל לגלות ולהשתמש בהם בסביבת ייצור. אילו סוגי בעיות הקיבוץ מנסה לפתור?
בהכנה לשיעור הבא, צרו תרשים על האלגוריתמים השונים לאשכולות שאתם עשויים לגלות ולהשתמש בהם בסביבת ייצור. אילו סוגי בעיות האלגוריתם אשכולות מנסה לפתור?
## [שאלון לאחר השיעור](https://ff-quizzes.netlify.app/en/ml/)
## [מבחן לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/)
## סקירה ולימוד עצמי
## סקירה ולמידה עצמית
לפני שתיישם אלגוריתמי קיבוץ, כפי שלמדנו, זה רעיון טוב להבין את טבע מאגר הנתונים שלך. קרא עוד על הנושא [כאן](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
לפני שאתם מיישמים אלגוריתמים של אשכולות, כפי שלמדנו, כדאי להבין את טבע מערך הנתונים שלכם. קראו עוד בנושא זה [כאן](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html).
[מאמר מועיל זה](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) עובר על הדרכים השונות שבהן אלגוריתמי קיבוץ שונים מתנהגים, בהתחשב בצורות נתונים שונות.
[מאמר מועיל זה](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) מלווה אתכם בדרכים שונות שבהן אלגוריתמים שונים לאשכולות מתנהגים, בהתחשב בצורות נתונים שונות.
## משימה
## מטלה
[חקר ויזואליזציות אחרות עבור קיבוץ](assignment.md)
[חקור ויזואליזציות נוספות לאשכולות](assignment.md)
---
**כתב ויתור**:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**כתב ויתור**:
מסמך זה תורגם באמצעות שירות תרגום אוטומטי [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. יש להחשיב את המסמך המקורי בשפתו הטבעית כמקור הסמכות. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אדם. אנו לא אחראים לכל אי-הבנה או פירוש שגוי הנובע מהשימוש בתרגום זה.
[](https://youtu.be/6mSx_KJxcHI "ML voor beginners - Introductie tot Machine Learning voor Beginners")
[](https://youtu.be/6mSx_KJxcHI "ML for beginners - Introduction to Machine Learning for Beginners")
> 🎥 Klik op de afbeelding hierboven voor een korte video over deze les.
> 🎥 Klik op de afbeelding hierboven voor een korte video waarin deze les wordt behandeld.
Welkom bij deze cursus over klassieke machine learning voor beginners! Of je nu helemaal nieuw bent op dit gebied, of een ervaren ML-practitioner die zijn kennis wil opfrissen, we zijn blij dat je meedoet! We willen een vriendelijke startplek creëren voor je ML-studie en staan open voor jouw [feedback](https://github.com/microsoft/ML-For-Beginners/discussions).
Welkom bij deze cursus over klassieke machine learning voor beginners! Of je nu helemaal nieuw bent op dit gebied, of een ervaren ML-beoefenaar die een onderdeel wil opfrissen, we zijn blij dat je met ons meedoet! We willen een vriendelijke startplek creëren voor jouw ML-studie en we horen graag je [feedback](https://github.com/microsoft/ML-For-Beginners/discussions), waar we op reageren en waar mogelijk verwerken.
[](https://youtu.be/h0e2HAPTGF4 "Introductie tot ML")
[](https://youtu.be/h0e2HAPTGF4 "Introduction to ML")
> 🎥 Klik op de afbeelding hierboven voor een video: MIT's John Guttag introduceert machine learning
---
## Aan de slag met machine learning
Voordat je begint met deze cursus, moet je je computer instellen om lokaal notebooks te kunnen draaien.
Voordat je begint met dit curriculum, moet je je computer instellen en klaar maken om notebooks lokaal uit te voeren.
- **Configureer je computer met deze video's**. Gebruik de volgende links om te leren [hoe je Python installeert](https://youtu.be/CXZYvNRIAKM) op je systeem en [hoe je een teksteditor instelt](https://youtu.be/EU8eayHWoZg) voor ontwikkeling.
- **Leer Python**. Het wordt ook aanbevolen om een basisbegrip te hebben van [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), een programmeertaal die nuttig is voor datawetenschappers en die we in deze cursus gebruiken.
- **Leer Node.js en JavaScript**. We gebruiken ook een paar keer JavaScript in deze cursus bij het bouwen van webapps, dus je moet [node](https://nodejs.org) en [npm](https://www.npmjs.com/) installeren, evenals [Visual Studio Code](https://code.visualstudio.com/) beschikbaar hebben voor zowel Python- als JavaScript-ontwikkeling.
- **Maak een GitHub-account aan**. Aangezien je ons hier op [GitHub](https://github.com) hebt gevonden, heb je misschien al een account, maar zo niet, maak er dan een aan en fork deze cursus om zelf te gebruiken. (Geef ons gerust een ster, ook 😊)
- **Configureer je machine met deze video's**. Gebruik de volgende links om te leren [hoe je Python installeert](https://youtu.be/CXZYvNRIAKM) op je systeem en [een teksteditor instelt](https://youtu.be/EU8eayHWoZg) voor ontwikkeling.
- **Leer Python**. Het wordt ook aanbevolen om een basiskennis te hebben van [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), een programmeertaal die nuttig is voor datawetenschappers en die wij in deze cursus gebruiken.
- **Leer Node.js en JavaScript**. We gebruiken JavaScript een aantal keren in deze cursus bij het bouwen van webapps, dus je moet [node](https://nodejs.org) en [npm](https://www.npmjs.com/) geïnstalleerd hebben, evenals [Visual Studio Code](https://code.visualstudio.com/) beschikbaar voor zowel Python- als JavaScript-ontwikkeling.
- **Maak een GitHub-account aan**. Aangezien je ons hier hebt gevonden op [GitHub](https://github.com), heb je misschien al een account, maar zo niet, maak er een aan en fork dan dit curriculum om het zelf te gebruiken. (Geef ons gerust een sterretje, ook 😊)
- **Verken Scikit-learn**. Maak jezelf vertrouwd met [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), een set ML-bibliotheken die we in deze lessen gebruiken.
---
## Wat is machine learning?
De term 'machine learning' is een van de meest populaire en vaak gebruikte termen van vandaag. Er is een aanzienlijke kans dat je deze term minstens één keer hebt gehoord als je enige bekendheid hebt met technologie, ongeacht in welk domein je werkt. De werking van machine learning is echter voor de meeste mensen een mysterie. Voor een beginner in machine learning kan het onderwerp soms overweldigend aanvoelen. Daarom is het belangrijk om te begrijpen wat machine learning eigenlijk is en er stap voor stap over te leren, aan de hand van praktische voorbeelden.
De term 'machine learning' is een van de populairste en meest gebruikte termen van vandaag. De kans is aanzienlijk dat je deze term al minstens één keer hebt gehoord als je enige affiniteit hebt met technologie, ongeacht in welk domein je werkt. De werking van machine learning is echter voor de meeste mensen een mysterie. Voor een beginner in machine learning kan het onderwerp soms overweldigend voelen. Daarom is het belangrijk om te begrijpen wat machine learning eigenlijk is, en het stap voor stap te leren, aan de hand van praktische voorbeelden.
> Google Trends toont de recente 'hypecurve' van de term 'machine learning'
---
## Een mysterieus universum
## Een mysterieuze universum
We leven in een universum vol fascinerende mysteries. Grote wetenschappers zoals Stephen Hawking, Albert Einstein en vele anderen hebben hun leven gewijd aan het zoeken naar betekenisvolle informatie die de mysteries van de wereld om ons heen onthult. Dit is de menselijke conditie van leren: een menselijk kind leert nieuwe dingen en ontdekt de structuur van zijn wereld jaar na jaar terwijl het opgroeit tot volwassenheid.
We leven in een universum vol fascinerende mysteries. Grote wetenschappers zoals Stephen Hawking, Albert Einstein en vele anderen hebben hun leven gewijd aan het zoeken naar betekenisvolle informatie die de mysteries van de wereld om ons heen ontrafelt. Dit is de menselijke conditie van leren: een menselijk kind leert nieuwe dingen en ontrafelt de structuur van zijn wereld jaar na jaar naarmate het opgroeit tot volwassenheid.
---
## Het brein van een kind
## Het brein van het kind
Het brein en de zintuigen van een kind nemen de feiten van hun omgeving waar en leren geleidelijk de verborgen patronen van het leven, die het kind helpen logische regels te ontwikkelen om de geleerde patronen te identificeren. Het leerproces van het menselijk brein maakt mensen tot de meest geavanceerde levende wezens van deze wereld. Continu leren door verborgen patronen te ontdekken en vervolgens innoveren op die patronen stelt ons in staat om onszelf steeds beter te maken gedurende ons hele leven. Dit leervermogen en evolutiecapaciteit is gerelateerd aan een concept genaamd [hersenenplasticiteit](https://www.simplypsychology.org/brain-plasticity.html). Op een oppervlakkige manier kunnen we enkele motiverende overeenkomsten trekken tussen het leerproces van het menselijk brein en de concepten van machine learning.
Het brein en de zintuigen van een kind nemen de feiten van hun omgeving waar en leren geleidelijk de verborgen patronen van het leven, die het kind helpen logische regels te vormen om geleerde patronen te identificeren. Het leerproces van het menselijk brein maakt mensen tot het meest verfijnde levende wezen op deze wereld. Continu leren door verborgen patronen te ontdekken en daarna te innoveren op basis van die patronen stelt ons in staat onszelf beter en beter te maken gedurende ons hele leven. Deze leer-capaciteit en ontwikkelende vaardigheid hangen samen met een concept dat [hersenneuroplasticiteit](https://www.simplypsychology.org/brain-plasticity.html) wordt genoemd. Op het oog kunnen we enkele motiverende gelijkenissen trekken tussen het leerproces van het menselijke brein en de concepten van machine learning.
---
## Het menselijk brein
## Het menselijke brein
Het [menselijk brein](https://www.livescience.com/29365-human-brain.html) neemt dingen waar uit de echte wereld, verwerkt de waargenomen informatie, neemt rationele beslissingen en voert bepaalde acties uit op basis van de omstandigheden. Dit noemen we intelligent gedrag. Wanneer we een facsimile van het intelligente gedragsproces programmeren in een machine, noemen we dat kunstmatige intelligentie (AI).
Het [menselijke brein](https://www.livescience.com/29365-human-brain.html) neemt zaken waar uit de echte wereld, verwerkt de waargenomen informatie, neemt rationele beslissingen en voert bepaalde acties uit op basis van omstandigheden. Dit noemen we intelligent gedrag. Wanneer we een nabootsing van dit intelligente gedragsproces programmeren voor een machine, noemen we dat kunstmatige intelligentie (AI).
---
## Enkele terminologie
## Enkele terminologieën
Hoewel de termen soms door elkaar worden gehaald, is machine learning (ML) een belangrijk onderdeel van kunstmatige intelligentie. **ML houdt zich bezig met het gebruik van gespecialiseerde algoritmen om betekenisvolle informatie te ontdekken en verborgen patronen te vinden in waargenomen data om het rationele besluitvormingsproces te ondersteunen**.
Hoewel de termen door elkaar gehaald kunnen worden, is machine learning (ML) een belangrijk deelgebied van kunstmatige intelligentie. **ML houdt zich bezig met het gebruik van gespecialiseerde algoritmen om betekenisvolle informatie te ontdekken en verborgen patronen te vinden in waargenomen data om zo het rationele besluitvormingsproces te ondersteunen**.
---
## AI, ML, Deep Learning


> Een diagram dat de relaties toont tussen AI, ML, deep learning en data science. Infographic door [Jen Looper](https://twitter.com/jenlooper) geïnspireerd door [deze grafiek](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
> Een diagram dat de relaties toont tussen AI, ML, deep learning en data science. Infographic door [Jen Looper](https://twitter.com/jenlooper), geïnspireerd door [deze afbeelding](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
---
## Concepten die we behandelen
## Concepten die behandeld worden
In deze cursus behandelen we alleen de kernconcepten van machine learning die een beginner moet kennen. We behandelen wat we 'klassieke machine learning' noemen, voornamelijk met behulp van Scikit-learn, een uitstekende bibliotheek die veel studenten gebruiken om de basis te leren. Om bredere concepten van kunstmatige intelligentie of deep learning te begrijpen, is een sterke fundamentele kennis van machine learning onmisbaar, en die willen we hier aanbieden.
In dit curriculum behandelen we alleen de kernconcepten van machine learning die een beginner moet kennen. We behandelen wat we 'klassieke machine learning' noemen, voornamelijk met Scikit-learn, een uitstekende bibliotheek die veel studenten gebruiken om de basis te leren. Om bredere concepten van kunstmatige intelligentie of deep learning te begrijpen, is een sterke fundamentele kennis van machine learning onmisbaar, en daarom bieden we die hier aan.
---
## In deze cursus leer je:
@ -75,13 +75,13 @@ In deze cursus behandelen we alleen de kernconcepten van machine learning die ee
- kernconcepten van machine learning
- de geschiedenis van ML
- ML en eerlijkheid
- regressie ML-technieken
- classificatie ML-technieken
- clustering ML-technieken
- natuurlijke taalverwerking ML-technieken
- tijdreeksvoorspelling ML-technieken
- regressiemethoden in ML
- classificatiemethoden in ML
- clusteringmethoden in ML
- natural language processing (NLP) ML-technieken
- voorspellingen bij tijdreeksen met ML
- reinforcement learning
- toepassingen van ML in de echte wereld
- praktische toepassingen van ML
---
## Wat we niet behandelen
@ -90,61 +90,68 @@ In deze cursus behandelen we alleen de kernconcepten van machine learning die ee
- neurale netwerken
- AI
Om de leerervaring te verbeteren, vermijden we de complexiteit van neurale netwerken, 'deep learning' - het bouwen van modellen met meerdere lagen met behulp van neurale netwerken - en AI, die we in een andere cursus zullen bespreken. We bieden ook een toekomstige data science-cursus aan om ons te richten op dat aspect van dit grotere veld.
Om een betere leerervaring te creëren vermijden we de complexiteiten van neurale netwerken, 'deep learning' – dat wil zeggen meervoudige lagen modelopbouw met neurale netwerken – en AI, welke we in een ander curriculum bespreken. Ook zullen we binnenkort een data science curriculum aanbieden dat zich richt op dat aspect van dit bredere vakgebied.
---
## Waarom machine learning studeren?
## Waarom machine learning bestuderen?
Machine learning wordt vanuit een systeemperspectief gedefinieerd als het creëren van geautomatiseerde systemen die verborgen patronen uit data kunnen leren om te helpen bij het nemen van intelligente beslissingen.
Machine learning wordt, vanuit een systeem-perspectief, gedefinieerd als het creëren van geautomatiseerde systemen die verborgen patronen kunnen leren uit data om te helpen bij het maken van intelligente beslissingen.
Deze motivatie is losjes geïnspireerd door hoe het menselijk brein bepaalde dingen leert op basis van de data die het waarneemt uit de buitenwereld.
Deze motivatie is losjes geïnspireerd door hoe het menselijk brein bepaalde dingen leert gebaseerd op de data die het van buiten de wereld waarneemt.
✅ Denk eens na waarom een bedrijf zou willen proberen machine learning-strategieën te gebruiken in plaats van een hard-coded regelsysteem te maken.
✅ Denk eens na waarom een bedrijf machine learning strategieën zou willen gebruiken in plaats van een regelsysteem dat hardcoded is.
---
## Waarom datakwaliteit belangrijk is
Data van hoge kwaliteit verbetert de prestaties van modellen. Slechte of ruisende data kunnen leiden tot onnauwkeurige voorspellingen, zelfs bij gebruik van geavanceerde machine learning algoritmen.
---
## Toepassingen van machine learning
Toepassingen van machine learning zijn tegenwoordig bijna overal en zijn net zo alomtegenwoordig als de data die door onze samenlevingen stroomt, gegenereerd door onze smartphones, verbonden apparaten en andere systemen. Gezien het immense potentieel van geavanceerde machine learning-algoritmen, hebben onderzoekers hun mogelijkheden verkend om multidimensionale en multidisciplinaire problemen uit het echte leven op te lossen met geweldige positieve resultaten.
Toepassingen van machine learning zijn nu bijna overal en zo alomtegenwoordig als de data die door onze samenlevingen stroomt, gegenereerd door onze smartphones, verbonden apparaten en andere systemen. Gezien het immense potentieel van geavanceerde machine learning algoritmen, hebben onderzoekers hun mogelijkheden onderzocht om multidimensionale en multidisciplinaire praktische problemen op te lossen met zeer positieve uitkomsten.
---
## Voorbeelden van toegepaste ML
**Je kunt machine learning op veel manieren gebruiken**:
- Om de kans op ziekte te voorspellen op basis van de medische geschiedenis of rapporten van een patiënt.
- Om de kans op een ziekte te voorspellen aan de hand van de medische geschiedenis of rapporten van een patiënt.
- Om weersgegevens te gebruiken om weersomstandigheden te voorspellen.
- Om de sentimenten van een tekst te begrijpen.
- Om nepnieuws te detecteren en de verspreiding van propaganda te stoppen.
- Om nepnieuws te detecteren om de verspreiding van propaganda tegen te gaan.
Financiën, economie, aardwetenschappen, ruimteonderzoek, biomedische techniek, cognitieve wetenschap en zelfs gebieden binnen de geesteswetenschappen hebben machine learning aangepast om de zware, data-intensieve problemen van hun domein op te lossen.
Financiën, economie, aardwetenschappen, ruimteonderzoek, biomedische techniek, cognitieve wetenschap en zelfs disciplines in de geesteswetenschappen hebben machine learning toegepast om de zware, data-intensieve problemen van hun domein op te lossen.
---
## Conclusie
Machine learning automatiseert het proces van patroonontdekking door betekenisvolle inzichten te vinden uit echte of gegenereerde data. Het heeft zichzelf bewezen als zeer waardevol in zakelijke, gezondheids- en financiële toepassingen, onder andere.
Machine learning automatiseert het proces van patroonontdekking door betekenisvolle inzichten te vinden uit echte of gegenereerde data. Het heeft bewezen zeer waardevol te zijn in bedrijfsleven, gezondheidszorg en financiële toepassingen, onder andere.
In de nabije toekomst zal het begrijpen van de basisprincipes van machine learning een must worden voor mensen uit elk domein vanwege de brede adoptie ervan.
In de nabije toekomst zal het begrijpen van de basisprincipes van machine learning voor mensen uit elk domein een must worden vanwege de brede adoptie.
---
# 🚀 Uitdaging
Schets, op papier of met een online app zoals [Excalidraw](https://excalidraw.com/), jouw begrip van de verschillen tussen AI, ML, deep learning en data science. Voeg enkele ideeën toe over problemen die elk van deze technieken goed kunnen oplossen.
Maak op papier of met een online app zoals [Excalidraw](https://excalidraw.com/) een schets van je begrip van de verschillen tussen AI, ML, deep learning en data science. Voeg enkele ideeën toe van problemen die elk van deze technieken goed kan oplossen.
# [Quiz na de les](https://ff-quizzes.netlify.app/en/ml/)
Om meer te leren over hoe je met ML-algoritmen in de cloud kunt werken, volg dit [Leerpad](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
Wil je meer leren over hoe je met ML-algoritmes in de cloud kunt werken, volg dan deze [Learning Path](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
Volg een [Leerpad](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) over de basisprincipes van ML.
Maak een [Learning Path](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) over de basisprincipes van ML.
---
# Opdracht
[Begin met werken](assignment.md)
[Ga aan de slag](assignment.md)
---
**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 zijn oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**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 moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
Clustering is een type [Ongecontroleerd Leren](https://wikipedia.org/wiki/Unsupervised_learning) dat ervan uitgaat dat een dataset niet gelabeld is of dat de invoer niet gekoppeld is aan vooraf gedefinieerde uitkomsten. Het gebruikt verschillende algoritmen om door niet-gelabelde gegevens te sorteren en groepen te vormen op basis van patronen die het in de gegevens herkent.
Clustering is een type [Ongecontroleerd Leren](https://wikipedia.org/wiki/Unsupervised_learning) dat ervan uitgaat dat een dataset niet gelabeld is of dat de inputs niet gekoppeld zijn aan vooraf gedefinieerde outputs. Het gebruikt verschillende algoritmen om ongelabelde data te sorteren en groepen te maken op basis van patronen die het in de data waarneemt.
[](https://youtu.be/ty2advRiWJM "No One Like You van PSquare")
[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
> 🎥 Klik op de afbeelding hierboven voor een video. Terwijl je machine learning met clustering bestudeert, geniet van wat Nigeriaanse Dance Hall-nummers - dit is een hoog gewaardeerd nummer uit 2014 van PSquare.
> 🎥 Klik op de afbeelding hierboven voor een video. Terwijl je machine learning met clustering bestudeert, geniet van wat Nigeriaanse Dance Hall tracks - dit is een zeer gewaardeerd nummer uit 2014 van PSquare.
## [Quiz voorafgaand aan de les](https://ff-quizzes.netlify.app/en/ml/)
[Clustering](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) is erg nuttig voor data-exploratie. Laten we kijken of het kan helpen trends en patronen te ontdekken in de manier waarop Nigeriaanse luisteraars muziek consumeren.
[Clustering](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) is erg nuttig voor data verkenning. Laten we zien of het kan helpen bij het ontdekken van trends en patronen in de manier waarop Nigeriaanse publieken muziek consumeren.
✅ Neem een minuut de tijd om na te denken over de toepassingen van clustering. In het dagelijks leven gebeurt clustering bijvoorbeeld wanneer je een stapel wasgoed hebt en de kleding van je gezinsleden moet sorteren 🧦👕👖🩲. In data science gebeurt clustering wanneer je probeert de voorkeuren van een gebruiker te analyseren of de kenmerken van een niet-gelabelde dataset te bepalen. Clustering helpt op een bepaalde manier om chaos te begrijpen, zoals een sokkenla.
✅ Neem een minuut om na te denken over de toepassingen van clustering. In het echte leven gebeurt clustering altijd wanneer je een stapel wasgoed hebt en de kleren van je familieleden moet sorteren 🧦👕👖🩲. In datawetenschap gebeurt clustering wanneer je probeert de voorkeuren van een gebruiker te analyseren, of de kenmerken van een ongelabelde dataset te bepalen. Clustering helpt op een bepaalde manier om chaos te begrijpen, zoals een sokkenla.
[](https://youtu.be/esmzYhuFnds "Introductie tot Clustering")
> 🎥 Klik op de afbeelding hierboven voor een video: MIT's John Guttag introduceert clustering.
> 🎥 Klik op de afbeelding hierboven voor een video: John Guttag van MIT introduceert clustering
In een professionele omgeving kan clustering worden gebruikt om zaken zoals marktsegmentatie te bepalen, bijvoorbeeld om te achterhalen welke leeftijdsgroepen welke producten kopen. Een andere toepassing zou anomaliedetectie kunnen zijn, bijvoorbeeld om fraude op te sporen in een dataset van creditcardtransacties. Of je kunt clustering gebruiken om tumoren te identificeren in een reeks medische scans.
In een professionele omgeving kan clustering gebruikt worden om dingen te bepalen zoals marksegmentatie, vaststellen welke leeftijdsgroepen welke artikelen kopen, bijvoorbeeld. Een andere toepassing is anomaliedetectie, bijvoorbeeld om fraude te detecteren in een dataset van creditcardtransacties. Of je zou clustering kunnen gebruiken om tumoren te bepalen in een reeks medische scans.
✅ Denk een minuut na over hoe je clustering 'in het wild' bent tegengekomen, bijvoorbeeld in een bank-, e-commerce- of zakelijke omgeving.
✅ Denk een minuut na over hoe je clustering wellicht bent tegengekomen 'in het wild', in een banking-, e-commerce- of zakelijke omgeving.
> 🎓 Interessant genoeg is clusteranalyse ontstaan in de vakgebieden antropologie en psychologie in de jaren 1930. Kun je je voorstellen hoe het toen werd gebruikt?
> 🎓 Interessant genoeg is clusteranalyse ontstaan in de vakgebieden Antropologie en Psychologie in de jaren 1930. Kun je je voorstellen hoe het toen werd gebruikt?
Een andere toepassing zou kunnen zijn het groeperen van zoekresultaten - bijvoorbeeld door winkellinks, afbeeldingen of recensies. Clustering is nuttig wanneer je een grote dataset hebt die je wilt verkleinen en waarop je meer gedetailleerde analyses wilt uitvoeren. De techniek kan worden gebruikt om meer te leren over gegevens voordat andere modellen worden gebouwd.
Alternatief kun je het gebruiken voor het groeperen van zoekresultaten - bijvoorbeeld op winkellinks, afbeeldingen of recensies. Clustering is nuttig wanneer je een grote dataset hebt die je wilt verkleinen en waarop je meer gedetailleerde analyse wilt uitvoeren, zodat de techniek gebruikt kan worden om over data te leren voordat andere modellen worden geconstrueerd.
✅ Zodra je gegevens zijn georganiseerd in clusters, wijs je ze een cluster-ID toe. Deze techniek kan nuttig zijn om de privacy van een dataset te behouden; je kunt in plaats daarvan verwijzen naar een datapunt via zijn cluster-ID, in plaats van via meer onthullende identificeerbare gegevens. Kun je andere redenen bedenken waarom je een cluster-ID zou gebruiken in plaats van andere elementen van het cluster om het te identificeren?
✅ Zodra je data is georganiseerd in clusters, ken je elk cluster een ID toe, en deze techniek kan handig zijn bij het waarborgen van de privacy van een dataset; je kunt in plaats daarvan naar een datapunt verwijzen via zijn cluster-ID in plaats van met meer onthullende identificeerbare data. Kun je andere redenen bedenken waarom je naar een cluster-ID zou verwijzen in plaats van naar andere elementen van het cluster om het te identificeren?
Verdiep je kennis van clusteringtechnieken in deze [Learn-module](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott).
Verdiep je in clusteringtechnieken in deze [Leer module](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)
## Aan de slag met clustering
[Scikit-learn biedt een breed scala](https://scikit-learn.org/stable/modules/clustering.html) aan methoden om clustering uit te voeren. Het type dat je kiest, hangt af van je gebruikssituatie. Volgens de documentatie heeft elke methode verschillende voordelen. Hier is een vereenvoudigde tabel van de methoden die door Scikit-learn worden ondersteund en hun geschikte gebruikssituaties:
[Scikit-learn biedt een grote reeks](https://scikit-learn.org/stable/modules/clustering.html) methoden om clustering uit te voeren. De keuze hangt af van je gebruikssituatie. Volgens de documentatie heeft elke methode verschillende voordelen. Hier is een vereenvoudigde tabel van de door Scikit-learn ondersteunde methoden en hun toepassingsgebieden:
| BIRCH | grote dataset met uitschieters, inductief |
> 🎓 Hoe we clusters creëren heeft veel te maken met hoe we de datapunten in groepen verzamelen. Laten we wat terminologie uitpakken:
> 🎓 Hoe we clusters maken heeft veel te maken met hoe we de datapunten in groepen verzamelen. Laten we wat vocabulaire uitleggen:
>
> 🎓 ['Transductief' vs. 'inductief'](https://wikipedia.org/wiki/Transduction_(machine_learning))
>
> Transductieve inferentie is afgeleid van waargenomen trainingsgevallen die worden gekoppeld aan specifieke testgevallen. Inductieve inferentie is afgeleid van trainingsgevallen die worden gekoppeld aan algemene regels die pas daarna worden toegepast op testgevallen.
> Transductieve inferentie wordt afgeleid van waargenomen trainingsgevallen die map naar specifieke testgevallen. Inductieve inferentie wordt afgeleid van trainingsgevallen die map naar algemene regels die pas dan worden toegepast op testgevallen.
>
> Een voorbeeld: Stel je hebt een dataset die slechts gedeeltelijk gelabeld is. Sommige dingen zijn 'platen', sommige 'cd's', en sommige zijn blanco. Jouw taak is om labels toe te voegen aan de blanco items. Als je een inductieve aanpak kiest, train je een model dat zoekt naar 'platen' en 'cd's', en pas je die labels toe op je niet-gelabelde gegevens. Deze aanpak zal moeite hebben om dingen te classificeren die eigenlijk 'cassettebandjes' zijn. Een transductieve aanpak daarentegen behandelt deze onbekende gegevens effectiever omdat het werkt om vergelijkbare items samen te groeperen en vervolgens een label toe te passen op een groep. In dit geval kunnen clusters 'ronde muzikale dingen' en 'vierkante muzikale dingen' weerspiegelen.
> Een voorbeeld: Stel je hebt een dataset die slechts gedeeltelijk gelabeld is. Sommige dingen zijn 'platen', andere 'cd's', en sommige zijn leeg. Jouw taak is om labels te geven aan de lege plaatsen. Kies je een inductieve aanpak, dan train je een model op 'platen' en 'cd's' en pas je die labels toe op ongelabelde data. Deze aanpak zal moeite hebben met het classificeren van dingen die eigenlijk 'cassettes' zijn. Een transductieve aanpak daarentegen gaat dit onbekende data effectiever aan omdat het werkt om gelijke items te groeperen en een label toe te passen op de groep. In dit geval kunnen clusters 'ronde muziekdingen' en 'vierkante muziekdingen' reflecteren.
>
> 🎓 ['Niet-vlakke' vs. 'vlakke' geometrie](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
> 🎓 ['Niet-vlak' vs. 'vlakke' geometrie](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
>
> Afgeleid van wiskundige terminologie, verwijst niet-vlakke vs. vlakke geometrie naar de manier waarop afstanden tussen punten worden gemeten, ofwel 'vlak' ([Euclidisch](https://wikipedia.org/wiki/Euclidean_geometry)) of 'niet-vlak' (niet-Euclidisch).
> Afgeleid van wiskundige terminologie verwijst niet-vlak vs. vlakke geometrie naar de maat van afstanden tussen punten door middel van 'vlakke' ([Euclidische](https://wikipedia.org/wiki/Euclidean_geometry)) of 'niet-vlakke' (niet-Euclidische) geometrische methoden.
>
>'Vlak' in deze context verwijst naar Euclidische geometrie (delen hiervan worden onderwezen als 'platte' geometrie), en niet-vlak verwijst naar niet-Euclidische geometrie. Wat heeft geometrie te maken met machine learning? Nou, als twee velden die geworteld zijn in wiskunde, moet er een gemeenschappelijke manier zijn om afstanden tussen punten in clusters te meten, en dat kan op een 'vlakke' of 'niet-vlakke' manier, afhankelijk van de aard van de gegevens. [Euclidische afstanden](https://wikipedia.org/wiki/Euclidean_distance) worden gemeten als de lengte van een lijnsegment tussen twee punten. [Niet-Euclidische afstanden](https://wikipedia.org/wiki/Non-Euclidean_geometry) worden gemeten langs een curve. Als je gegevens, gevisualiseerd, niet op een vlak lijken te bestaan, moet je mogelijk een gespecialiseerd algoritme gebruiken om ze te verwerken.
>'Vlak' in deze context verwijst naar Euclidische geometrie (onderdelen daarvan worden onderwezen als 'vlakke' geometrie) en niet-vlak verwijst naar niet-Euclidische geometrie. Wat heeft geometrie te maken met machine learning? Nou, aangezien het twee vakgebieden zijn die geworteld zijn in wiskunde, moet er een gemeenschappelijke manier zijn om afstanden tussen punten in clusters te meten, en dat kan op een 'vlakke' of 'niet-vlakke' manier, afhankelijk van de aard van de data. [Euclidische afstanden](https://wikipedia.org/wiki/Euclidean_distance) worden gemeten als de lengte van een lijnstuk tussen twee punten. [Niet-Euclidische afstanden](https://wikipedia.org/wiki/Non-Euclidean_geometry) worden gemeten langs een kromme. Als jouw data, gevisualiseerd, lijkt te bestaan op iets anders dan een vlak, heb je mogelijk een gespecialiseerd algoritme nodig om het aan te kunnen.
>


> Infographic door [Dasani Madipalli](https://twitter.com/dasani_decoded)
> Clusters worden gedefinieerd door hun afstandsmatrix, bijvoorbeeld de afstanden tussen punten. Deze afstand kan op verschillende manieren worden gemeten. Euclidische clusters worden gedefinieerd door het gemiddelde van de puntwaarden en bevatten een 'centroid' of middelpunt. Afstanden worden dus gemeten door de afstand tot dat middelpunt. Niet-Euclidische afstanden verwijzen naar 'clustroids', het punt dat het dichtst bij andere punten ligt. Clustroids kunnen op verschillende manieren worden gedefinieerd.
> Clusters worden gedefinieerd door hun afstandsmatrix, bijvoorbeeld de afstanden tussen punten. Deze afstand kan op verschillende manieren worden gemeten. Euclidische clusters worden bepaald door het gemiddelde van de puntwaarden en bevatten een 'centroid' of middelpunt. Afstanden worden dan gemeten als de afstand tot dat centroid. Niet-Euclidische afstanden verwijzen naar 'clustroids', het punt dat het dichtst bij andere punten ligt. Clustroids kunnen op verschillende manieren worden gedefinieerd.
> [Beperkte Clustering](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) introduceert 'semi-gecontroleerd' leren in deze ongecontroleerde methode. De relaties tussen punten worden gemarkeerd als 'kan niet koppelen' of 'moet koppelen', zodat enkele regels worden opgelegd aan de dataset.
> [Beperkte clustering](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) introduceert 'semi-gefundeerd' leren in deze ongecontroleerde methode. De relaties tussen punten worden gemarkeerd als 'mag niet linken' of 'moet linken' zodat regels op de dataset worden afgedwongen.
>
>Een voorbeeld: Als een algoritme vrij wordt gelaten op een batch niet-gelabelde of semi-gelabelde gegevens, kunnen de clusters die het produceert van slechte kwaliteit zijn. In het bovenstaande voorbeeld kunnen de clusters 'ronde muzikale dingen', 'vierkante muzikale dingen', 'driehoekige dingen' en 'koekjes' groeperen. Als er enkele beperkingen of regels worden opgelegd ("het item moet van plastic zijn", "het item moet muziek kunnen produceren"), kan dit helpen om het algoritme te 'beperken' om betere keuzes te maken.
> Een voorbeeld: Als een algoritme vrij op een batch ongelabelde of semi-gelabelde data wordt losgelaten, kunnen de geproduceerde clusters van slechte kwaliteit zijn. In het bovenstaande voorbeeld kunnen de clusters 'ronde muziekdingen', 'vierkante muziekdingen', 'driehoekige dingen' en 'koekjes' groeperen. Als je enkele beperkingen of regels toevoegt ("het item moet van plastic zijn", "het item moet muziek kunnen maken") kan dit helpen het algoritme te 'beperken' en betere keuzes te bepalen.
>
> 🎓 'Dichtheid'
>
> Gegevens die 'ruis' bevatten, worden beschouwd als 'dicht'. De afstanden tussen punten in elk van zijn clusters kunnen bij nader onderzoek meer of minder dicht, of 'geconcentreerd' blijken te zijn, en daarom moeten deze gegevens worden geanalyseerd met de juiste clusteringmethode. [Dit artikel](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) laat het verschil zien tussen het gebruik van K-Means clustering versus HDBSCAN-algoritmen om een dataset met ongelijke clusterdichtheid te verkennen.
> Data die 'ruis' bevat wordt als 'dicht' beschouwd. De afstanden tussen punten in elk van de clusters kunnen na onderzoek meer of minder dicht zijn, of 'druk' en daarom moet deze data met de juiste clusteringmethode worden geanalyseerd. [Dit artikel](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) toont het verschil aan tussen het gebruik van K-Means clustering versus HDBSCAN-algoritmen om een lawaaierige dataset met ongelijke clusterdichtheid te onderzoeken.
## Clustering-algoritmen
## Clusteringsalgoritmen
Er zijn meer dan 100 clustering-algoritmen, en hun gebruik hangt af van de aard van de gegevens. Laten we enkele van de belangrijkste bespreken:
Er zijn meer dan 100 clusteringalgoritmen en hun gebruik hangt af van de aard van de data. Laten we enkele belangrijke bespreken:
- **Hiërarchische clustering**. Als een object wordt geclassificeerd op basis van zijn nabijheid tot een nabijgelegen object, in plaats van tot een verder verwijderd object, worden clusters gevormd op basis van de afstand van hun leden tot en van andere objecten. Scikit-learn's agglomeratieve clustering is hiërarchisch.
- **Hiërarchische clustering**. Als een object wordt geclassificeerd op basis van zijn nabijheid tot een naburig object, in plaats van tot een verder weg liggend object, worden clusters gevormd op basis van hun afstand tot en van andere objecten. Agglomeratieve clustering van Scikit-learn is hiërarchisch.
> Infographic door [Dasani Madipalli](https://twitter.com/dasani_decoded)
- **Centroid clustering**. Dit populaire algoritme vereist de keuze van 'k', of het aantal clusters dat moet worden gevormd, waarna het algoritme het middelpunt van een cluster bepaalt en gegevens rond dat punt verzamelt. [K-means clustering](https://wikipedia.org/wiki/K-means_clustering) is een populaire versie van centroid clustering. Het middelpunt wordt bepaald door het dichtstbijzijnde gemiddelde, vandaar de naam. De kwadratische afstand tot het cluster wordt geminimaliseerd.
- **Centroid clustering**. Dit populaire algoritme vereist het kiezen van 'k', of het aantal clusters dat gevormd moet worden, waarna het algoritme het middelpunt van een cluster bepaalt en data daaromheen verzamelt. [K-means clustering](https://wikipedia.org/wiki/K-means_clustering) is een populaire versie van centroid clustering. Het centrum wordt bepaald door het dichtstbijzijnde gemiddelde, vandaar de naam. De kwadratische afstand tot het cluster wordt geminimaliseerd.
> Infographic door [Dasani Madipalli](https://twitter.com/dasani_decoded)
- **Distributie-gebaseerde clustering**. Gebaseerd op statistische modellering, richt distributie-gebaseerde clustering zich op het bepalen van de waarschijnlijkheid dat een datapunt tot een cluster behoort, en wijst het dienovereenkomstig toe. Gaussian mixture-methoden behoren tot dit type.
- **Op distributie gebaseerde clustering**. Gebaseerd op statistische modellering, richt distributiegebaseerde clustering zich op het bepalen van de waarschijnlijkheid dat een datapunt tot een cluster behoort, en wijst het dienovereenkomstig toe. Gaussiaanse mengsels behoren tot dit type.
- **Dichtheid-gebaseerde clustering**. Datapunten worden toegewezen aan clusters op basis van hun dichtheid, of hun groepering rond elkaar. Datapunten ver van de groep worden beschouwd als uitschieters of ruis. DBSCAN, Mean-shift en OPTICS behoren tot dit type clustering.
- **Dichtheidsgebaseerde clustering**. Datapunten worden toegewezen aan clusters op basis van hun dichtheid, of hun groepering rondom elkaar. Datapunten die ver van de groep liggen, worden beschouwd als uitschieters of ruis. DBSCAN, Mean-shift en OPTICS behoren tot dit type clustering.
- **Raster-gebaseerde clustering**. Voor multidimensionale datasets wordt een raster gemaakt en worden de gegevens verdeeld over de cellen van het raster, waardoor clusters ontstaan.
- **Rastersgebaseerde clustering**. Voor multidimensionale datasets wordt een raster gemaakt en wordt de data verdeeld over de cellen van het raster, waardoor clusters ontstaan.
## Oefening - cluster je gegevens
## Oefening - cluster je data
Clustering als techniek wordt sterk ondersteund door goede visualisatie, dus laten we beginnen met het visualiseren van onze muziekgegevens. Deze oefening helpt ons te beslissen welke van de clusteringmethoden we het meest effectief kunnen gebruiken voor de aard van deze gegevens.
Clustering als techniek wordt sterk ondersteund door goede visualisatie, dus laten we beginnen met het visualiseren van onze muziekdata. Deze oefening helpt ons te beslissen welke clusteringmethode we het beste kunnen gebruiken voor de aard van deze data.
1. Open het [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb)-bestand in deze map.
1. Open het [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb)bestand in deze map.
1. Importeer het `Seaborn`-pakket voor goede datavisualisatie.
@ -110,7 +110,7 @@ Clustering als techniek wordt sterk ondersteund door goede visualisatie, dus lat
!pip install seaborn
```
1. Voeg de muziekinformatie toe uit [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Laad een dataframe met enkele gegevens over de nummers. Bereid je voor om deze gegevens te verkennen door de bibliotheken te importeren en de gegevens uit te lezen:
1. Voeg de songdata toe van [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Laad een dataframe met wat gegevens over de nummers. Maak je klaar om deze data te verkennen door de bibliotheken te importeren en de data uit te dumpen:
```python
import matplotlib.pyplot as plt
@ -120,23 +120,23 @@ Clustering als techniek wordt sterk ondersteund door goede visualisatie, dus lat
df.head()
```
Bekijk de eerste paar regels van de gegevens:
Bekijk de eerste paar datalijnen:
| | naam | album | artiest | artiest_top_genre | release_date | lengte | populariteit | dansbaarheid | akoestiek | energie | instrumentaliteit | levendigheid | luidheid | spraakzaamheid | tempo | maatsoort |
> 🤔 Als we werken met clustering, een ongesuperviseerde methode die geen gelabelde data vereist, waarom tonen we deze data dan met labels? In de data-exploratiefase zijn ze handig, maar ze zijn niet noodzakelijk voor de clustering-algoritmes om te werken. Je zou net zo goed de kolomkoppen kunnen verwijderen en naar de data kunnen verwijzen via kolomnummer.
> 🤔 Als we werken met clustering, een onbewaakte methode die geen gelabelde data vereist, waarom tonen we deze data dan met labels? In de data-exploratiefase zijn ze handig, maar ze zijn niet noodzakelijk voor de clustering-algoritmes om te werken. Je zou net zo goed de kolomkoppen kunnen verwijderen en naar de data verwijzen op kolomnummer.
Bekijk de algemene waarden van de data. Merk op dat populariteit '0' kan zijn, wat aangeeft dat nummers geen ranking hebben. Laten we die binnenkort verwijderen.
Bekijk de algemene waarden van de data. Let op dat populariteit '0' kan zijn, wat nummers toont die geen ranking hebben. Laten we die snel verwijderen.
1. Gebruik een staafdiagram om de meest populaire genres te vinden:
@ -225,13 +225,13 @@ Bekijk de algemene waarden van de data. Merk op dat populariteit '0' kan zijn, w
1. De top drie genres domineren deze dataset verreweg. Laten we ons concentreren op `afro dancehall`, `afropop` en `nigerian pop`, en daarnaast de dataset filteren om alles met een populariteitswaarde van 0 te verwijderen (wat betekent dat het niet geclassificeerd is met een populariteit in de dataset en kan worden beschouwd als ruis voor onze doeleinden):
1. Bij verreweg domineren de top drie genres deze dataset. Laten we ons concentreren op `afro dancehall`, `afropop` en `nigerian pop`, filter daarnaast de dataset om alles met een populariteitswaarde van 0 te verwijderen (wat betekent dat het niet geclassificeerd werd met een populariteit in de dataset en kan worden beschouwd als ruis voor onze doeleinden):
De enige sterke correlatie is tussen `energy` en `loudness`, wat niet al te verrassend is, aangezien luide muziek meestal behoorlijk energiek is. Verder zijn de correlaties relatief zwak. Het zal interessant zijn om te zien wat een clustering-algoritme van deze data kan maken.
De enige sterke correlatie is tussen `energy` en `loudness`, wat niet zo verrassend is, aangezien harde muziek meestal vrij energiek is. Verder zijn de correlaties relatief zwak. Het zal interessant zijn om te zien wat een clustering-algoritme van deze data kan maken.
> 🎓 Merk op dat correlatie geen oorzaak-gevolg impliceert! We hebben bewijs van correlatie, maar geen bewijs van oorzaak-gevolg. Een [grappige website](https://tylervigen.com/spurious-correlations) heeft enkele visuals die dit punt benadrukken.
> 🎓 Let op dat correlatie geen causaliteit impliceert! We hebben bewijs van correlatie maar geen bewijs van causaliteit. Een [grappige website](https://tylervigen.com/spurious-correlations) heeft enkele visuals die dit punt benadrukken.
Is er enige convergentie in deze dataset rond de waargenomen populariteit en dansbaarheid van een nummer? Een FacetGrid laat zien dat er concentrische cirkels zijn die op één lijn liggen, ongeacht het genre. Zou het kunnen dat Nigeriaanse smaken convergeren op een bepaald niveau van dansbaarheid voor dit genre?
Is er enige convergentie in deze dataset rond de waargenomen populariteit en dansbaarheid van een nummer? Een FacetGrid laat zien dat er concentrische cirkels zijn die overeenkomen, ongeacht het genre. Zou het kunnen dat Nigeriaanse smaken convergeren op een bepaald niveau van dansbaarheid voor dit genre?
✅ Probeer verschillende datapunten (energie, luidheid, spraakzaamheid) en meer of andere muziekgenres. Wat kun je ontdekken? Bekijk de `df.describe()`-tabel om de algemene spreiding van de datapunten te zien.
✅ Probeer verschillende datapunten (energy, loudness, speechiness) en meer of andere muziekgenres. Wat kun je ontdekken? Bekijk de `df.describe()`tabel om de algemene spreiding van de datapunten te zien.
### Oefening - datadistributie
### Oefening - datadistributie
Zijn deze drie genres significant verschillend in de perceptie van hun dansbaarheid, gebaseerd op hun populariteit?
1. Onderzoek de datadistributie van onze top drie genres voor populariteit en dansbaarheid langs een gegeven x- en y-as.
1. Onderzoek de datadistributie van onze top drie genres voor populariteit en dansbaarheid langs gegeven x- en y-assen.
```python
sns.set_theme(style="ticks")
@ -292,13 +292,13 @@ Zijn deze drie genres significant verschillend in de perceptie van hun dansbaarh
)
```
Je kunt concentrische cirkels ontdekken rond een algemeen convergentiepunt, wat de verdeling van punten laat zien.
Je kunt concentrische cirkels ontdekken rond een algemeen convergentiepunt, die de spreiding van punten laten zien.
> 🎓 Merk op dat dit voorbeeld een KDE (Kernel Density Estimate) grafiek gebruikt die de data vertegenwoordigt met een continue waarschijnlijkheidsdichtheidscurve. Dit stelt ons in staat om data te interpreteren bij het werken met meerdere distributies.
> 🎓 Let op dat dit voorbeeld een KDE (Kernel Density Estimate) grafiek gebruikt die de data vertegenwoordigt met een continue kansdichtheidscurve. Dit stelt ons in staat data te interpreteren wanneer we met meerdere distributies werken.
Over het algemeen komen de drie genres losjes overeen in termen van hun populariteit en dansbaarheid. Het bepalen van clusters in deze losjes uitgelijnde data zal een uitdaging zijn:
Over het algemeen lijnen de drie genres vrij losjes uit in termen van hun populariteit en dansbaarheid. Het bepalen van clusters in deze losjes-uitgelijnde data zal een uitdaging zijn:
Over het algemeen kun je voor clustering scatterplots gebruiken om clusters van data te tonen, dus het beheersen van dit type visualisatie is erg nuttig. In de volgende les zullen we deze gefilterde data gebruiken en k-means clustering toepassen om groepen in deze data te ontdekken die op interessante manieren lijken te overlappen.
Over het algemeen kun je voor clustering scatterplots gebruiken om clusters van data te tonen, dus het beheersen van dit type visualisatie is erg nuttig. In de volgende les zullen we deze gefilterde data nemen en k-means clustering gebruiken om groepen in deze data te ontdekken die op interessante manieren overlappen.
---
## 🚀Uitdaging
Ter voorbereiding op de volgende les, maak een diagram over de verschillende clustering-algoritmes die je zou kunnen ontdekken en gebruiken in een productieomgeving. Welke soorten problemen probeert de clustering op te lossen?
Ter voorbereiding op de volgende les, maak een diagram over de verschillende clustering-algoritmes die je kunt ontdekken en gebruiken in een productieomgeving. Welke soorten problemen probeert clustering op te lossen?
Voordat je clustering-algoritmes toepast, zoals we hebben geleerd, is het een goed idee om de aard van je dataset te begrijpen. Lees meer over dit onderwerp [hier](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
Voordat je clustering-algoritmen toepast, is het, zoals we hebben geleerd, een goed idee om de aard van je dataset te begrijpen. Lees meer over dit onderwerp [hier](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
[Dit nuttige artikel](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) leidt je door de verschillende manieren waarop clustering-algoritmes zich gedragen, gegeven verschillende datavormen.
[Dit nuttige artikel](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) leidt je door de verschillende manieren waarop diverse clustering-algoritmes zich gedragen, gegeven verschillende datavormen.
## Opdracht
@ -334,5 +334,7 @@ Voordat je clustering-algoritmes toepast, zoals we hebben geleerd, is het een go
---
**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 kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**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 moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
## [Câu hỏi trước bài giảng](https://ff-quizzes.netlify.app/en/ml/)
## [Bài quiz trước bài giảng](https://ff-quizzes.netlify.app/en/ml/)
---
[](https://youtu.be/6mSx_KJxcHI "Học máy cho người mới bắt đầu - Giới thiệu về học máy cho người mới bắt đầu")
[](https://youtu.be/6mSx_KJxcHI "ML for beginners - Introduction to Machine Learning for Beginners")
> 🎥 Nhấp vào hình ảnh trên để xem video ngắn về bài học này.
> 🎥 Nhấn vào hình ảnh trên để xem video ngắn hướng dẫn bài học này.
Chào mừng bạn đến với khóa học về học máy cổ điển dành cho người mới bắt đầu! Dù bạn hoàn toàn mới với chủ đề này hay là một người thực hành học máy có kinh nghiệm muốn ôn lại một lĩnh vực, chúng tôi rất vui khi bạn tham gia cùng chúng tôi! Chúng tôi muốn tạo một điểm khởi đầu thân thiện cho việc học học máy của bạn và rất vui được đánh giá, phản hồi và tích hợp [ý kiến đóng góp của bạn](https://github.com/microsoft/ML-For-Beginners/discussions).
Chào mừng bạn đến với khóa học về học máy cổ điển dành cho người mới bắt đầu! Cho dù bạn hoàn toàn mới với chủ đề này, hay là một người thực hành ML có kinh nghiệm muốn làm mới kiến thức ở một lĩnh vực, chúng tôi rất vui được chào đón bạn tham gia! Chúng tôi muốn tạo ra một điểm khởi đầu thân thiện cho việc học ML của bạn và rất mong nhận được, phản hồi, và tiếp thu [phản hồi](https://github.com/microsoft/ML-For-Beginners/discussions) của bạn.
[](https://youtu.be/h0e2HAPTGF4 "Giới thiệu về học máy")
[](https://youtu.be/h0e2HAPTGF4 "Introduction to ML")
> 🎥 Nhấp vào hình ảnh trên để xem video: John Guttag từ MIT giới thiệu về học máy
> 🎥 Nhấn vào hình ảnh trên để xem video: John Guttag của MIT giới thiệu về học máy
---
## Bắt đầu với học máy
Trước khi bắt đầu với chương trình học này, bạn cần chuẩn bị máy tính của mình để chạy các notebook cục bộ.
Trước khi bắt đầu với chương trình học này, bạn cần chuẩn bị máy tính và sẵn sàng chạy các notebook cục bộ.
- **Cấu hình máy của bạn với các video này**. Sử dụng các liên kết sau để học [cách cài đặt Python](https://youtu.be/CXZYvNRIAKM) trên hệ thống của bạn và [cài đặt trình soạn thảo văn bản](https://youtu.be/EU8eayHWoZg) để phát triển.
- **Học Python**. Bạn cũng nên có hiểu biết cơ bản về [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), một ngôn ngữ lập trình hữu ích cho các nhà khoa học dữ liệu mà chúng tôi sử dụng trong khóa học này.
- **Học Node.js và JavaScript**. Chúng tôi cũng sử dụng JavaScript vài lần trong khóa học này khi xây dựng ứng dụng web, vì vậy bạn cần cài đặt [node](https://nodejs.org) và [npm](https://www.npmjs.com/), cũng như [Visual Studio Code](https://code.visualstudio.com/) để phát triển cả Python và JavaScript.
- **Tạo tài khoản GitHub**. Vì bạn đã tìm thấy chúng tôi trên [GitHub](https://github.com), có thể bạn đã có tài khoản, nhưng nếu chưa, hãy tạo một tài khoản và sau đó fork chương trình học này để sử dụng riêng. (Đừng ngại cho chúng tôi một ngôi sao nhé 😊)
- **Khám phá Scikit-learn**. Làm quen với [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), một bộ thư viện học máy mà chúng tôi tham khảo trong các bài học này.
- **Cấu hình máy của bạn với các video này**. Sử dụng các liên kết dưới đây để học [cách cài đặt Python](https://youtu.be/CXZYvNRIAKM) trên hệ thống của bạn và [cài đặt môi trường soạn thảo mã](https://youtu.be/EU8eayHWoZg) để phát triển.
- **Học Python**. Bạn cũng nên có hiểu biết cơ bản về [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott), một ngôn ngữ lập trình hữu ích cho các nhà khoa học dữ liệu mà chúng ta sẽ dùng trong khóa học này.
- **Học Node.js và JavaScript**. Chúng tôi cũng sử dụng JavaScript vài lần trong khóa học khi xây dựng các ứng dụng web, vì vậy bạn cần cài đặt [node](https://nodejs.org) và [npm](https://www.npmjs.com/), cũng như có sẵn [Visual Studio Code](https://code.visualstudio.com/) để phát triển cả Python và JavaScript.
- **Tạo tài khoản GitHub**. Nếu bạn tìm đến chúng tôi ở đây trên [GitHub](https://github.com), có thể bạn đã có tài khoản, nhưng nếu chưa thì hãy tạo một tài khoản và sau đó fork chương trình học này để sử dụng riêng. (Bạn cũng có thể đánh dấu sao cho chúng tôi nhé 😊)
- **Tìm hiểu Scikit-learn**. Làm quen với [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), một bộ thư viện ML mà chúng tôi tham khảo trong các bài học này.
---
## Học máy là gì?
Thuật ngữ 'học máy' là một trong những thuật ngữ phổ biến và được sử dụng nhiều nhất hiện nay. Có khả năng cao là bạn đã nghe thuật ngữ này ít nhất một lần nếu bạn có chút quen thuộc với công nghệ, bất kể lĩnh vực bạn làm việc. Tuy nhiên, cơ chế của học máy vẫn là một bí ẩn đối với hầu hết mọi người. Đối với người mới bắt đầu học máy, chủ đề này đôi khi có thể cảm thấy quá tải. Vì vậy, điều quan trọng là phải hiểu học máy thực sự là gì và học về nó từng bước, thông qua các ví dụ thực tế.
Thuật ngữ 'học máy' là một trong những thuật ngữ phổ biến và được sử dụng nhiều nhất hiện nay. Có khả năng khá cao là bạn đã ít nhất một lần nghe thuật ngữ này nếu bạn có một số kiến thức về công nghệ, bất kể bạn làm việc trong lĩnh vực nào. Tuy nhiên, cơ chế của học máy là điều bí ẩn đối với đa số mọi người. Đối với người mới bắt đầu học máy, chủ đề này đôi khi có thể cảm thấy choáng ngợp. Do đó, điều quan trọng là hiểu học máy thực sự là gì, và học về nó từng bước, thông qua các ví dụ thực tế.
> Google Trends cho thấy 'đường cong cường điệu' gần đây của thuật ngữ 'học máy'
> Google Trends cho thấy 'đường cong hype' gần đây của thuật ngữ 'machine learning'
---
## Một vũ trụ bí ẩn
Chúng ta sống trong một vũ trụ đầy những bí ẩn hấp dẫn. Những nhà khoa học vĩ đại như Stephen Hawking, Albert Einstein, và nhiều người khác đã dành cả cuộc đời để tìm kiếm thông tin có ý nghĩa nhằm khám phá những bí ẩn của thế giới xung quanh chúng ta. Đây là bản chất học hỏi của con người: một đứa trẻ học những điều mới và khám phá cấu trúc của thế giới xung quanh nó từng năm khi nó lớn lên.
Chúng ta sống trong một vũ trụ đầy những bí ẩn thú vị. Những nhà khoa học vĩ đại như Stephen Hawking, Albert Einstein, và nhiều người khác đã dành cả cuộc đời mình để tìm kiếm thông tin có ý nghĩa nhằm khám phá những bí ẩn của thế giới xung quanh chúng ta. Đây là điều kiện con người học hỏi: Một đứa trẻ học những điều mới và khám phá cấu trúc của thế giới của chúng theo từng năm khi lớn lên thành người trưởng thành.
---
## Bộ não của trẻ em
Bộ não và các giác quan của trẻ em nhận thức các sự kiện xung quanh và dần dần học các mẫu ẩn của cuộc sống, giúp trẻ tạo ra các quy tắc logic để nhận diện các mẫu đã học. Quá trình học hỏi của bộ não con người khiến con người trở thành sinh vật sống tinh vi nhất trên thế giới này. Việc học liên tục bằng cách khám phá các mẫu ẩn và sau đó đổi mới trên các mẫu đó cho phép chúng ta cải thiện bản thân ngày càng tốt hơn trong suốt cuộc đời. Khả năng học hỏi và phát triển này liên quan đến một khái niệm gọi là [tính dẻo của não](https://www.simplypsychology.org/brain-plasticity.html). Một cách bề mặt, chúng ta có thể rút ra một số điểm tương đồng mang tính động lực giữa quá trình học hỏi của bộ não con người và các khái niệm của học máy.
Bộ não và các giác quan của trẻ nhận biết các sự vật xung quanh và từ từ học các mẫu ẩn của cuộc sống giúp trẻ tạo ra các quy tắc logic để nhận dạng các mẫu đã học. Quá trình học của bộ não con người khiến con người trở thành sinh vật tinh vi nhất trên thế giới này. Học liên tục bằng cách khám phá các mẫu ẩn rồi đổi mới dựa trên những mẫu đó giúp chúng ta làm cho bản thân trở nên tốt hơn và tốt hơn trong suốt cuộc đời. Khả năng học này và năng lực tiến hóa có liên quan đến một khái niệm gọi là [độ dẻo não](https://www.simplypsychology.org/brain-plasticity.html). Bề ngoài, chúng ta có thể vẽ một số điểm tương đồng truyền cảm hứng giữa quá trình học của bộ não con người và các khái niệm trong học máy.
---
## Bộ não con người
[Bộ não con người](https://www.livescience.com/29365-human-brain.html) nhận thức các sự kiện từ thế giới thực, xử lý thông tin nhận thức, đưa ra quyết định hợp lý và thực hiện các hành động nhất định dựa trên hoàn cảnh. Đây là điều chúng ta gọi là hành xử thông minh. Khi chúng ta lập trình một bản sao của quá trình hành xử thông minh vào một máy móc, nó được gọi là trí tuệ nhân tạo (AI).
[Bộ não con người](https://www.livescience.com/29365-human-brain.html) nhận biết các sự vật trong thế giới thực, xử lý thông tin nhận biết được, đưa ra quyết định hợp lý và thực hiện các hành động dựa trên hoàn cảnh. Đây chính là những gì ta gọi là hành xử thông minh. Khi chúng ta lập trình một mô hình hành xử thông minh cho máy, đó gọi là trí tuệ nhân tạo (AI).
---
## Một số thuật ngữ
Mặc dù các thuật ngữ có thể gây nhầm lẫn, học máy (ML) là một phần quan trọng của trí tuệ nhân tạo. **ML liên quan đến việc sử dụng các thuật toán chuyên biệt để khám phá thông tin có ý nghĩa và tìm các mẫu ẩn từ dữ liệu nhận thức nhằm hỗ trợ quá trình ra quyết định hợp lý**.
Mặc dù các thuật ngữ có thể gây nhầm lẫn, học máy (ML) là một phần quan trọng của trí tuệ nhân tạo. **ML liên quan đến việc sử dụng các thuật toán chuyên biệt để khai thác thông tin có ý nghĩa và tìm các mẫu ẩn từ dữ liệu để hỗ trợ quá trình ra quyết định hợp lý**.
---
## AI, ML, Học sâu


> Một sơ đồ hiển thị mối quan hệ giữa AI, ML, học sâu và khoa học dữ liệu. Đồ họa thông tin bởi [Jen Looper](https://twitter.com/jenlooper) lấy cảm hứng từ [đồ họa này](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
> Sơ đồ thể hiện mối quan hệ giữa AI, ML, học sâu và khoa học dữ liệu. Đồ họa thông tin bởi [Jen Looper](https://twitter.com/jenlooper) lấy cảm hứng từ [bức tranh này](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining)
---
## Các khái niệm sẽ được đề cập
## Các khái niệm sẽ học
Trong chương trình học này, chúng ta sẽ chỉ đề cập đến các khái niệm cốt lõi của học máy mà người mới bắt đầu cần biết. Chúng ta sẽ tập trung vào cái gọi là 'học máy cổ điển', chủ yếu sử dụng Scikit-learn, một thư viện xuất sắc mà nhiều sinh viên sử dụng để học các kiến thức cơ bản. Để hiểu các khái niệm rộng hơn về trí tuệ nhân tạo hoặc học sâu, một nền tảng kiến thức vững chắc về học máy là không thể thiếu, và chúng tôi muốn cung cấp điều đó ở đây.
Trong chương trình học này, chúng ta sẽ chỉ trình bày các khái niệm cốt lõi của học máy mà người mới bắt đầu cần biết. Chúng ta gọi đó là 'học máy cổ điển' chủ yếu sử dụng Scikit-learn, một thư viện xuất sắc mà nhiều học sinh dùng để học các kiến thức cơ bản. Để hiểu các khái niệm rộng hơn về trí tuệ nhân tạo hoặc học sâu, kiến thức nền chắc chắn về học máy là điều không thể thiếu, và chúng tôi xin được cung cấp điều đó tại đây.
---
## Trong khóa học này bạn sẽ học:
- các khái niệm cốt lõi của học máy
- lịch sử của ML
- ML và sự công bằng
- các kỹ thuật ML hồi quy
- các kỹ thuật ML phân loại
- các kỹ thuật ML phân cụm
- các kỹ thuật ML xử lý ngôn ngữ tự nhiên
- các kỹ thuật ML dự đoán chuỗi thời gian
- ML và tính công bằng
- các kỹ thuật hồi quy ML
- các kỹ thuật phân loại ML
- các kỹ thuật tập cụm ML
- các kỹ thuật xử lý ngôn ngữ tự nhiên ML
- các kỹ thuật dự báo chuỗi thời gian ML
- học tăng cường
- các ứng dụng thực tế của ML
- các ứng dụng thực tế cho ML
---
## Những gì chúng ta sẽ không đề cập
## Những gì chúng ta sẽ không học
- học sâu
- mạng nơ-ron
- AI
- trí tuệ nhân tạo (AI)
Để tạo trải nghiệm học tập tốt hơn, chúng ta sẽ tránh các phức tạp của mạng nơ-ron, 'học sâu' - xây dựng mô hình nhiều lớp bằng mạng nơ-ron - và AI, mà chúng ta sẽ thảo luận trong một chương trình học khác. Chúng tôi cũng sẽ cung cấp một chương trình học khoa học dữ liệu sắp tới để tập trung vào khía cạnh đó của lĩnh vực lớn hơn này.
Để mang lại trải nghiệm học tốt hơn, chúng ta sẽ tránh các phức tạp của mạng nơ-ron, học sâu - xây dựng mô hình nhiều lớp sử dụng mạng nơ-ron - và AI, những chủ đề này sẽ được thảo luận trong một chương trình học khác. Chúng tôi cũng sẽ cung cấp một chương trình khoa học dữ liệu sắp tới để tập trung vào khía cạnh lớn hơn của lĩnh vực này.
---
## Tại sao học máy lại quan trọng?
## Tại sao nên học học máy?
Học máy, từ góc độ hệ thống, được định nghĩa là việc tạo ra các hệ thống tự động có thể học các mẫu ẩn từ dữ liệu để hỗ trợ đưa ra các quyết định thông minh.
Từ góc nhìn hệ thống, học máy được định nghĩa là việc tạo ra các hệ thống tự động có thể học các mẫu ẩn từ dữ liệu để hỗ trợ đưa ra các quyết định thông minh.
Động lực này được lấy cảm hứng một cách lỏng lẻo từ cách bộ não con người học một số điều dựa trên dữ liệu mà nó nhận thức từ thế giới bên ngoài.
Động lực này được lấy cảm hứng một cách lỏng lẻo từ cách bộ não con người học một số điều dựa trên dữ liệu nó nhận biết từ thế giới bên ngoài.
✅ Hãy nghĩ trong một phút tại sao một doanh nghiệp lại muốn sử dụng các chiến lược học máy thay vì tạo một hệ thống dựa trên các quy tắc được mã hóa cứng.
✅ Hãy nghĩ trong một phút tại sao một doanh nghiệp lại muốn thử sử dụng chiến lược học máy thay vì tạo một bộ quy tắc được lập trình cứng nhắc.
---
## Tại sao chất lượng dữ liệu quan trọng
Dữ liệu chất lượng cao cải thiện hiệu quả mô hình. Dữ liệu kém chất lượng hoặc nhiễu có thể dẫn đến dự đoán không chính xác, ngay cả khi sử dụng các thuật toán học máy tiên tiến.
---
## Ứng dụng của học máy
Ứng dụng của học máy hiện nay gần như ở khắp mọi nơi, và phổ biến như dữ liệu đang lưu chuyển xung quanh xã hội của chúng ta, được tạo ra bởi điện thoại thông minh, các thiết bị kết nối, và các hệ thống khác. Xét đến tiềm năng to lớn của các thuật toán học máy tiên tiến, các nhà nghiên cứu đã khám phá khả năng của chúng để giải quyết các vấn đề thực tế đa chiều và đa ngành với kết quả tích cực lớn.
Ứng dụng của học máy hiện nay gần như ở khắp mọi nơi, và phổ biến như dữ liệu đang lưu thông trong xã hội chúng ta, được tạo ra bởi điện thoại thông minh, các thiết bị kết nối và các hệ thống khác. Xét về tiềm năng khổng lồ của các thuật toán học máy hiện đại, các nhà nghiên cứu đã khám phá khả năng của chúng trong việc giải quyết các vấn đề thực tế đa chiều và đa ngành với nhiều kết quả tích cực.
---
## Ví dụ về học máy ứng dụng
## Ví dụ về ứng dụng ML
**Bạn có thể sử dụng học máy theo nhiều cách**:
- Dự đoán khả năng mắc bệnh từ lịch sử y tế hoặc báo cáo của bệnh nhân.
- Sử dụng dữ liệu thời tiết để dự đoán các sự kiện thời tiết.
- Hiểu cảm xúc của một văn bản.
- Phát hiện tin tức giả để ngăn chặn sự lan truyền của tuyên truyền.
- Để dự đoán khả năng bệnh từ lịch sử hoặc báo cáo y tế của bệnh nhân.
- Dùng dữ liệu thời tiết để dự báo các sự kiện thời tiết.
- Để hiểu tâm trạng của một đoạn văn bản.
- Để phát hiện tin giả nhằm ngăn chặn sự lan truyền tuyên truyền.
Tài chính, kinh tế, khoa học trái đất, khám phá không gian, kỹ thuật y sinh, khoa học nhận thức, và thậm chí các lĩnh vực trong nhân văn đã thích nghi với học máy để giải quyết các vấn đề nặng về xử lý dữ liệu trong lĩnh vực của họ.
Tài chính, kinh tế, khoa học trái đất, không gian, kỹ thuật y sinh, khoa học nhận thức và thậm chí các lĩnh vực nhân văn đã áp dụng học máy để giải quyết các vấn đề nặng về xử lý dữ liệu trong lĩnh vực của mình.
---
## Kết luận
Học máy tự động hóa quá trình khám phá mẫu bằng cách tìm kiếm các thông tin có ý nghĩa từ dữ liệu thực tế hoặc dữ liệu được tạo ra. Nó đã chứng minh giá trị của mình trong các ứng dụng kinh doanh, y tế, và tài chính, cùng nhiều lĩnh vực khác.
Học máy tự động hóa quá trình khám phá mẫu bằng cách tìm ra các hiểu biết có ý nghĩa từ dữ liệu thực tế hoặc dữ liệu được tạo ra. Nó đã chứng minh giá trị cao trong các ứng dụng kinh doanh, y tế và tài chính, cùng nhiều lĩnh vực khác.
Trong tương lai gần, việc hiểu các kiến thức cơ bản về học máy sẽ trở thành một yêu cầu cần thiết cho mọi người từ bất kỳ lĩnh vực nào do sự phổ biến rộng rãi của nó.
Trong tương lai gần, việc hiểu các kiến thức cơ bản về học máy sẽ trở thành điều bắt buộc đối với mọi người từ bất kỳ lĩnh vực nào do sự phổ biến rộng rãi của nó.
---
# 🚀 Thử thách
Phác thảo, trên giấy hoặc sử dụng một ứng dụng trực tuyến như [Excalidraw](https://excalidraw.com/), sự hiểu biết của bạn về sự khác biệt giữa AI, ML, học sâu, và khoa học dữ liệu. Thêm một số ý tưởng về các vấn đề mà mỗi kỹ thuật này có thể giải quyết tốt.
Phác thảo, trên giấy hoặc sử dụng ứng dụng trực tuyến như [Excalidraw](https://excalidraw.com/), hiểu biết của bạn về sự khác biệt giữa AI, ML, học sâu, và khoa học dữ liệu. Thêm một vài ý tưởng về các vấn đề mà mỗi kỹ thuật này giỏi giải quyết.
# [Câu hỏi sau bài giảng](https://ff-quizzes.netlify.app/en/ml/)
# [Bài quiz 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ề cách bạn có thể làm việc với các thuật toán ML trên đám mây, hãy theo dõi [Lộ trình học tập](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
Để tìm hiểu thêm về cách bạn có thể làm việc với các thuật toán ML trên đám mây, hãy theo dõi [Lộ trình học](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott).
Tham gia một [Lộ trình học tập](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) về các kiến thức cơ bản của ML.
Tham gia [Lộ trình học](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) về kiến thức cơ bản của ML.
---
# Bài tập
@ -146,5 +151,7 @@ Tham gia một [Lộ trình học tập](https://docs.microsoft.com/learn/module
---
**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 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.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**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 sai sót. Tài liệu gốc bằng ngôn ngữ gốc 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 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 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.
Phân cụm là một loại [Học không giám sát](https://wikipedia.org/wiki/Unsupervised_learning) giả định rằng một tập dữ liệu không được gắn nhãn hoặc các đầu vào của nó không được liên kết với các đầu ra được định nghĩa trước. Nó sử dụng các thuật toán khác nhau để phân loại dữ liệu không gắn nhãn và cung cấp các nhóm dựa trên các mẫu mà nó nhận ra trong dữ liệu.
Phân nhóm là một loại [Học không giám sát](https://wikipedia.org/wiki/Unsupervised_learning) giả định rằng một bộ dữ liệu không có nhãn hoặc đầu vào của nó không được ghép với các đầu ra định trước. Nó sử dụng các thuật toán khác nhau để sắp xếp dữ liệu chưa được gán nhãn và cung cấp các nhóm theo các mẫu mà nó phát hiện trong dữ liệu.
[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
> 🎥 Nhấp vào hình ảnh trên để xem video. Trong khi bạn đang học máy với phân cụm, hãy thưởng thức một số bài hát Dance Hall của Nigeria - đây là một bài hát được đánh giá cao từ năm 2014 của PSquare.
> 🎥 Nhấp vào hình ảnh trên để xem video. Khi bạn đang học máy học với phân nhóm, hãy thưởng thức một số bản nhạc Dance Hall Nigeria - đây là một bài hát được đánh giá cao từ năm 2014 bởi PSquare.
## [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/)
### Giới thiệu
[Phân cụm](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) rất hữu ích cho việc khám phá dữ liệu. Hãy xem liệu nó có thể giúp khám phá xu hướng và mẫu trong cách khán giả Nigeria tiêu thụ âm nhạc.
[Phân nhóm](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) rất hữu ích cho việc khám phá dữ liệu. Hãy xem nó có thể giúp phát hiện các xu hướng và mẫu trong cách khán giả Nigeria tiêu thụ âm nhạc như thế nào.
✅ Dành một phút để suy nghĩ về các ứng dụng của phân cụm. Trong đời sống thực, phân cụm xảy ra bất cứ khi nào bạn có một đống quần áo và cần phân loại quần áo của các thành viên trong gia đình 🧦👕👖🩲. Trong khoa học dữ liệu, phân cụm xảy ra khi cố gắng phân tích sở thích của người dùng hoặc xác định các đặc điểm của bất kỳ tập dữ liệu không gắn nhãn nào. Phân cụm, theo một cách nào đó, giúp làm sáng tỏ sự hỗn loạn, giống như ngăn kéo đựng tất.
✅ Dành một phút để suy nghĩ về các ứng dụng của phân nhóm. Trong đời thực, phân nhóm xảy ra bất cứ khi nào bạn có một đống quần áo cần phân loại quần áo của các thành viên trong gia đình bạn 🧦👕👖🩲. Trong khoa học dữ liệu, phân nhóm xảy ra khi cố gắng phân tích sở thích của người dùng, hoặc xác định các đặc điểm của bất kỳ bộ dữ liệu chưa được gán nhãn nào. Phân nhóm, theo một cách nào đó, giúp hiểu được sự hỗn độn, giống như ngăn kéo đựng tất vậy.
[](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
> 🎥 Nhấp vào hình ảnh trên để xem video: John Guttag của MIT giới thiệu về phân cụm
> 🎥 Nhấp vào hình ảnh trên để xem video: John Guttag của MIT giới thiệu về phân nhóm
Trong môi trường chuyên nghiệp, phân cụm có thể được sử dụng để xác định các phân khúc thị trường, chẳng hạn như xác định nhóm tuổi nào mua những mặt hàng nào. Một ứng dụng khác có thể là phát hiện bất thường, chẳng hạn để phát hiện gian lận từ một tập dữ liệu giao dịch thẻ tín dụng. Hoặc bạn có thể sử dụng phân cụm để xác định khối u trong một loạt các bản quét y tế.
Trong một môi trường chuyên nghiệp, phân nhóm có thể được sử dụng để xác định các điều như phân đoạn thị trường, xác định nhóm tuổi nào mua các mặt hàng nào, ví dụ. Một ứng dụng khác là phát hiện bất thường, có thể để phát hiện gian lận từ một bộ dữ liệu giao dịch thẻ tín dụng. Hoặc bạn có thể dùng phân nhóm để xác định các khối u trong một loạt các bản quét y tế.
✅ Dành một phút để suy nghĩ về cách bạn có thể đã gặp phân cụm 'trong thực tế', trong ngân hàng, thương mại điện tử hoặc môi trường kinh doanh.
✅ Hãy nghĩ một phút về cách bạn có thể đã gặp phân nhóm 'trong thực tế', trong lĩnh vực ngân hàng, thương mại điện tử hoặc kinh doanh.
> 🎓 Thú vị là, phân tích cụm bắt nguồn từ các lĩnh vực Nhân học và Tâm lý học vào những năm 1930. Bạn có thể tưởng tượng nó đã được sử dụng như thế nào không?
> 🎓 Thú vị là, phân tích phân nhóm có nguồn gốc từ các lĩnh vực Nhân chủng học và Tâm lý học vào những năm 1930. Bạn có thể tưởng tượng nó đã được sử dụng như thế nào không?
Ngoài ra, bạn có thể sử dụng nó để nhóm các kết quả tìm kiếm - chẳng hạn như liên kết mua sắm, hình ảnh hoặc đánh giá. Phân cụm rất hữu ích khi bạn có một tập dữ liệu lớn mà bạn muốn giảm bớt và thực hiện phân tích chi tiết hơn, vì vậy kỹ thuật này có thể được sử dụng để tìm hiểu về dữ liệu trước khi xây dựng các mô hình khác.
Ngoài ra, bạn có thể dùng nó để nhóm các kết quả tìm kiếm - theo các liên kết mua sắm, hình ảnh, hoặc đánh giá, ví dụ. Phân nhóm hữu ích khi bạn có một bộ dữ liệu lớn mà bạn muốn giảm thiểu và thực hiện phân tích chi tiết hơn, vì vậy kỹ thuật này có thể được sử dụng để tìm hiểu về dữ liệu trước khi xây dựng các mô hình khác.
✅ Khi dữ liệu của bạn được tổ chức thành các cụm, bạn gán cho nó một Id cụm, và kỹ thuật này có thể hữu ích khi bảo vệ quyền riêng tư của tập dữ liệu; bạn có thể thay thế việc tham chiếu một điểm dữ liệu bằng Id cụm của nó, thay vì bằng dữ liệu nhận dạng tiết lộ hơn. Bạn có thể nghĩ ra những lý do khác tại sao bạn lại tham chiếu một Id cụm thay vì các yếu tố khác của cụm để xác định nó không?
✅ Khi dữ liệu của bạn được tổ chức thành các cụm, bạn sẽ gán nó một mã cụm, và kỹ thuật này có thể hữu ích khi bảo vệ quyền riêng tư của bộ dữ liệu; bạn có thể thay vào đó tham chiếu một điểm dữ liệu bằng mã cụm của nó, thay vì bằng dữ liệu nhận dạng rõ ràng hơn. Bạn có thể nghĩ đến những lý do khác tại sao bạn sẽ tham chiếu mã cụm thay vì các thành phần khác của cụm để nhận diện nó?
Tìm hiểu sâu hơn về các kỹ thuật phân cụm trong [Learn module này](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)
Hãy đào sâu hiểu biết của bạn về các kỹ thuật phân nhóm trong [chương trình học](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) này.
## Bắt đầu với phân nhóm
## Bắt đầu với phân cụm
[Scikit-learn cung cấp một loạt](https://scikit-learn.org/stable/modules/clustering.html) các phương pháp để thực hiện phân nhóm. Loại mà bạn chọn sẽ phụ thuộc vào trường hợp sử dụng của bạn. Theo tài liệu, mỗi phương pháp có các lợi ích khác nhau. Dưới đây là bảng đơn giản hóa các phương pháp được Scikit-learn hỗ trợ và các trường hợp sử dụng phù hợp:
[Scikit-learn cung cấp một loạt lớn](https://scikit-learn.org/stable/modules/clustering.html) các phương pháp để thực hiện phân cụm. Loại bạn chọn sẽ phụ thuộc vào trường hợp sử dụng của bạn. Theo tài liệu, mỗi phương pháp có các lợi ích khác nhau. Dưới đây là bảng đơn giản hóa các phương pháp được hỗ trợ bởi Scikit-learn và các trường hợp sử dụng phù hợp:
| Ward hierarchical clustering | nhiều cụm bị ràng buộc, suy diễn ngược |
| Agglomerative clustering | nhiều cụm bị ràng buộc, khoảng cách không Euclidean, suy diễn ngược |
| DBSCAN | hình học không phẳng, cụm không đều, suy diễn ngược |
| OPTICS | hình học không phẳng, cụm không đều với mật độ biến đổi, suy diễn ngược |
| Gaussian mixtures | hình học phẳng, suy diễn |
| BIRCH | tập dữ liệu lớn với các điểm ngoại lai, suy diễn |
> 🎓 Cách chúng ta tạo cụm có liên quan nhiều đến cách chúng ta tập hợp các điểm dữ liệu thành nhóm. Hãy cùng tìm hiểu một số thuật ngữ:
> 🎓 Cách chúng ta tạo các cụm có liên quan rất lớn đến cách chúng ta gom các điểm dữ liệu thành nhóm. Hãy cùng làm rõ một số thuật ngữ:
>
> 🎓 ['Suy diễn ngược' vs. 'suy diễn'](https://wikipedia.org/wiki/Transduction_(machine_learning))
> 🎓 ['Truyền đề' vs. 'suy diễn'](https://wikipedia.org/wiki/Transduction_(machine_learning))
>
> Suy diễn ngược được rút ra từ các trường hợp huấn luyện quan sát được ánh xạ tới các trường hợp kiểm tra cụ thể. Suy diễn được rút ra từ các trường hợp huấn luyện ánh xạ tới các quy tắc chung, sau đó mới được áp dụng cho các trường hợp kiểm tra.
> Suy luận truyền đề được rút ra từ các trường hợp huấn luyện quan sát được ánh xạ đến các trường hợp kiểm tra cụ thể. Suy luận suy diễn được rút ra từ các trường hợp huấn luyện ánh xạ tới các quy tắc chung và chỉ sau đó áp dụng cho các trường hợp kiểm tra.
>
> Một ví dụ: Hãy tưởng tượng bạn có một tập dữ liệu chỉ được gắn nhãn một phần. Một số thứ là 'đĩa nhạc', một số là 'cd', và một số là trống. Nhiệm vụ của bạn là cung cấp nhãn cho các mục trống. Nếu bạn chọn cách tiếp cận suy diễn, bạn sẽ huấn luyện một mô hình tìm kiếm 'đĩa nhạc' và 'cd', và áp dụng các nhãn đó cho dữ liệu chưa được gắn nhãn. Cách tiếp cận này sẽ gặp khó khăn trong việc phân loại những thứ thực sự là 'băng cassette'. Một cách tiếp cận suy diễn ngược, mặt khác, xử lý dữ liệu chưa biết này hiệu quả hơn vì nó hoạt động để nhóm các mục tương tự lại với nhau và sau đó áp dụng nhãn cho một nhóm. Trong trường hợp này, các cụm có thể phản ánh 'những thứ âm nhạc hình tròn' và 'những thứ âm nhạc hình vuông'.
> Ví dụ: Giả sử bạn có một bộ dữ liệu chỉ được gán nhãn một phần. Một số thứ là 'đĩa ghi âm', một số là 'đĩa CD', và một số thì trống. Nhiệm vụ của bạn là gán nhãn cho những trường trống. Nếu bạn chọn phương pháp suy diễn, bạn sẽ huấn luyện một mô hình để tìm 'đĩa ghi âm' và 'đĩa CD', rồi áp dụng nhãn đó cho dữ liệu chưa được gán nhãn. Phương pháp này sẽ gặp khó khăn khi phân loại các thứ thực sự là 'băng cassette'. Ngược lại, phương pháp truyền đề xử lý dữ liệu chưa biết hiệu quả hơn vì nó nhóm các mục giống nhau lại với nhau và sau đó áp dụng nhãn cho nhóm đó. Trong trường hợp này, các cụm có thể phản ánh 'đồ vật âm nhạc tròn' và 'đồ vật âm nhạc vuông'.
>
> 🎓 ['Hình học không phẳng' vs. 'hình học phẳng'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
> 🎓 ['Hình học phi phẳng' vs. 'hình học phẳng'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
>
> Được lấy từ thuật ngữ toán học, hình học không phẳng vs. phẳng đề cập đến việc đo khoảng cách giữa các điểm bằng các phương pháp hình học 'phẳng' ([Euclidean](https://wikipedia.org/wiki/Euclidean_geometry)) hoặc 'không phẳng' (không Euclidean).
> Bắt nguồn từ thuật ngữ toán học, hình học phi phẳng và hình học phẳng đề cập đến cách đo khoảng cách giữa các điểm bằng các phương pháp hình học 'phẳng' ([Euclid](https://wikipedia.org/wiki/Euclidean_geometry)) hoặc 'phi phẳng' (phi Euclid).
>
>'Phẳng' trong ngữ cảnh này đề cập đến hình học Euclidean (một phần của nó được dạy như hình học 'mặt phẳng'), và không phẳng đề cập đến hình học không Euclidean. Hình học liên quan gì đến học máy? Vâng, vì hai lĩnh vực này đều dựa trên toán học, cần phải có một cách chung để đo khoảng cách giữa các điểm trong các cụm, và điều đó có thể được thực hiện theo cách 'phẳng' hoặc 'không phẳng', tùy thuộc vào bản chất của dữ liệu. [Khoảng cách Euclidean](https://wikipedia.org/wiki/Euclidean_distance) được đo bằng chiều dài của một đoạn thẳng giữa hai điểm. [Khoảng cách không Euclidean](https://wikipedia.org/wiki/Non-Euclidean_geometry) được đo dọc theo một đường cong. Nếu dữ liệu của bạn, khi được hình dung, dường như không tồn tại trên một mặt phẳng, bạn có thể cần sử dụng một thuật toán chuyên biệt để xử lý nó.
> 'Phẳng' trong ngữ cảnh này là hình học Euclid (một phần được dạy là hình học phẳng), và phi phẳng chỉ hình học phi Euclid. Hình học có liên quan gì đến học máy? Vì cả hai lĩnh vực đều bắt nguồn từ toán học, nên cần một cách chung để đo khoảng cách giữa các điểm trong cụm, và điều này có thể được thực hiện theo cách 'phẳng' hoặc 'phi phẳng' tùy thuộc vào tính chất của dữ liệu. [Khoảng cách Euclid](https://wikipedia.org/wiki/Euclidean_distance) được đo bằng chiều dài đoạn thẳng giữa hai điểm. [Khoảng cách phi Euclid](https://wikipedia.org/wiki/Non-Euclidean_geometry) được đo theo một đường cong. Nếu dữ liệu của bạn, khi trực quan hóa, có vẻ như không tồn tại trên một mặt phẳng, bạn có thể cần dùng thuật toán chuyên biệt để xử lý nó.
>

> Infographic bởi [Dasani Madipalli](https://twitter.com/dasani_decoded)

> Đồ họa thông tin bởi [Dasani Madipalli](https://twitter.com/dasani_decoded)
> Các cụm được định nghĩa bởi ma trận khoảng cách của chúng, ví dụ: khoảng cách giữa các điểm. Khoảng cách này có thể được đo bằng một vài cách. Các cụm Euclidean được định nghĩa bởi giá trị trung bình của các điểm, và chứa một 'trọng tâm' hoặc điểm trung tâm. Khoảng cách do đó được đo bằng khoảng cách tới trọng tâm đó. Khoảng cách không Euclidean đề cập đến 'clustroids', điểm gần nhất với các điểm khác. Clustroids lần lượt có thể được định nghĩa theo nhiều cách.
> Các cụm được xác định bởi ma trận khoảng cách của chúng, ví dụ khoảng cách giữa các điểm. Khoảng cách này có thể được đo theo một vài cách. Các cụm Euclid được xác định bằng trung bình giá trị các điểm, và có một 'tâm cụm' hay điểm trung tâm. Khoảng cách do đó được đo tới điểm tâm cụm đó. Khoảng cách phi Euclid đề cập đến 'clustroid', điểm gần nhất với các điểm khác. Clustroid lại có thể được xác định theo nhiều cách.
> [Phân cụm bị ràng buộc](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) giới thiệu 'học bán giám sát' vào phương pháp không giám sát này. Các mối quan hệ giữa các điểm được đánh dấu là 'không thể liên kết' hoặc 'phải liên kết' để một số quy tắc được áp dụng cho tập dữ liệu.
> [Phân nhóm có ràng buộc](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) giới thiệu học 'bán giám sát' vào phương pháp không giám sát này. Các mối quan hệ giữa các điểm được đánh dấu là 'không thể liên kết' hoặc 'phải liên kết', do đó một số quy tắc được áp đặt lên bộ dữ liệu.
>
> Một ví dụ: Nếu một thuật toán được tự do trên một loạt dữ liệu không gắn nhãn hoặc bán gắn nhãn, các cụm mà nó tạo ra có thể có chất lượng kém. Trong ví dụ trên, các cụm có thể nhóm 'những thứ âm nhạc hình tròn' và 'những thứ âm nhạc hình vuông' và 'những thứ hình tam giác' và 'bánh quy'. Nếu được cung cấp một số ràng buộc, hoặc quy tắc để tuân theo ("mục phải được làm bằng nhựa", "mục cần có khả năng tạo ra âm nhạc") điều này có thể giúp 'ràng buộc' thuật toán để đưa ra các lựa chọn tốt hơn.
> Ví dụ: Nếu một thuật toán được thả tự do trên một lô dữ liệu chưa hoặc bán nhãn, các cụm mà nó tạo ra có thể có chất lượng kém. Như ví dụ trên, các cụm có thể nhóm 'đồ vật âm nhạc tròn', 'đồ vật âm nhạc vuông', 'đồ vật hình tam giác' và 'bánh quy'. Nếu được cung cấp một số ràng buộc, hoặc quy tắc để tuân theo ("mặt hàng phải làm bằng nhựa", "mặt hàng cần có khả năng tạo ra âm nhạc"), điều này có thể giúp 'ràng buộc' thuật toán để đưa ra lựa chọn tốt hơn.
>
> 🎓 'Mật độ'
>
> Dữ liệu 'nhiễu' được coi là 'dày đặc'. Khoảng cách giữa các điểm trong mỗi cụm của nó có thể chứng minh, khi kiểm tra, là dày đặc hơn hoặc ít dày đặc hơn, hoặc 'đông đúc' và do đó dữ liệu này cần được phân tích bằng phương pháp phân cụm phù hợp. [Bài viết này](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) minh họa sự khác biệt giữa việc sử dụng phân cụm K-Means vs. các thuật toán HDBSCAN để khám phá một tập dữ liệu nhiễu với mật độ cụm không đều.
> Dữ liệu được coi là 'nhiễu' thì được xem là 'mật độ cao'. Khoảng cách giữa các điểm trong mỗi cụm khi kiểm tra có thể chứng minh là đặc biệt hoặc ít đặc, hay 'đông đúc' và dữ liệu này cần được phân tích bằng phương pháp phân nhóm phù hợp. [Bài viết này](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) minh họa sự khác biệt giữa việc sử dụng thuật toán phân nhóm K-Means với HDBSCAN để khám phá bộ dữ liệu nhiễu có mật độ cụm không đồng đều.
## Các thuật toán phân cụm
## Các thuật toán phân nhóm
Có hơn 100 thuật toán phân cụm, và việc sử dụng chúng phụ thuộc vào bản chất của dữ liệu hiện có. Hãy thảo luận một số thuật toán chính:
Có hơn 100 thuật toán phân nhóm, và việc sử dụng phụ thuộc vào bản chất của dữ liệu hiện có. Hãy thảo luận một số thuật toán chính:
- **Phân cụm phân cấp**. Nếu một đối tượng được phân loại dựa trên sự gần gũi của nó với một đối tượng gần đó, thay vì với một đối tượng xa hơn, các cụm được hình thành dựa trên khoảng cách của các thành viên của chúng tới và từ các đối tượng khác. Phân cụm kết hợp của Scikit-learn là phân cấp.
- **Phân nhóm phân cấp**. Nếu một đối tượng được phân loại bằng khoảng cách đến một đối tượng gần đó, thay vì đối tượng xa hơn, các cụm được hình thành dựa trên khoảng cách của các thành viên đến và đi từ các đối tượng khác. Phân nhóm kết hợp của Scikit-learn là phân cấp.
> Infographic bởi [Dasani Madipalli](https://twitter.com/dasani_decoded)

> Đồ họa thông tin bởi [Dasani Madipalli](https://twitter.com/dasani_decoded)
- **Phân cụm trọng tâm**. Thuật toán phổ biến này yêu cầu lựa chọn 'k', hoặc số lượng cụm cần hình thành, sau đó thuật toán xác định điểm trung tâm của một cụm và tập hợp dữ liệu xung quanh điểm đó. [Phân cụm K-means](https://wikipedia.org/wiki/K-means_clustering) là một phiên bản phổ biến của phân cụm trọng tâm. Trung tâm được xác định bởi giá trị trung bình gần nhất, do đó có tên gọi. Khoảng cách bình phương từ cụm được giảm thiểu.
- **Phân nhóm tâm cụm**. Thuật toán phổ biến này yêu cầu lựa chọn 'k', số cụm cần tạo, sau đó thuật toán xác định điểm trung tâm của một cụm và gom dữ liệu xung quanh điểm đó. [Phân nhóm K-means](https://wikipedia.org/wiki/K-means_clustering) là một phiên bản phổ biến của phân nhóm tâm cụm. Trung tâm được xác định bằng trung bình gần nhất, do đó có tên gọi. Khoảng cách bình phương từ cụm được giảm thiểu.
> Infographic bởi [Dasani Madipalli](https://twitter.com/dasani_decoded)

> Đồ họa thông tin bởi [Dasani Madipalli](https://twitter.com/dasani_decoded)
- **Phân cụm dựa trên phân phối**. Dựa trên mô hình thống kê, phân cụm dựa trên phân phối tập trung vào việc xác định xác suất rằng một điểm dữ liệu thuộc về một cụm, và gán nó tương ứng. Các phương pháp hỗn hợp Gaussian thuộc loại này.
- **Phân nhóm dựa trên phân phối**. Dựa trên mô hình thống kê, phân nhóm dựa trên phân phối tập trung vào xác định xác suất một điểm dữ liệu thuộc về một cụm nào đó, và phân bố điểm đó tương ứng. Phương pháp hợp Gaussian thuộc loại này.
- **Phân cụm dựa trên mật độ**. Các điểm dữ liệu được gán vào các cụm dựa trên mật độ của chúng, hoặc sự tập hợp xung quanh nhau. Các điểm dữ liệu xa nhóm được coi là điểm ngoại lai hoặc nhiễu. DBSCAN, Mean-shift và OPTICS thuộc loại phân cụm này.
- **Phân nhóm dựa trên mật độ**. Các điểm dữ liệu được gán vào cụm dựa trên mật độ của chúng, hoặc sự nhóm lại xung quanh nhau. Các điểm dữ liệu xa nhóm được coi là ngoại lệ hoặc nhiễu. DBSCAN, Mean-shift và OPTICS thuộc loại phân nhóm này.
- **Phân cụm dựa trên lưới**. Đối với các tập dữ liệu đa chiều, một lưới được tạo ra và dữ liệu được chia giữa các ô của lưới, từ đó tạo ra các cụm.
- **Phân nhóm dựa trên lưới**. Đối với bộ dữ liệu đa chiều, một lưới được tạo ra và dữ liệu được chia vào các ô của lưới, từ đó tạo thành các cụm.
## Bài tập - phân cụm dữ liệu của bạn
## Bài tập - phân nhóm dữ liệu của bạn
Phân cụm như một kỹ thuật được hỗ trợ rất nhiều bởi việc trực quan hóa đúng cách, vì vậy hãy bắt đầu bằng cách trực quan hóa dữ liệu âm nhạc của chúng ta. Bài tập này sẽ giúp chúng ta quyết định phương pháp phân cụm nào nên được sử dụng hiệu quả nhất cho bản chất của dữ liệu này.
Phân nhóm như một kỹ thuật được hỗ trợ rất nhiều bằng cách trực quan hóa thích hợp, vì vậy hãy bắt đầu bằng cách trực quan hóa dữ liệu âm nhạc của chúng ta. Bài tập này sẽ giúp chúng ta quyết định phương pháp phân nhóm nào nên được sử dụng hiệu quả nhất cho tính chất của dữ liệu này.
1. Mở tệp [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) trong thư mục này.
1. Mở file [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) trong thư mục này.
1. Nhập gói `Seaborn` để trực quan hóa dữ liệu tốt.
@ -110,7 +109,7 @@ Phân cụm như một kỹ thuật được hỗ trợ rất nhiều bởi vi
!pip install seaborn
```
1. Thêm dữ liệu bài hát từ [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Tải lên một dataframe với một số dữ liệu về các bài hát. Chuẩn bị khám phá dữ liệu này bằng cách nhập các thư viện và xuất dữ liệu:
1. Thêm dữ liệu bài hát từ [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv). Tải một dataframe với một số dữ liệu về các bài hát. Hãy chuẩn bị khám phá dữ liệu này bằng cách nhập các thư viện và in ra dữ liệu:
```python
import matplotlib.pyplot as plt
@ -120,23 +119,23 @@ Phân cụm như một kỹ thuật được hỗ trợ rất nhiều bởi vi
df.head()
```
Kiểm tra vài dòng đầu tiên của dữ liệu:
Kiểm tra một vài dòng dữ liệu đầu tiên:
| | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
> 🤔 Nếu chúng ta đang làm việc với clustering, một phương pháp không giám sát không yêu cầu dữ liệu được gắn nhãn, tại sao lại hiển thị dữ liệu này với nhãn? Trong giai đoạn khám phá dữ liệu, chúng rất hữu ích, nhưng không cần thiết để các thuật toán clustering hoạt động. Bạn cũng có thể loại bỏ tiêu đề cột và tham chiếu dữ liệu bằng số cột.
> 🤔 Nếu chúng ta đang làm việc với phân cụm, một phương pháp không giám sát không yêu cầu dữ liệu có nhãn, tại sao chúng ta lại hiển thị dữ liệu này với các nhãn? Trong giai đoạn khám phá dữ liệu, chúng rất hữu ích, nhưng chúng không cần thiết cho các thuật toán phân cụm hoạt động. Bạn cũng có thể loại bỏ tiêu đề cột và tham khảo dữ liệu bằng số cột.
Hãy xem các giá trị tổng quát của dữ liệu. Lưu ý rằng độ phổ biến có thể là '0', điều này cho thấy các bài hát không có xếp hạng. Hãy loại bỏ chúng ngay sau đây.
Hãy nhìn vào các giá trị chung của dữ liệu. Lưu ý rằng popularity có thể là '0', điều này cho thấy các bài hát không có thứ hạng. Chúng ta sẽ sớm loại bỏ những trường hợp đó.
1. Sử dụng biểu đồ cột để tìm ra các thể loại phổ biến nhất:
1. Sử dụng barplot để tìm ra các thể loại phổ biến nhất:
```python
import seaborn as sns
@ -225,13 +224,13 @@ Hãy xem các giá trị tổng quát của dữ liệu. Lưu ý rằng độ ph
1. Ba thể loại hàng đầu chiếm ưu thế trong tập dữ liệu này. Hãy tập trung vào `afro dancehall`, `afropop`, và `nigerian pop`, đồng thời lọc tập dữ liệu để loại bỏ bất kỳ giá trị độ phổ biến nào bằng 0 (nghĩa là nó không được phân loại với độ phổ biến trong tập dữ liệu và có thể được coi là nhiễu đối với mục đích của chúng ta):
1. Cho đến nay, ba thể loại hàng đầu chiếm ưu thế trong bộ dữ liệu này. Hãy tập trung vào `afro dancehall`, `afropop`, và `nigerian pop`, đồng thời lọc bộ dữ liệu để loại bỏ bất kỳ giá trị popularity nào bằng 0 (có nghĩa là nó không được phân loại với mức độ phổ biến trong bộ dữ liệu và có thể được coi là nhiễu cho mục đích của chúng ta):
Mối tương quan mạnh duy nhất là giữa `energy` và `loudness`, điều này không quá ngạc nhiên, vì âm nhạc lớn thường khá sôi động. Ngoài ra, các mối tương quan tương đối yếu. Sẽ rất thú vị để xem một thuật toán clustering có thể làm gì với dữ liệu này.
Mối tương quan duy nhất mạnh mẽ là giữa `energy` và `loudness`, điều này không quá ngạc nhiên, vì nhạc to thường khá năng lượng. Ngoài ra, các mối tương quan khá yếu. Sẽ rất thú vị để xem thuật toán phân cụm có thể tạo ra gì từ dữ liệu này.
> 🎓 Lưu ý rằng tương quan không ngụ ý nguyên nhân! Chúng ta có bằng chứng về tương quan nhưng không có bằng chứng về nguyên nhân. Một [trang web thú vị](https://tylervigen.com/spurious-correlations) có một số hình ảnh minh họa nhấn mạnh điểm này.
> 🎓 Lưu ý rằng tương quan không ngụ ý nguyên nhân! Chúng ta có bằng chứng về tương quan nhưng không có bằng chứng về nguyên nhân. Một [trang web thú vị](https://tylervigen.com/spurious-correlations) có một số hình ảnh nhấn mạnh điểm này.
Liệu có sự hội tụ trong tập dữ liệu này xung quanh độ phổ biến và khả năng nhảy của một bài hát? Một FacetGrid cho thấy có các vòng tròn đồng tâm xếp hàng, bất kể thể loại. Có thể sở thích của người Nigeria hội tụ ở một mức độ nhảy nhất định cho thể loại này?
Liệu có sự hội tụ trong bộ dữ liệu này quanh mức độ phổ biến và khả năng khiêu vũ của một bài hát không? Một FacetGrid cho thấy có các vòng đồng tâm xếp hàng, bất kể thể loại. Có thể là thị hiếu của người Nigeria hội tụ ở mức độ khiêu vũ nhất định cho thể loại này?
✅ Thử các điểm dữ liệu khác (energy, loudness, speechiness) và nhiều thể loại âm nhạc khác hoặc khác nhau. Bạn có thể khám phá được gì? Hãy xem bảng `df.describe()` để thấy sự phân bố tổng quát của các điểm dữ liệu.
✅ Thử các điểm dữ liệu khác nhau (energy, loudness, speechiness) và nhiều hoặc khác các thể loại âm nhạc. Bạn có thể khám phá được gì? Hãy xem bảng `df.describe()` để thấy sự phân bố chung của các điểm dữ liệu.
### Bài tập - phân bố dữ liệu
Liệu ba thể loại này có khác biệt đáng kể trong cách nhìn nhận về khả năng nhảy của chúng, dựa trên độ phổ biến?
Ba thể loại này có khác biệt đáng kể trong cách nhận thức về khả năng khiêu vũ của chúng, dựa trên độ phổ biến không?
1. Kiểm tra phân bố dữ liệu của ba thể loại hàng đầu về độ phổ biến và khả năng nhảy dọc theo trục x và y nhất định.
1. Kiểm tra phân bố dữ liệu của ba thể loại hàng đầu về mức độ phổ biến và khả năng khiêu vũ theo trục x và y đã cho.
```python
sns.set_theme(style="ticks")
@ -292,15 +291,15 @@ Liệu ba thể loại này có khác biệt đáng kể trong cách nhìn nhậ
)
```
Bạn có thể khám phá các vòng tròn đồng tâm xung quanh một điểm hội tụ tổng quát, cho thấy sự phân bố của các điểm.
Bạn có thể khám phá các vòng đồng tâm quanh một điểm hội tụ chung, cho thấy phân bố các điểm.
> 🎓 Lưu ý rằng ví dụ này sử dụng biểu đồ KDE (Kernel Density Estimate) để biểu diễn dữ liệu bằng một đường cong mật độ xác suất liên tục. Điều này cho phép chúng ta diễn giải dữ liệu khi làm việc với nhiều phân bố.
> 🎓 Lưu ý rằng ví dụ này sử dụng biểu đồ KDE (Ước lượng Mật độ Hạt nhân) thể hiện dữ liệu bằng một đường cong mật độ xác suất liên tục. Điều này cho phép chúng ta diễn giải dữ liệu khi làm việc với nhiều phân phối.
Nhìn chung, ba thể loại này liên kết lỏng lẻo về độ phổ biến và khả năng nhảy. Xác định các cụm trong dữ liệu liên kết lỏng lẻo này sẽ là một thách thức:
Nói chung, ba thể loại này căn chỉnh lỏng lẻo về mức độ phổ biến và khả năng khiêu vũ. Việc xác định các nhóm trong dữ liệu căn chỉnh lỏng lẻo này sẽ là một thách thức:
Nhìn chung, đối với clustering, bạn có thể sử dụng biểu đồ scatter để hiển thị các cụm dữ liệu, vì vậy việc thành thạo loại hình trực quan hóa này rất hữu ích. Trong bài học tiếp theo, chúng ta sẽ lấy dữ liệu đã lọc này và sử dụng k-means clustering để khám phá các nhóm trong dữ liệu này có xu hướng chồng lấn theo những cách thú vị.
Nói chung, đối với phân cụm, bạn có thể sử dụng biểu đồ scatter để hiển thị các nhóm dữ liệu, vì vậy việc thành thạo loại hình minh họa này rất hữu ích. Trong bài học tiếp theo, chúng ta sẽ lấy dữ liệu đã lọc này và sử dụng phân cụm k-means để khám phá các nhóm trong dữ liệu này có vẻ chồng chéo nhau theo những cách thú vị.
---
## 🚀Thử thách
Để chuẩn bị cho bài học tiếp theo, hãy tạo một biểu đồ về các thuật toán clustering khác nhau mà bạn có thể khám phá và sử dụng trong môi trường sản xuất. Các vấn đề mà clustering đang cố gắng giải quyết là gì?
Để chuẩn bị cho bài học tiếp theo, hãy tạo một biểu đồ về các thuật toán phân cụm khác nhau mà bạn có thể khám phá và sử dụng trong môi trường sản xuất. Các thuật toán phân cụm muốn giải quyết những loại vấn đề nào?
## [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
Trước khi áp dụng các thuật toán clustering, như chúng ta đã học, việc hiểu bản chất của tập dữ liệu là một ý tưởng tốt. Đọc thêm về chủ đề này [tại đây](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
Trước khi bạn áp dụng các thuật toán phân cụm, như chúng ta đã học, tốt nhất là hiểu bản chất của bộ dữ liệu của bạn. Đọc thêm về chủ đề này [tại đây](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
[Bài viết hữu ích này](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) hướng dẫn bạn cách các thuật toán clustering khác nhau hoạt động, dựa trên các hình dạng dữ liệu khác nhau.
[Bài viết hữu ích này](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) sẽ hướng dẫn bạn qua các cách mà các thuật toán phân cụm khác nhau hoạt động, dựa trên các hình dạng dữ liệu khác nhau.
## Bài tập
[Nghiên cứu các hình thức trực quan hóa khác cho clustering](assignment.md)
[Nghiên cứu các hình thức trực quan hóa khác cho phân cụm](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, nên 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.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**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 sai sót. Tài liệu gốc bằng ngôn ngữ gốc 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 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 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.